Accelerating OIS Pricing with Telescopic Value Dates
Summary
The document addresses whether an overnight index swap’s fair rate and PV01 can be calculated without constructing an OvernightIndexedSwap object in QuantLib. The response cautions that reproducing the calculation from a curve alone is complex and would be approximate unless it accounts for the instrument’s conventions. It therefore does not provide a standalone pricing formula for fair rate or PV01.
For a performance issue, it suggests enabling the telescopic value dates option when constructing the swap. This lets QuantLib estimate future coupons more quickly instead of calculating every daily fixing and compounding step. The optimization is conditional: it depends on the index’s fixing days, the swap’s lookback, and whether an observation shift is used. If those conditions do not permit the rule, the implementation raises an exception. The advice concerns faster swap valuation through the library’s existing instrument model, not eliminating the swap object.
Key ideas
- Recreating OIS fair rate and PV01 from a curve without instrument conventions can produce only an approximation.
- QuantLib’s telescopic value dates option can speed up OIS valuation by estimating future coupons.
- The telescopic rule is unavailable for some combinations of fixing days, lookback, and observation shift.
- The option must be supplied through the swap constructor, including preceding parameters where Python overloads prevent keyword use.
Tags
Full text
# Price OIS fairRate and PV01 without creating OvernightIndexedSwap object? # Price OIS fairRate and PV01 without creating OvernightIndexedSwap object? With QuantLib Python, I'm able to build OIS curve and reprice the inputs by using OvernightIndexedSwap with schedule. Would like to know is there a way to price PV01 and fairRate() of OIS/IRS without creating OvernightIndexedSwap object with schedule please? ## Answer by Luigi Ballabio (score 3, accepted) https://quant.stackexchange.com/a/81487 Calculating the rate and PV from the curve may be complicated, and it would be approximated anyway if you don't consider all the conventions in `OvernightIndexedSwap`. If the problem is the performance, it might be because by default the OIS is calculating each daily fixing and compounding it. It's possible to tell it to use a telescopic rule to estimate future coupons, which makes it faster; to enable this, pass `True` as the value of the `telescopicValueDates` parameter in the `OvernightIndexedSwap` constructor you're using; see here for their declaration. Unfortunately, overloaded constructors means that it's not possible to use keyword arguments in Python for this class, so you'll have to also pass all the parameters before `telescopicValueDates`. Note that the telescopic rule cannot be used in all cases, depending on the fixing days of the underlying index, the lookback days of the swap, and whether there's an observation shift; the implementation of the check is here. The swap will raise an exception if you pass `telescopicValueDates = True` and the rule can't be applied.
Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.