ComenzarEmpieza gratis

Simulando pagos periódicos (I)

Ya tienes todas las herramientas para simular los pagos de la hipoteca a lo largo del tiempo.

Cada vez que haces un pago de hipoteca, en el siguiente pago el porcentaje destinado a intereses será ligeramente menor. Esto significa que una mayor parte irá a amortizar el principal, es decir, la parte de la vivienda que es tuya y no del banco. Esto es clave para calcular cuánto podrías ganar si vendes la vivienda antes de terminar de pagar la hipoteca, o para saber cuándo tu hipoteca está underwater. Pero de eso hablaremos más adelante.

Ahora vas a escribir un programa sencillo para calcular, con el tiempo, la parte de intereses y la parte de principal en cada pago.

Las variables mortgage_loan, mortgage_rate_periodic y periodic_mortgage_payment del tercer ejercicio están disponibles.

La variable principal_remaining está inicializada como un array de ceros con longitud igual al número de periodos de pago.

Este ejercicio forma parte del curso

Introducción a los conceptos financieros en Python

Ver curso

Instrucciones del ejercicio

  • Establece previous_principal_remaining para el primer periodo, es decir, cuando (i == 0), igual al valor del préstamo hipotecario.
  • Establece previous_principal_remaining para todos los demás periodos igual al principal pendiente del periodo anterior ([i - 1]).
  • Calcula el pago de intereses (el producto del principal pendiente anterior por el tipo hipotecario periódico) y el pago a principal (la diferencia entre el pago hipotecario periódico y los intereses pagados) para cada periodo.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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)
Editar y ejecutar código