-
Notifications
You must be signed in to change notification settings - Fork 225
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Inconsistency in PAR sensitivity for XBS instrument #234
Comments
Thank you! Do you know what the correct construction would be? I.e. would the separate calendars and adjusting the termination date in the curve helper lead to correct results? I would think in reality there is no front stub in the traded swaps. |
Generally, for curve build, the termination date is adjusted with calendar and roll convention of the spread leg. So I think it would be great if convention could be enhanced to specify (Calendar, RollConvention and DateGeneration) for each of the legs and be used in the curve helper. |
That makes sense. Maybe it's a long stub at the end, i.e. a slightly prolonged last coupon period? |
Yes you're right, seems long end stub is the preferred choice for traded swaps. |
Hi,
Just wanted to describe a small inconsistency wrt PAR sensitivity and yield bootstrap for cross currency swap instrument.
Example situation is for value date 2024-04-26 for cross currency basis spread of JPY on EUR.
CrossCurrencyBasis
convention definesSettlementDays
= 2 and a London + Tokyo asSettlementCalendar
.Note, on neither of these calendars is 2024-05-01 a holiday but 2028-05-01 will be a holiday in London calendar as 1st Monday in May.
Also, the convention defines OIS indexes as
<FlatIndex>EUR-ESTER</FlatIndex>
and<SpreadIndex>JPY-TONAR</SpreadIndex>
.If we run the curve build, this is fine. But if we run the PAR sensitivity with this convention on 4Y shift tenor will raise a degenerate schedule exception:
We end up in this situation because applying settlement days (=2) to the value date (=2024-04-26) gives us an effective date of 2024-05-01 (because 2024-04-29 is holiday in joint settlement calendar) and for 4Y instrument it gives 2028-05-02 (because 2028-05-01 is holiday in joint settlement calendar). This is according to
Engine/OREAnalytics/orea/engine/parsensitivityanalysis.cpp
Line 1761 in 1efe568
Now, there are 2 points would like to raise:
CrossCurrencyBasis
should probably have additional calendars for flat and spread legs. This also leads to an imprecision in the curve since the instrument schedules are not aligned to the calendars for each of the currencies. The instrument helperCrossCcyBasisSwapHelper
has parameters forflatCalendar
andspreadCalendar
but are passed empty because the convention has none of them;Engine/QuantExt/qle/termstructures/crossccybasisswaphelper.cpp
Line 115 in 1efe568
Regards,
Laurentiu.
The text was updated successfully, but these errors were encountered: