Hacer coincidir las fechas de un tramo de swap, de un bono o de los calendarios de préstamos generados por diferentes sistemas y bibliotecas y especificados explícitamente en las hojas de términos suele ser sencillo, pero a veces es difícil.
En el caso de un swap, solemos ver la fecha de devengo, la fecha del primer cupón de cada tramo y la fecha de vencimiento. Por ejemplo, podríamos ver algo así:
Fecha de terminación/vencimiento: 15 de enero de 2025
Tramo 1
Efectivo / Devengo / Fechas / Fecha de inicio de los intereses: 15 de enero de 2021
Primera fecha de pago del swap: 15 de abril de 2021
Base de datos de días: Trimestral, Real / 360
Tramo 2
Fecha de entrada en vigor: 15 de enero de 2021
Primera fecha de pago del swap: 15 de julio de 2021
Base del recuento de días: Semestral, 30 / 360
Y en el caso de un bono / préstamo / pagaré, solemos ver algo así:
Fechas de pago de intereses:
Semestralmente, cada 15 de enero y 15 de julio de cada año; la primera fecha de pago de intereses será el 15 de julio de 2021 y la última fecha de pago de intereses será el 15 de enero de 2025 / fecha de vencimiento.
pero a veces he visto horarios de bonos más extraños como:
Trimestralmente, cada 15 de enero, 16 de abril, 15 de julio y 14 de octubre de cada año; la primera fecha de pago de intereses será el 15 de julio de 2021 y la última, el 15 de enero de 2025.
(Vale, no cito esto, pero casi igual de raro). O:
15 de octubre, 15 de noviembre, 15 de diciembre y 15 de enero de cada año; la primera fecha de pago de intereses será el 15 de octubre de 2021 y la última, el 15 de enero de 2025.
(el cupón flotante a 9 meses se reajusta a partir del tipo a 9 meses, mientras que los 3 cupones a 1 mes se reajustan a partir de los tipos a 1 mes)
Es bastante habitual que el primer y/o el último periodo del cupón sean impares (cortos o largos). Los periodos de cupón impares en el medio son mucho menos comunes.
Como principio general, parecería una buena idea que todo lo que vemos en la hoja de términos a una interfaz de usuario y la biblioteca.
El problema es que a veces estas cosas son un poco ambiguas. Por ejemplo, ¿los días que se ven en la hoja ya están ajustados por los fines de semana y las vacaciones?
Por ejemplo, si el vencimiento es el 16 de agosto de 2021 (lunes), ¿podrían retroceder las fechas desde el 15 de agosto de 2021 (domingo) en lugar de hacerlo desde la fecha de vencimiento ajustada?
Para casi todos los instrumentos, el ajuste no se "apila". Sin embargo, en algunos instrumentos (todos los ejemplos que he visto son bonos perpetuos), los ajustes se "apilan". Por ejemplo, si un cupón de 3 meses comienza a devengarse el 15 de enero y se paga no el 15 de abril, sino el 16 de abril, porque el 15 de abril es domingo, entonces el siguiente cupón de dicho bono no se acorta un día, sino que se paga el 16 de julio.
He visto dos posibles enfoques:
-
tener un atributo de "rodar el día del mes" del calendario, similar a rodar en un final de mes. Si está marchando desde el 30 de abril en cualquier dirección, no lo adivine, sino que requiera que la persona que llama especifique si la regla de balanceo es el 30 o el fin de mes. Por ejemplo, un horario que empiece el 15, ruede el 30 (o a final de mes), y vuelva a vencer el 15, tendrá periodos primero y último impares, y podría ser el 28 o el 29 en el de febrero.
-
Si el instrumento paga más de un cupón, especifique la penúltima fecha del cupón (no ajustada) y retroceda a partir de ella. O bien, si el instrumento paga al menos 1 cupón, entonces especifique la fecha de pago del primer cupón (no ajustada) y marche hacia adelante. (Si debe especificar siempre las fechas del primer y penúltimo cupón, que suelen ser redundantes, es una cuestión filosófica profunda).
(También permite pasar una bandera para la 'pila')
Y ni siquiera he tocado la convención mexicana, rusa, etc para pagar los cupones cada 13 / 26 / 52 semanas enteras en lugar de meses enteros.