IBOR Reform Support

CME are due to switch to SOFR discounting on 17 July 2020 and LCH on 17 October 2020. Will Strata support the relevant curve instruments for this transition e.g. a new OvernightFutureCurveNode in time for this switch, and if so do you have a rough (or firm) ETA?

We will need to support curves with SOFR for our commercial products, so this will happen. In fact, a small part of the work has started on a branch, but it needs quite a bit more work before it is ready. Hope that helps
Stephen

Hi Stephen, I just wanted to see what the progress on this is, it looks like EONIA > ESTR will end up happening before SOFR in late July.

I hear you, and Iā€™m trying to bump it up our backlog.

Iā€™m looking at setting up an ESTR curve in parallel to our EONIA one within the same curve group, I am seeing issues with the root finding convergence when I have a TermDepositCurveNode for both which conceptually I understand. Is there any way to set this up or do the two curves have to be completely separate?

I donā€™t believe we have any specific settings that would cover that use case Iā€™m afraid.

Just checking if there is any update on SOFR support e.g. SOFR futures

Part one is here, feel free to review:

This looks great, thank you, as there are only 8 weeks to go I assume this will be merged and released pretty quickly?

I just wanted to check, looks like OvernightFutureCurveNode is there already, whatā€™s part two? :slight_smile:

I think its all done now. Would be great if you could give it a test drive before release.

You mean build off master locally and fit a SOFR curve?

If you can that would help ensure everything is in place.

Will do, just starting this - any plans for an OvernightOvernightSwapCurveNode so we can use FF/SOFR basis to fit the curve?

That said - I fitted a SOFR curve using 2.7.8-SNAPSHOT using meeting date swaps (which is our custom code) and outright OIS swaps which looks fine. I havenā€™t tested SOFR futures or looked into monkey-patching SOFR-FF basis.

I had a quick look at using futures & hit this:

Caused by: java.lang.IllegalArgumentException: Trade type 'ResolvedOvernightFutureTrade' is not supported for calibration
at com.opengamma.strata.pricer.curve.CalibrationMeasures.getMeasure(CalibrationMeasures.java:199)
at com.opengamma.strata.pricer.curve.CalibrationMeasures.value(CalibrationMeasures.java:152)
at com.opengamma.strata.pricer.curve.CalibrationValue.lambda$apply$0(CalibrationValue.java:61)
at java.base/java.util.Arrays.setAll(Arrays.java:5414)
at com.opengamma.strata.collect.array.DoubleArray.of(DoubleArray.java:272)
at com.opengamma.strata.pricer.curve.CalibrationValue.apply(CalibrationValue.java:61)
at com.opengamma.strata.pricer.curve.CalibrationValue.apply(CalibrationValue.java:22)
at com.opengamma.strata.math.impl.rootfinding.VectorRootFinder.checkInputsAndApplyFunction(VectorRootFinder.java:51)
at com.opengamma.strata.math.impl.rootfinding.newton.BaseNewtonVectorRootFinder.findRoot(BaseNewtonVectorRootFinder.java:81)
at com.opengamma.strata.pricer.curve.RatesCurveCalibrator.calibrateGroup(RatesCurveCalibrator.java:320)
at com.opengamma.strata.pricer.curve.RatesCurveCalibrator.calibrate(RatesCurveCalibrator.java:277)

FYI I fitted a curve using either futures or meeting dates at the short end, the futures donā€™t look right (I modified CalibrationMeasures just doing a copy/replace on the Ibor futuresā€¦)

Futures

Meeting Date Swaps

Happy to test this further with you

Thanks. Iā€™ll get the calibration measure fixed. No plans for OvernightOvernightCurveNode although I suspect its not that hard. The curve fitting does look odd though.

Iā€™ll test again once youā€™ve updated master with calibration measures and let you know

I found an issue in the end date of the OvernightFutureCurveNode. I donā€™t know if it was what generated the issue in your calibration. I have raised a PR about it: https://github.com/OpenGamma/Strata/pull/2221

It should be in master in the coming days.