Skip to content
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

Using IMM-rolls swaps to build curves #1393

Open
tomwhoiscontrary opened this issue May 19, 2022 · 5 comments
Open

Using IMM-rolls swaps to build curves #1393

tomwhoiscontrary opened this issue May 19, 2022 · 5 comments

Comments

@tomwhoiscontrary
Copy link
Contributor

As far as i can tell, neither SwapRateHelper nor OISRateHelper take a DateGeneration::Rule parameter, and so always default to backward date generation. This means they can't be used to incorporate quotes for IMM-rolls swaps into curves, which we sometimes want to do.

We've used the magic of copy and paste to make a version of SwapRateHelper which allows customisation of the date generation rule, and it seems to work fine. We now face the need to do this again for OISRateHelper.

Could these helpers be enhanced to support custom date generation rules? I am happy to write a PR if you think this is sensible.

In a sense, this is a distant sequel to #318. Is there a policy that all the options in MakeVanillaSwap / MakeOIS should be exposed in the corresponding helpers? If so, should we ensure that is the case?

More speculatively, is there a way to avoid having to do this manually? Keeping the instruments and the helpers in sync by hand is something of a burden.

@lballabio
Copy link
Owner

A PR would be great, thanks. It might also be the occasion to review the order of default parameters in the swap-helper constructor; the discount curve should probably be first.

I'm not sure if all other possible parameters would be useful. Helpers model quoted instruments, which mostly have defined conventions. Further customisation might remain unused (or confuse people).

@github-actions
Copy link
Contributor

This issue was automatically marked as stale because it has been open 60 days with no activity. Remove stale label or comment, or this will be closed in two weeks.

@github-actions github-actions bot added the stale label Aug 30, 2022
@tomwhoiscontrary
Copy link
Contributor Author

Still hoping to send a PR when i have time!

@github-actions github-actions bot removed the stale label Sep 13, 2022
@github-actions
Copy link
Contributor

This issue was automatically marked as stale because it has been open 60 days with no activity. Remove stale label or comment, or this will be closed in two weeks.

@eltoder
Copy link
Contributor

eltoder commented Feb 21, 2024

I had a similar issue and I thought, maybe we can make SwapRateHelper and OISRateHelper accept builder classes, MakeVanillaSwap and MakeOIS respectively? Currently helpers create these builders internally, but they can take them from the users, so the users can configure them any way they want. This will remove the need to expose every option on the builder as a constructor argument in helpers.

We could go even further and merge dated and non-dated helpers: a dated helper is simply one which has a builder with effective date set. But this is optional.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants