|
From: Quant <qua...@gm...> - 2026-06-17 15:30:26
|
Dear QuantLib users,
I am currently bootstrapping a cross-currency basis-adjusted discount curve
using ConstNotionalCrossCurrencyBasisSwapRateHelper and have a question
regarding payment frequency conventions.
The helper accepts a single paymentFrequency parameter, which appears to be
applied to both legs of the underlying cross-currency basis swap:
ccbs_helpers = [
ql.ConstNotionalCrossCurrencyBasisSwapRateHelper(
ql.QuoteHandle(ql.SimpleQuote(basis / 10000)),
ql.Period(*tenor),
2,
calendar,
ql.Following,
False,
sonia,
sofr,
sonia_ts,
True,
False,
paymentFrequency=ql.Quarterly
)
for basis, tenor in ...
]
My question is: how should one handle market instruments where the two
floating legs have different payment frequencies? For example when I
inquired with my market data provider, they indicated that for their quotes:
-
SONIA leg pays annually
-
SOFR leg pays quarterly
Is there a way to specify separate payment frequencies for each leg when
using ConstNotionalCrossCurrencyBasisSwapRateHelper or
MtMCrossCurrencyBasisSwapRateHelper, or is the helper designed under the
assumption that both legs share the same payment schedule?
If different frequencies are required, is the recommended approach to:
1.
Build a custom cross-currency swap instrument with separate schedules
for each leg and create a custom RateHelper; or
2.
Approximate the market convention using a common frequency for both legs?
I would appreciate any guidance on how QuantLib intends such instruments to
be handled and whether there are examples of bootstrapping a CCS basis
curve when the two legs have different payment frequencies.
Thank you for your help.
Kind regards,
Nk
|