QuantLib icon indicating copy to clipboard operation
QuantLib copied to clipboard

Implement LIBOR-fallback pricer for `IborCoupon`

Open lballabio opened this issue 4 years ago • 9 comments

After 2021, LIBOR fixings will no longer be provided and floating coupons will be fixed at a spread over the OIS curve. This should already be taken into account for forecasting coupons after that date.

There are a few ways we can do this. One would be a new class distinct from IborIndex (which will still be used for non-LIBOR rates); this would cause instruments to have coupons with different index instances based on whether they are fixed before or after 2021, so we'd have to provide a way to build such instruments easily. Or we could have a composite index containing an old and a new index and dispatching based on the fixing date.

Another would be to modify the existing Libor class, but that's trickier; it would need two different curves for before and after 2021.

Also, the IborCoupon class now evaluates coupons at par on the given curve, which will have to change. Depending on how we change the index, making --enable-indexed-coupons the default might help with that.

Other changes might be required.

lballabio avatar Mar 16 '21 12:03 lballabio

To be honest, and I have the least to say here, but: I would really love to have a clean cut between LIBOR and OIS. Therefore; I guess I am probably in the minority, I would certainly clearly differ the LIBOR products from the OIS products. Not even close.

CayOest avatar Mar 28 '21 00:03 CayOest

That means, I would rather have a completely different class from Ibor-Index, Sir. ;)

CayOest avatar Mar 28 '21 00:03 CayOest

Hmm, the index is probably not the correct thing to change anyway. It's probably going to be the coupon that needs to perform the calculation. A libor-fallback pricer for IborCoupon might work...

lballabio avatar Mar 30 '21 15:03 lballabio

I like the pricer approach a lot. Would you pass a tailored rate curve to that pricer for rate projection, which I guess would be derived from the relevant RFR's projection curve in a way that the Libor projection coincides with the way fall-back rates are determined from RFRs?

pcaspers avatar Apr 24 '21 17:04 pcaspers

Either that, or passing to the pricer the RFR curve and the adjustment spread and having it do the actual fallback calculation.

lballabio avatar Apr 26 '21 13:04 lballabio

Hello, Not sure what happened on this issue. Is there a "fix" available? Have you decided if the best option is the pricer route? Best,

Franeszku avatar Nov 15 '21 13:11 Franeszku

Still undecided. In the meantime, there are workarounds: see https://www.implementingquantlib.com/2021/10/libor-fallback-calculation.html.

lballabio avatar Nov 16 '21 09:11 lballabio

Thanks a lot for the reply.

Having a look at the workarounds.

Franeszku avatar Nov 18 '21 11:11 Franeszku

just FYI - we ended up with using a wrapper index class https://github.com/OpenSourceRisk/Engine/blob/master/QuantExt/qle/indexes/fallbackiborindex.hpp

pcaspers avatar Aug 15 '22 18:08 pcaspers