Simuler les paiements périodiques (I)
Vous avez maintenant tout ce qu'il faut pour simuler les versements hypothécaires dans le temps.
Chaque fois qu'un versement hypothécaire est fait, la part de ce versement qui couvre les intérêts diminue légèrement. Autrement dit, une plus grande portion sert à rembourser le capital, donc la part de la maison que vous possédez plutôt que celle de la banque. C'est essentiel pour estimer ce que vous pourriez récupérer en vendant la maison avant la fin de l'hypothèque, ou pour savoir à quel moment votre hypothèque est « sous l'eau ». Nous y reviendrons.
Vous allez maintenant écrire un petit programme pour calculer, au fil du temps, la portion intérêts et la portion capital de chaque paiement.
Les variables mortgage_loan, mortgage_rate_periodic et periodic_mortgage_payment du troisième exercice sont disponibles.
La variable principal_remaining est initialisée comme un tableau de zéros dont la longueur est égale au nombre de périodes de paiement.
Cette activité fait partie du cours
Introduction aux concepts financiers en Python
Instructions de l’exercice
- Pour la première période, c'est-à-dire lorsque
(i == 0), définissezprevious_principal_remainingégal au montant du prêt hypothécaire. - Pour toutes les autres périodes, définissez
previous_principal_remainingégal au principal restant de la période précédente ([i - 1]). - Calculez, pour chaque période, le paiement d'intérêts (le produit du principal restant et du taux hypothécaire périodique) et le remboursement du principal (la différence entre le paiement hypothécaire périodique et les intérêts payés).
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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)