Example #1
0
        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);
        }
Example #2
0
 public ZSpread(ListTermCashflowSet cashFlowSet, decimal nominal)
 {
     this.cashFlowSet = cashFlowSet;
     this.nominal     = nominal;
     days             = cashFlowSet.termType == Term.YearlyEffective ? 365 :
                        cashFlowSet.termType == Term.MonthlyEffective ? 30 : 0;
 }
Example #3
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);
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
        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;
 }
Example #8
0
 public NominalCashflowSet(Nominal Nominal, ListTermCashflowSet cashFlowSet)
 {
     this.Nominal     = Nominal;
     this.cashFlowSet = cashFlowSet;
 }