He estado utilizando la función CrossCurrencyBasisSwapRateHelper para generar una curva de descuento colateralizada en la que la garantía está en una divisa distinta a la del activo. Sin embargo, me he dado cuenta de que esta función ha quedado obsoleta y ya no está disponible, aunque sigue apareciendo en la sección "Helpers" de la documentación de ayuda online de Quantlib. ¿Existe alguna alternativa?
Respuestas
¿Demasiados anuncios?Parece como si ConstNotionalCrossCurrencyBasisSwapRateHelper se ha añadido como reemplazo. Sólo no hay documentación ofrecida en el en https://quantlib-python-docs.readthedocs.io/en/latest/thelpers.html?highlight=helpers
Parece que el ConstNotionalCrossCurrencyBasisSwapRateHelper
es de hecho un sustituto del obsoleto CrossCurrencyBasisSwapRateHelper
en QuantLib.
En ConstNotionalCrossCurrencyBasisSwapRateHelper
se utiliza para crear ayudantes de tipos para curvas de swaps de base entre divisas, en las que la garantía está en una divisa distinta de la del activo. Permite un importe nocional constante para los swaps de base, a diferencia de los nocionales variables que admitía el ayudante obsoleto.
Para utilizar ConstNotionalCrossCurrencyBasisSwapRateHelper
En este caso, lo normal es crear una instancia del helper y pasarle los parámetros necesarios, como los días de liquidación, la comilla, las fechas de inicio y fin y el índice de intercambio de bases subyacente. Este helper se puede utilizar en la construcción de su curva de swap de base entre divisas.
He aquí un ejemplo básico que demuestra el uso de ConstNotionalCrossCurrencyBasisSwapRateHelper
en Python con QuantLib:
import QuantLib as ql
# Set up the required parameters
settlement_days = 2
quote = ql.SimpleQuote(0.01) # Example basis swap rate quote
start_date = ql.Date(25, 5, 2023) # Example start date
end_date = ql.Date(25, 5, 2024) # Example end date
calendar = ql.TARGET() # Example calendar
collateral_currency = ql.EURCurrency() # Example collateral currency
asset_currency = ql.USDCurrency() # Example asset currency
basis_swap_index = ql.Euribor6M() # Example basis swap index
# Create the basis swap rate helper
basis_swap_helper = ql.ConstNotionalCrossCurrencyBasisSwapRateHelper(
settlement_days, quote, start_date, end_date,
calendar, collateral_currency, basis_swap_index, asset_currency
)
# Retrieve the discount curve for collateral currency
collateral_curve = ql.YieldTermStructureHandle(
ql.FlatForward(0, ql.TARGET(), 0.05, ql.Actual360())
) # Example collateral curve
# Construct the discounting curve with the basis swap helper
helpers = [basis_swap_helper]
curve = ql.PiecewiseLogCubicDiscount(settlement_days, calendar, helpers, ql.Actual360())
# Evaluate the curve at a specific date
curve_date = ql.Date(1, 6, 2023) # Example evaluation date
discount_factor = curve.discount(curve_date)
print(f"Discount factor at {curve_date}: {discount_factor:.6f}")