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?
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.