НачатьНачать бесплатно

Моделирование периодических выплат (I)

Теперь у вас есть все необходимые инструменты для моделирования ипотечных выплат во времени.

С каждым платежом по ипотеке доля, направляемая на погашение процентов, постепенно уменьшается. Это означает, что всё большая часть выплаты идёт на увеличение вашей доли в стоимости жилья, а не в пользу банка. Это важно учитывать, если вы планируете продать недвижимость до полного погашения ипотеки или хотите определить момент, когда ипотека становится «подводной». Но об этом — чуть позже.

Сейчас вы напишете простую программу для расчёта процентной и основной частей каждого платежа на протяжении всего срока кредита.

Переменные mortgage_loan, mortgage_rate_periodic и periodic_mortgage_payment из третьего упражнения доступны для использования.

Переменная principal_remaining инициализирована как массив нулей длиной, равной количеству платёжных периодов.

Это упражнение является частью курса

Введение в финансовые концепции на Python

Посмотреть курс

Инструкции к упражнению

  • Задайте значение previous_principal_remaining для первого периода, то есть когда (i == 0), равным величине ипотечного кредита.
  • Задайте значение previous_principal_remaining для всех остальных периодов равным остатку основного долга предыдущего периода ([i - 1]).
  • Рассчитайте платёж по процентам (произведение остатка основного долга и периодической процентной ставки) и платёж по основному долгу (разность между периодическим ипотечным платежом и уплаченными процентами) для каждого периода.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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)
Редактировать и запускать код