Zacznij terazZacznij za darmo

Symulacja okresowych płatności (I)

Masz już wszystkie narzędzia potrzebne do symulacji spłat kredytu hipotecznego w czasie.

Przy każdej kolejnej racie coraz mniejsza jej część przeznaczana jest na spłatę odsetek. Oznacza to, że coraz więcej pieniędzy trafia na spłatę samego kapitału – czyli tej części nieruchomości, która faktycznie należy do ciebie, a nie do banku. To istotne, gdy chcesz oszacować zysk ze sprzedaży domu przed całkowitą spłatą kredytu lub sprawdzić, czy twój kredyt nie jest „pod wodą". Ale o tym więcej nieco później.

Teraz napiszesz prosty program, który dla każdego okresu obliczy część odsetkową i kapitałową raty.

Dostępne są zmienne mortgage_loan, mortgage_rate_periodic oraz periodic_mortgage_payment z trzeciego ćwiczenia.

Zmienna principal_remaining jest zainicjalizowana jako tablica zer o długości równej liczbie okresów płatności.

To ćwiczenie jest częścią kursu

Wprowadzenie do koncepcji finansowych w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Ustaw wartość previous_principal_remaining dla pierwszego okresu, czyli gdy (i == 0), równą wartości kredytu hipotecznego.
  • Dla wszystkich pozostałych okresów ustaw previous_principal_remaining równe pozostałemu kapitałowi z poprzedniego okresu ([i - 1]).
  • Dla każdego okresu oblicz płatność odsetkową (iloczyn pozostałego kapitału i okresowej stopy kredytu) oraz płatność kapitałową (różnicę między okresową ratą kredytu a zapłaconymi odsetkami).

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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)
Edytuj i uruchom kod