// Calcualate BnR disc risk on a linear rate instrument public double BumpAndRunDisc(LinearRateInstrument product, int curvePoint, double bump = 0.0001) { double valueNoBump = ValueLinearRateProduct(product); LinearRateModel newModel = BumpDiscCurveAndReturn(curvePoint, bump); double valueBump = newModel.ValueLinearRateProduct(product); return((valueBump - valueNoBump) / bump * 0.0001); }
// Calculate BnR forward risk on a linear rate instrument public double BumpAndRunFwdRisk(LinearRateInstrument product, CurveTenor fwdCurve, int curvePoint, double bump = 0.0001) { double valueNoBump = ValueLinearRateProduct(product); LinearRateModel newModel = BumpFwdCurveAndReturn(fwdCurve, curvePoint, bump); double valueBump = newModel.ValueLinearRateProduct(product); return((valueBump - valueNoBump) / bump * 0.0001); }