Simulera periodiska betalningar (I)
Nu har du alla verktyg du behöver för att simulera bolånebetalningarna över tid.
Varje gång en bolånebetalning görs kommer nästa betalning att ha en något lägre andel som går till ränta. Det innebär att en större del av betalningen går till den del av bostaden som du äger, i stället för till banken. Det här är viktigt för att kunna beräkna hur mycket du tjänar på att sälja bostaden innan bolånet är färdigbetalt, eller för att avgöra när bolånet är under vatten. Men mer om det senare.
Du ska nu skriva ett enkelt program för att beräkna ränte- och amorteringsdelen av varje betalning över tid.
Variablerna mortgage_loan, mortgage_rate_periodic och periodic_mortgage_payment från den tredje övningen finns tillgängliga.
Variabeln principal_remaining är initialiserad som en array av nollor med en längd som motsvarar antalet betalningsperioder.
Den här övningen är en del av kursen
Introduktion till finansiella begrepp i Python
Övningsinstruktioner
- Sätt
previous_principal_remainingför den första perioden, dvs. när(i == 0), till lika med bolånets värde. - Sätt
previous_principal_remainingför alla övriga perioder till det återstående kapitalbeloppet från föregående period ([i - 1]). - Beräkna räntebetalningen (produkten av föregående återstående kapitalbelopp och den periodiska bolåneräntan) och amorteringen (skillnaden mellan den periodiska bolånebetalningen och den betalda räntan) för varje period.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Loop through each mortgage payment period
for i in range(0, mortgage_payment_periods):
# Handle the case for the first iteration
if i == 0:
previous_principal_remaining = ____
else:
previous_principal_remaining = ____
# Calculate the interest and principal payments
interest_payment = round(____*____, 2)
principal_payment = round(____-____, 2)
# Catch the case where all principal is paid off in the final period
if previous_principal_remaining - principal_payment < 0:
principal_payment = previous_principal_remaining
# Collect the principal remaining values in an array
principal_remaining[i] = previous_principal_remaining - principal_payment
# Print the payments for the first few periods
print_payments(i, interest_payment, principal_payment, principal_remaining)