Get(ListTermCashflowSet cashFlowSet, int days, decimal nominal) { ZSpreadSpecificAnnuity annuity = new ZSpreadSpecificAnnuity(cashFlowSet, days); var result = Interpolation.Interpolate(annuity.GetPV, 0.01m, 0.09m, nominal); return(result); }
public ZSpread(ListTermCashflowSet cashFlowSet, decimal nominal) { this.cashFlowSet = cashFlowSet; this.nominal = nominal; days = cashFlowSet.termType == Term.YearlyEffective ? 365 : cashFlowSet.termType == Term.MonthlyEffective ? 30 : 0; }
ZSpreadPresentValue(ListTermCashflowSet cashFlowSet, int days, decimal nominal) { Annuity annuity = new Annuity(cashFlowSet, days); var result = Interpolation.Interpolate(annuity.GetZSpreadPV, 0.01m, 0.09m, nominal); return(result); }
public ActionResult <decimal> ZSpread(PlainListTermCashFlowSet cashFlowSet) { var cashFlowList = new ListTermCashflowSet(cashFlowSet.cashflowSet, cashFlowSet.termType); var res = new ZSpread(cashFlowList, cashFlowSet.nominal); var result = res.CalculateZspread(); return(result); }
AnnuityPresentValue(PlainListTermCashFlowSet cashFlowSet, int days, decimal nominal) { var cashFlowList = new ListTermCashflowSet(cashFlowSet.cashflowSet, cashFlowSet.termType); Annuity annuity = new Annuity(cashFlowList, days); var result = annuity.GetPV(); return(result); }
public void AssertInterpolationTest1() { var flows = new ListTermCashflowSet(cashFlowSet, Term.MonthlyEffective); var zSpread = new ZSpread(flows, 2000000m); var result = zSpread.Spread(); var annuity = new Annuity(flows, 30); var check = annuity.GetZSpreadPV(0.0132866482605499030537820089M); Assert.IsTrue(IsEqualWithinThreshold(result, 0.0132866482605499030537820089M)); Assert.IsTrue(IsEqualWithinThreshold(check, 2000000m)); }
public ZSpreadSpecificAnnuity(ListTermCashflowSet cashFlowSet, int days) { this.cashFlowSet = cashFlowSet; this.days = days; }
public NominalCashflowSet(Nominal Nominal, ListTermCashflowSet cashFlowSet) { this.Nominal = Nominal; this.cashFlowSet = cashFlowSet; }