IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Imposta il previous_principal_remaining per il primo periodo, cioè quando (i == 0), uguale al valore del mutuo.
  • Imposta il previous_principal_remaining per 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)
Modifica ed esegui il codice