La calculadora se divide en dos partes,
La diferencia en la documentación es mínima, por lo que se describirán las funciones usadas en todo el programa, y luego sí el orden en cada uno de los cálculos.
Se tienen las funciones para calcular
Todos los bonos tienen plazos (anuales o semestrales), y es necesario saber la fecha del próximo pago para calcular otras cantidades como la Duración
y por lo tanto la Duración Modificada
.
Para calcular la fecha del próximo pago se utiliza el siguiente procedimiento.
El día y mes del próximo pago deben ser iguales a los de la fecha de Vencimiento (O emisión), la diferencia entonces, es el año por lo que se evalúa:
La fecha del último pago se puede utilizar cuando se busca calcular los intereses acumulados del bono. El procedimiento es básicamente igual que el del próximo pago,
Se encontraron varias definiciones equivalentes del precio sucio, en casi toda la documentación, se encuentra como $$ \text{PS}=\sum_{n=1}^N \frac{100\cdot c}{(1+t)^n} $$ En donde $N$ es la cantidad de pagos que hacen falta, $c$ es el valor de cupón y $n$ es el número del pago.
Sin embargo, esta expresión está incompleta, únicamente aplica para el día en que se paga el cupón, por lo que se usó una un poco diferente,
y así el precio sucio queda
$$ \text{PS}=\sum_{n=1}^N \frac{100\cdot c}{(1+t)^{w+n-1}} $$La cantidad de días al vencimiento se calcula como la cantidad de días entre las dos fechas menos los 29's de febrero, para eso se utiliza que los años bisiestos deben cumplir las siguientes reglas
Los intereses se calculan como | $$ \text{I}=100\cdot c\cdot w $$
con $c$ el cupón y $w$ de la misma manera que en el precio sucio.
$$ w=\frac{\text{Días entre el último pago y la fecha de liquidación (Sin bisiestos).}}{365} $$El precio limpio se calcula a partir del precio sucio y los intereses $$ \text{PL}=\text{PS}-\text{I} $$
en donde $n$ son años.
Sin embargo, la definición correcta es
$$ D=\frac{\sum_{n=1}^{N} (\nu+n-1) \frac{100\cdot c}{(1+t)^{\nu+n-1}}}{\sum_{t=1}^{N} \frac{100\cdot c}{(1+t)^{\nu+n-1}}} $$en donde,
$$ \nu=\frac{\text{Días entre la fecha de liquidación y el próximo pago (Sin bisiestos).}}{365} $$la duración modificada se calcula a partir de la duración como
$$ D_{\text{Mod}}=\frac{D}{1+t} $$con $t=\text{tasa}$
Para el cálculo de la tasa, se utiliza la función del precio sucio, como dicha función utiliza como parámetros, el cupón, las fechas y la tasa
Función PrecioSucio(Fechas, Cupón, Tasa)
Se implementó un método de Bisección para encontrar el valor de la tasa.