|
From: Luigi B. <lui...@gm...> - 2026-07-28 15:11:25
|
Hi, the MtM swaps are in progress, see https://github.com/lballabio/QuantLib/pull/2642 . Hopefully they'll be in next release but they're a lot more complex than the const-notional swaps and we might have to iron them out. A workaround for MtM swaps is documented at https://www.quantlibguide.com/Cross-currency%20swaps.html but with caveats (also documented). Hope this helps, Luigi On Tue, Jul 28, 2026 at 4:10 PM Quant <qua...@gm...> wrote: > Hi Luigi, > > Thank you for your feedback on my earlier email regarding bootstrapping a > cross-currency basis-adjusted discount curve using > ConstNotionalCrossCurrencyBasisSwapRateHelper and > MtMCrossCurrencyBasisSwapRateHelper, particularly in relation to the > support for asymmetric payment frequency conventions introduced in the > QuantLib 1.43 release. > > I noticed that QuantLib 1.43 now includes the following instruments: > > - ql.ConstNotionalCrossCurrencyBasisSwap() > - ql.ConstNotionalCrossCurrencySwap() > - ql.ConstNotionalCrossCurrencyFixedVsFloatingSwap() > > I wanted to check whether the mark-to-market (MtM) equivalents of these > instruments have not yet been implemented, or whether there is an > alternative or recommended workaround for modeling MtM cross-currency swaps > using the constant notional implementations above. > > I would appreciate any guidance you can provide. > > Thanks and regards, > > Nk > > On Thu, Jun 18, 2026 at 9:09 AM Luigi Ballabio <lui...@gm...> > wrote: > >> Hi, this was added recently — see >> https://github.com/lballabio/QuantLib/pull/2528. It will be available >> in release 1.43 out next month. >> >> Regards, >> Luigi >> >> >> On Wed, Jun 17, 2026 at 5:30 PM Quant <qua...@gm...> wrote: >> >>> 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 >>> _______________________________________________ >>> QuantLib-users mailing list >>> Qua...@li... >>> https://lists.sourceforge.net/lists/listinfo/quantlib-users >>> >> |