public final class CurveGammaCalculator extends Object
By default the gamma is computed using a one basis-point shift and a forward finite difference. The results themselves are not scaled (they represent the second order derivative).
Reference: Interest Rate Cross-gamma for Single and Multiple Curves. OpenGamma quantitative research 15, July 14
| Modifier and Type | Field and Description |
|---|---|
static CurveGammaCalculator |
DEFAULT
Default implementation.
|
| Modifier and Type | Method and Description |
|---|---|
CrossGammaParameterSensitivities |
calculateCrossGammaCrossCurve(RatesProvider ratesProvider,
Function<ImmutableRatesProvider,CurrencyParameterSensitivities> sensitivitiesFn)
Computes cross-curve gamma by applying finite difference method to curve delta.
|
CrossGammaParameterSensitivities |
calculateCrossGammaIntraCurve(LegalEntityDiscountingProvider ratesProvider,
Function<ImmutableLegalEntityDiscountingProvider,CurrencyParameterSensitivities> sensitivitiesFn)
Computes intra-curve cross gamma for bond curves by applying finite difference method to curve delta.
|
CrossGammaParameterSensitivities |
calculateCrossGammaIntraCurve(RatesProvider ratesProvider,
Function<ImmutableRatesProvider,CurrencyParameterSensitivities> sensitivitiesFn)
Computes intra-curve cross gamma by applying finite difference method to curve delta.
|
CurrencyParameterSensitivity |
calculateSemiParallelGamma(Curve curve,
Currency curveCurrency,
Function<Curve,CurrencyParameterSensitivity> sensitivitiesFn)
Computes the "sum-of-column gamma" or "semi-parallel gamma" for a sensitivity function.
|
static CurveGammaCalculator |
ofBackwardDifference(double shift)
Obtains an instance of the finite difference calculator using backward differencing.
|
static CurveGammaCalculator |
ofCentralDifference(double shift)
Obtains an instance of the finite difference calculator using central differencing.
|
static CurveGammaCalculator |
ofForwardDifference(double shift)
Obtains an instance of the finite difference calculator using forward differencing.
|
public static final CurveGammaCalculator DEFAULT
public static CurveGammaCalculator ofForwardDifference(double shift)
shift - the shift to be applied to the curvespublic static CurveGammaCalculator ofCentralDifference(double shift)
shift - the shift to be applied to the curvespublic static CurveGammaCalculator ofBackwardDifference(double shift)
shift - the shift to be applied to the curvespublic CrossGammaParameterSensitivities calculateCrossGammaIntraCurve(RatesProvider ratesProvider, Function<ImmutableRatesProvider,CurrencyParameterSensitivities> sensitivitiesFn)
This computes the intra-curve cross gamma, i.e., the second order sensitivities to individual curves. Thus the sensitivity of a curve delta to another curve is not produced.
The sensitivities are computed for discount curves, and forward curves for RateIndex and PriceIndex.
This implementation works only for single currency trades.
ratesProvider - the rates providersensitivitiesFn - the sensitivity functionpublic CrossGammaParameterSensitivities calculateCrossGammaIntraCurve(LegalEntityDiscountingProvider ratesProvider, Function<ImmutableLegalEntityDiscountingProvider,CurrencyParameterSensitivities> sensitivitiesFn)
This computes the intra-curve cross gamma, i.e., the second order sensitivities to individual curves. Thus the sensitivity of a curve delta to another curve is not produced.
The underlying instruments must be single-currency, i.e., the curve currency must be the same as the sensitivity currency.
ratesProvider - the rates providersensitivitiesFn - the sensitivity functionpublic CrossGammaParameterSensitivities calculateCrossGammaCrossCurve(RatesProvider ratesProvider, Function<ImmutableRatesProvider,CurrencyParameterSensitivities> sensitivitiesFn)
This computes the cross-curve gamma, i.e., the second order sensitivities to full curves. Thus the sensitivities of curve delta to other curves are produced.
The sensitivities are computed for discount curves, and forward curves for RateIndex and PriceIndex.
This implementation works only for single currency trades.
ratesProvider - the rates providersensitivitiesFn - the sensitivity functionpublic CurrencyParameterSensitivity calculateSemiParallelGamma(Curve curve, Currency curveCurrency, Function<Curve,CurrencyParameterSensitivity> sensitivitiesFn)
This implementation supports a single Curve on the zero-coupon rates.
By default the gamma is computed using a one basis-point shift and a forward finite difference.
The results themselves are not scaled (they represent the second order derivative).
curve - the single curve to be bumpedcurveCurrency - the currency of the curve and resulting sensitivitysensitivitiesFn - the function to convert the bumped curve to parameter sensitivitiesCopyright 2009-Present by OpenGamma Inc. and individual contributors
Apache v2 licensed
Additional documentation can be found at strata.opengamma.io.