I have looked over the OpenGamma source code in a fair amount of detail, and I don’t seem to be able to find a way to use the MulticurveProvider and GeneratorCurve classes to bootstrap curves that directly store instantaneous forward rates as data. It seems like GeneratorCurve has to generate curves through interpolation on the discount factor or zero coupon rate, and there is nothing implemented for the instantaneous forward rate. Interpolation on instantaneous forward rates is currently the industry standard, so I am wondering whether this can be easily done through a different class in OpenGamma.
Thanks in advance,
We have not created explicitly a description of the curve based on instantaneous forward rates. The main reason we have not done it is that we have, up to now, not seen practical case where we would like to use it. Moreover, from an instantaneous forward rate, the discount factors are obtained through an integral. The discount factors are the main result obtain from a discounting curve and integrating (numerically) for each factor would be quite inefficient from a numerical point of view.
The flexible architecture of the curve description does not prevent doing it. It would simply require adding a “YieldAndDiscountCurve” implementation storing the instantaneous forward rate and computing the discount factors from that.
There is one case were the instantaneous forward are the number on which we want to work in practice: to represent constant overnight rates between central bank rate decision meetings. The actual rates we are interested are the overnight rates, and the instantaneous rates are a close enough approximation. For the constant rate between meetings, the curve can be represented by a curve based on discount factors with log-linear interpolation. This is done in the demo/test “MulticurveBuildingDiscountingDiscountEURCommitteeSimpleTest” available in the open source code.
In which case would you like to describe the curve by instantaneous forwards? If you describe the practical case you are interested in, maybe we can find it interesting on our side and we can add an example with that approach.
We are interested in getting a smooth and yet simply parametrized instantaneous forward rate curve, which is most easily accomplished by doing a simple interpolation such as linear on the instantaneous forward rate. This is useful when we want to derive forward rates of different tenors from a single curve to price swaps, forward rate agreements, etc. I understand that flat interpolation on the forwards can be mimicked by doing log-linear interpolation on the discount factors, but linear and spline interpolation on the forwards cannot be reproduced using the existing interpolation options.