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
Instrukcje do ćwiczenia
- Ustaw wartość
previous_principal_remainingdla pierwszego okresu, czyli gdy(i == 0), równą wartości kredytu hipotecznego. - Dla wszystkich pozostałych okresów ustaw
previous_principal_remainingró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)