Intento averiguar si es posible valorar los productos estructurados, sobre todo los préstamos, en cantidad. La idea es construir una clase de bonos con diferentes flujos de efectivo. Por ejemplo, un préstamo podría tener cupones que sólo paguen intereses, podría ser sólo amortizable o incluso los cupones pueden aumentar la cantidad nominal.
También, para propósitos de FTP, uno podría estar interesado en el rendimiento que devuelve el valor nominal del préstamo. ¿Hay una función nativa para eso?
¿Es posible hacer esto con la versión actual en Python o en C++?
Para ser más precisos, imagina estos dos ejemplos:
Primero, tengo un préstamo que se emite con un valor nominal de 2000 y tiene dos amortizaciones de 1000:
He tenido éxito construyendo los flujos de efectivo con la clase de bonos con un simple código:
def bond_from_table(df,notional, outlay_date, day_counter, r=0.03):
eval_date = ql.Settings.instance().evaluationDate
coupons = []
redemptions = []
redem = 0
for i in range(df.shape[0]):
start_date = df.at[i,'Start']
end_date = df.at[i,'End']
notional -= redem
redem = df.at[i,'Capital']
redemptions.append(ql.Redemption(redem,end_date))
coupons.append(ql.FixedRateCoupon(end_date,notional,r,day_counter,start_date,end_date))
leg = ql.Leg(coupons)
loan = ql.Bond(0,calendar,eval_date,leg)
return loan
Como parece que la clase de bonos construye las redenciones de los nominales que se están pagando. Lo bueno es que usando la clase de bonos podemos acceder a todas las funciones de los bonos y otras cosas como la capacidad de rescate y así sucesivamente.
¡Pero! si trato de construir algo como esto:
Si después del pago inicial de 2000 al cliente, se pagan otros 400 en las próximas fechas (por eso el signo -) -al final, se recibe el total del préstamo- me daría un error diciendo que el nominal está aumentando, lo cual es cierto. Supongo que puede haber otra ruta para esto, pero creo que perderé las funcionalidades de la clase de bonos.
¿Alguna idea? Gracias de antemano,
1 votos
FTP = Precios de Transferencia de Fondos ?
0 votos
Sí, a efectos de ALM
1 votos
Podría ser útil que enumeraras las características de los préstamos estructurados que quieres utilizar para proyectar los flujos de caja. Por ejemplo, recuerdo un préstamo indonesio en el que en cada reajuste el emisor tenía la opción de pagar libor a 3 meses + diferencial en 3 meses, o libor a 6 meses + diferencial y reajuste en 6 meses. Eso no es lo que querías decir, ¿verdad?
0 votos
Entiendo lo que dices, actualizaré el post con un ejemplo.
1 votos
Asumes que los reembolsos (amortizaciones) ocurren en los días de cupón, pero he visto préstamos en los que la forma nocional se paga en días arbitrarios en medio del periodo de cupón. El cupón pagado en el ens del período se devenga sobre diferentes cantidades nocionales antes y después. También he visto préstamos cuyo nocional aumentaba mediante PIK o desembolsos.
0 votos
Sí, es un ejemplo, estoy pensando cómo se puede implementar la fijación de precios de los préstamos de financiación de proyectos (con flujos de caja arbitrarios) y todavía ser capaz de utilizar todas las funcionalidades de la biblioteca, es decir, los árboles y montecarlo y así sucesivamente