1 votos

XCS y FX swaps: riesgos de mercado

XCS (intercambio de divisas) puede ser:

  • Float vs float #1
  • Fixed vs fixed #2
  • Float vs fixed #3

2 puede ser construido con 2 irs fijos vs flotantes y 1 swap de base xccy #1

3 puede ser construido con 1 irs y #1

Un swap de divisas es equivalente en riesgo a #2 (¿creo?)

¿Es cierto que: #1 tiene riesgo de divisa, riesgo de tasa de interés para cada una de las dos monedas involucradas, y riesgo de base xccy?

Si es así, ¿significa que #2 y los swaps de divisas no tienen ningún riesgo de interés? ¿Solo riesgo de base xccy y de divisa?

¿O si no es cierto entonces quizás #1 solo tiene riesgo de divisa y riesgo de base xccy? Y entonces se deduce que #2 y los swaps de divisas sí tienen, además de riesgo de divisa y de base xccy, riesgo de interés para cada moneda?

3voto

dotnetcoder Puntos 1262

En general, estás en el camino correcto. He utilizado rateslib de Python para hacer estos cálculos.

Configura las curvas y el motor de riesgo

from rateslib import *
usdusd = Curve({dt(2023, 1, 1): 1.0, dt(2024, 1, 1): 0.95}, id="usd")
eureur = Curve({dt(2023, 1, 1): 1.0, dt(2024, 1, 1): 0.975}, id="eur")
eurusd = Curve({dt(2023, 1, 1): 1.0, dt(2024, 1, 1): 0.975}, id="eurusd")
instruments = [
    IRS(dt(2023, 1, 1), "1Y", "A", currency="usd", curves="usd"),
    IRS(dt(2023, 1, 1), "1Y", "A", currency="eur", curves="eur"),
    XCS(dt(2023, 1, 1), "1Y", "Q", currency="eur", leg2_currency="usd", curves=["eur", "eurusd", "usd", "usd"])
]
fxr = FXRates({"eurusd": 1.10}, settlement=dt(2023, 1, 3))
fxf = FXForwards(
    fx_rates=fxr,
    fx_curves={
        "usdusd": usdusd,
        "eureur": eureur,
        "eurusd": eurusd,
    }
)
solver = Solver(
    curves=[usdusd, eureur, eurusd],
    instruments=instruments,
    s = [5.0, 2.5, -10],
    instrument_labels=["USD 1Y", "EUR 1Y", "XCS 1Y"],
    fx=fxf,
    id="XCCY"
)

Ahora construyo cada uno de tus instrumentos y consulto el delta. Primero un swap de divisas de marcaje al mercado:

xcs = XCS(
    dt(2023, 1, 1), "1Y", "Q", 
    notional=100e6, currency="eur", 
    leg2_currency="usd", 
    fx_fixings=1.10, 
    curves=["eur", "eurusd", "usd", "usd"]
)
xcs.delta(solver=solver, base="eur").style.format("{:.0f}")

introduce la descripción de la imagen aquí

Segundo un swap de divisas fijo-fijo.

ffxcs = FixedFixedXCS(
    dt(2023, 1, 1), "1Y", "A", 
    notional=100e6, currency="eur", fixed_rate=2.41,
    leg2_currency="usd", leg2_fixed_rate=5.01,
    fx_fixings=1.10, 
    curves=["eur", "eurusd", "usd", "usd"]
)
ffxcs.delta(solver=solver, base="eur").style.format("{:.0f}")

introduce la descripción de la imagen aquí

Y finalmente un FXswap (He tenido que iterar la entrada de la tasa fija para obtener un FXSwap de mercado medio)

fxs = FXSwap(
    dt(2023, 1, 1), "1y", "Z",
    notional=100e6, currency="eur", 
    leg2_currency="usd", leg2_fixed_rate=2.54,
    fx_fixing=1.10,
    curves=["eur", "eurusd", "usd", "usd"],
)
fxs.delta(solver=solver, base="eur").style.format("{:.0f}")

introduce la descripción de la imagen aquí

El FXSwap tiene un riesgo de 216 EUR por pip en la tasa de cambio EURUSD porque cada pata del FXSwap tiene un valor presente neto en cada moneda local cuando se ejecuta al mercado medio. (Este es un FX swap sin divisiones, es decir, donde el nominal base es el mismo en las fechas efectiva y de terminación, lo que crea el riesgo FX. Con tasas de interés no en torno a cero, los swaps FX con nominales divididos son más comunes y no crean el riesgo FX al contado)

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