1 votos

¿Qué podrían ser los flujos de efectivo de US0SFR1Z Curncy?

Entonces este swap "SOFR vs fixed" tiene una pata fija que paga un 5.231% anual y una pata flotante que paga anualmente la tasa SOFR compuesta anualmente, y tiene un plazo de 1 semana. Si ha comenzado hoy, no tendrá intercambio de flujos de efectivo ya que 1 semana < 1 año. Entonces necesariamente es un swap que ha comenzado antes, pero entonces, ¿cuál es swap es?

ingresa la descripción de la imagen aquí

1voto

BC. Puntos 9229

La página DES siempre muestra información muy genérica, las convenciones básicas de intercambio SOFR en el caso de US0SFR1Z.

El acuerdo, el plazo y la comilla son específicos para el ticker. Así que tienes un intercambio SOFR fijo-variable, que se liquida el 25 de julio y vence en 1 semana (1 de agosto).

En cuanto a la computación, en realidad es más simple con intercambios a corto plazo. La siguiente captura de pantalla muestra cómo SWPM coincide con el HP, que es el intercambio cotizado con liquidación estándar T+2.

Introducir descripción de la imagen aquí

Elegí una fecha de inicio histórica porque puedes observar directamente los ajustes en la pestaña Resets para calcular los flujos de efectivo reales. Introducir descripción de la imagen aquí

Replicar la computación en Python se ve así:

from datetime import date
import pandas as pd
from math import prod

start = date(2023, 7, 13)
end = date(2023, 7, 20)
pd.date_range(start, end, freq='B')

df = pd.DataFrame({"Dates" : pd.date_range(start, end, freq='B'),  "Reset Rate" : [5.06,5.05,5.06,5.06,5.05, 5.06]})
days = [(df.Dates[i+1]-df.Dates[i]).days for i in range(0,len(df)-1)]
days.append(0)
df["Days"] = days
df["Rate"] = 1+df["Reset Rate"]/100*df.Days/360
df

Esto crea un DataFrame que muestra las fechas, los ajustes asociados y la tasa calculada, que se calcula como $1+df["Reset Rate"]/100*df.Days/360$ para ajustar por el día de ACT/360.

Introducir descripción de la imagen aquí

La pierna fija es trivial, y para la pierna variable, uno necesita redondear el valor compuesto por 7 decimales y ajustar nuevamente por el día para obtener un valor anual, llamado Cupón Equivalente en SWPM.

N = 10000000
quote = 0.05058
fixed_leg = N*(1+quote*7/360)
Equiv_Coupon = round((prod(df.Rate[0:5])-1)*360/7,7)
float_leg = 10000000*(1+Equiv_Coupon*7/360)
pd.set_option('display.float_format', lambda x: '%.7f' % x)
pd.DataFrame({"Notional" : [N], "Quote" : [quote], "Fixed Leg Payment" : fixed_leg, "Equivalent Coupon" : Equiv_Coupon, "Float Leg Payment" : float_leg,})

Introducir descripción de la imagen aquí

Lo cual es idéntico a la pestaña de flujos de caja en BBG: Introducir descripción de la imagen aquí

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X