|
From: Arkadiy N. <ark...@gm...> - 2020-02-01 16:15:02
|
On further examination, one could use an existing class OvernightIndexedSwapIndex existing with a payment frequency equal to its tenor to simulate “tenored” SOFR. I’ve yet to test it out, but it will work in theory if I understand the implementation correctly. So while there seems to be no need to create a brand new index class, there are however quite a few features missing from QL that would allow to model these new indexes accurately: - advance vs arrears; while current overnight indexed swaps are set up with “in arrears” convention, it is quite possible that FRN’s/loans (and perhaps derivatives to hedge those) will use “in advance” convention. - Lockout or Suspension Period: Use the averaged SOFR over current interest period with last rates set at the rate fixed k days before the period ends (a 2-5 day lockout has been used in most SOFR FRNs). - negative fixing period; o/n rate published today applies to the instrument period from yesterday to today (https://www.clarusft.com/ois-swap-nuances/) - arithmetic average; it’s implemented as a swap in experimental section, but there is no corresponding index class. Perhaps, a flag (such as “nettingtype” that’s used in overnight futures) could be introduced to make The index support both conventions. This seems like a less involved task - given that the base implementation already exists, adding features to an existing code should be easier. Plus the features are more or less independent, so can be implemented separately. Does this make sense? Would folks be interested in using these? I could add these as issues to GitHub, but really wanted to get an assessment from the community first. Thank you in advance! Sent from my iPad > On Jan 30, 2020, at 12:00 AM, Arkadiy Naumov <ark...@gm...> wrote: > > Wanted to bring something up for the discussion for the community. Given undergoing libor replacement efforts, we’ll likely start seeing more overnight indexed swaps and floating rate notes that are behaving just like ois variable legs, i.e. resetting periodically to an index that’s either a simple or compound average of overnight index fixings. Would it make sense to add a new kind of index to represent these instruments? This paper from New York Fed https://www.newyorkfed.org/medialibrary/Microsites/arrc/files/2019/Users_Guide_to_SOFR.pdf describes different flavors in details. > > As far as I understand, Quantlib already takes care of such cash flows (since it supports regular overnight indexed swap and arithmetic average overnight indexed swap). And of course, it’s possible to replicate these explicitly, but it would be very convenient to be able to get fixing for these out of the box, and have quantlib taking care of various conventions (averaging, fixing delays, advance/arrears, etc.) It could also simplify the definition of overnight indexed swap and would potentially allow merging regular ois and arithmetic average ois implementations (in that common implementation, a floating leg is defined using an index - compound average in one case and simple average in the other). > > This seems to make sense from the functionality perspective, but I am not sure if the suggestion passes the mustard as far as Quantlib’s architecture is concerned? > > I am happy to discuss this in more details if folks have questions. > > > Sent from my iPad |