// *********************************** // EXTRACTING DIVIDEND TERM STRUCTURE // *********************************** public Handle <YieldTermStructure> dividend_FwdCrv() { YieldTermStructure crv; if (_isNewFormat == false) { QLNet_Results res = dividend.GetDividendDF_TermStructure(impliedSpot, forward.data, DF.data); crv = new InterpolatedDiscountCurve <Cubic>(res.timeStamps(), res.dataPoints(), dayCounter()); //InterpolatedDiscountCurve<Cubic> } else { QLNet_Results res = dividend.GetDividendDF_TermStructure_NewFormat(); crv = new InterpolatedZeroCurve <Linear>(res.timeStamps(), res.dataPoints(), _dayCounter, _calendar); //InterpolatedZeroCurve<Linear> //(res.timeStamps(), res.dataPoints(), dayCounter()); } return(new Handle <YieldTermStructure>(crv)); }
private YieldTermStructure Discountcurve(List <Date> dates, List <double> dfs, DayCounter dayCounter) { YieldTermStructure yieldts; switch (_interpolationMethod) { case InterpolationMethod.Linear: yieldts = new InterpolatedDiscountCurve <Linear>(dates, dfs, dayCounter, new Linear()); break; case InterpolationMethod.LogLinear: yieldts = new InterpolatedDiscountCurve <LogLinear>(dates, dfs, dayCounter, new LogLinear()); break; case InterpolationMethod.NaturalCubic: yieldts = new InterpolatedDiscountCurve <Cubic>( dates, dfs, dayCounter, new Cubic(CubicInterpolation.DerivativeApprox.Kruger, true, CubicInterpolation.BoundaryCondition.SecondDerivative, 0.0, CubicInterpolation.BoundaryCondition.SecondDerivative, 0.0)); break; case InterpolationMethod.FinancialCubic: yieldts = new InterpolatedDiscountCurve <Cubic>( dates, dfs, dayCounter, new Cubic(CubicInterpolation.DerivativeApprox.Kruger, true, CubicInterpolation.BoundaryCondition.SecondDerivative, 0.0, CubicInterpolation.BoundaryCondition.FirstDerivative, 0.0)); break; case InterpolationMethod.ConvexMonotone: yieldts = new InterpolatedDiscountCurve <ConvexMonotone>(dates, dfs, dayCounter); break; default: Utils.QL_FAIL("Interpolation method not recognised."); throw new Exception(); } return(yieldts); }
// ************************************************************ // METHODS : EXTRACTING TERM STRUCTURES FOR QLNET USAGE // ************************************************************ #region // *********************************** // EXTRACTING RISK FREE TERM STRUCTURE // *********************************** public Handle <YieldTermStructure> riskFree_FwdCrv() { InterpolatedDiscountCurve <Cubic> crv = new InterpolatedDiscountCurve <Cubic>(DF.Dates(), DF.Points(), dayCounter()); return(new Handle <YieldTermStructure>(crv)); }