Simulare i pagamenti periodici (I)
Hai già tutti gli strumenti per simulare nel tempo i pagamenti del mutuo.
A ogni rata del mutuo pagata, la quota destinata agli interessi nella rata successiva sarà leggermente inferiore. Questo significa che una parte maggiore andrà ad aumentare la quota della casa che possiedi tu, invece che la banca. È importante per capire quanto potresti ricavare vendendo la casa prima di estinguere il mutuo, o per capire quando il mutuo è “sott’acqua”. Ma su questo torneremo più avanti.
Ora scriverai un semplice programma per calcolare, nel tempo, le componenti di interessi e di capitale di ciascun pagamento.
Le variabili mortgage_loan, mortgage_rate_periodic e periodic_mortgage_payment del terzo esercizio sono già disponibili.
La variabile principal_remaining è inizializzata come un array di zeri con lunghezza pari al numero di periodi di pagamento.
Questo esercizio fa parte del corso
Introduzione ai concetti finanziari in Python
Istruzioni dell'esercizio
- Imposta il
previous_principal_remainingper il primo periodo, cioè quando(i == 0), uguale al valore del mutuo. - Imposta il
previous_principal_remainingper tutti gli altri periodi uguale al capitale residuo del periodo precedente ([i - 1]). - Per ogni periodo, calcola il pagamento di interessi (il prodotto tra il capitale residuo precedente e il tasso periodico del mutuo) e il pagamento di capitale (la differenza tra il pagamento del mutuo periodico e gli interessi pagati).
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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)