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
Instrucciones del ejercicio
- Establece
previous_principal_remainingpara el primer periodo, es decir, cuando(i == 0), igual al valor del préstamo hipotecario. - Establece
previous_principal_remainingpara 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)