Efficiently updating MarketData



I’m wondering if it is possible with the Strata library to update market quotes without rebuilding the MarketData object and in such a way that depending market data is invalidated or recalculated? For example, I have constructed a MarketData object with market quotes and a couple of curve definition. When I request the curve Strata will construct the curves based on the definitions and market quotes and stored is in the MarketData object (so it can be reused). But now I get a quote update and only one curve depends on this quote (so the other curves don’t have to be recalculated), is Strata able to pick up this dependency and invalidate/recalculate the curve? Or do I have to build the MarketData object and recalculate the curves again?



Strata curve calibration is based on a multi-curve framework, where a set of curves are calibrated together in a group. This means that changes to one curve can affect other curves.

If you have configured your curves such that changes to a single quote only affect one curve (by defining a separate group for each curve), then it is possible to reduce the amount of recalibration. One of the inputs to MarketDataFactory is a MarketData instance called “suppliedData”. If that contains a curve group then ithat group will not be recalibrated. Note that the logic determining whether to calibrate operates at the group level, so you need to copy both the group and the curve to the supplied data.

Hope that helps.