Esempio n. 1
0
        public static string[,] BesaJseBondResults(
            [ExcelArgument(Description = "The underlying bond.")]
            BesaJseBond besaJseBond,
            [ExcelArgument(Description = "The settlement date of the bond.")]
            Date settleDate,
            [ExcelArgument(Description = "The yield to maturity of the bond.")]
            double ytm)

        {
            var results = besaJseBond.GetSpotMeasures(settleDate, ytm);

            string[,] measures = { { "roundedAip",       results.GetScalar(BesaJseBondEx.Keys.RoundedAip).ToString()       }, { "unroundedAip",   results.GetScalar(BesaJseBondEx.Keys.UnroundedAip).ToString()   },
                                   { "roundedClean",     results.GetScalar(BesaJseBondEx.Keys.RoundedClean).ToString()     }, { "unroundedClean", results.GetScalar(BesaJseBondEx.Keys.UnroundedClean).ToString() },
                                   { "unroundedAccrued", results.GetScalar(BesaJseBondEx.Keys.UnroundedAccrued).ToString() } };

            return(measures);
        }
Esempio n. 2
0
        public void TestAllInPrice()
        {
            var settleDate         = new Date(2006, 6, 8);
            var maturityDate       = new Date(2026, 12, 21);
            var notional           = 1000000.0;
            var annualCouponRate   = 0.105;
            var couponMonth1       = 6;
            var couponDay1         = 21;
            var couponMonth2       = 12;
            var couponDay2         = 21;
            var booksCloseDateDays = 10;
            var zaCalendar         = new Calendar("Test");
            var bondR186           = new BesaJseBond(maturityDate, notional, annualCouponRate, couponMonth1,
                                                     couponDay1, couponMonth2, couponDay2, booksCloseDateDays, zaCalendar, TestHelpers.ZAR);

            var ytm     = 0.0715;
            var results = bondR186.GetSpotMeasures(settleDate, ytm);

            Assert.AreEqual(140.65075443, (double)results.GetScalar(BesaJseBondEx.Keys.UnroundedAip), 1e-8);
            Assert.AreEqual(140.65075, (double)results.GetScalar(BesaJseBondEx.Keys.RoundedAip), 1e-8);
        }
Esempio n. 3
0
        public void TestAllInPrice()
        {
            var settleDate         = new Date(2008, 1, 17);
            var maturityDate       = new Date(2009, 8, 1);
            var notional           = 1000000.0;
            var annualCouponRate   = 0.13;
            var couponMonth1       = 2;
            var couponDay1         = 28;
            var couponMonth2       = 8;
            var couponDay2         = 31;
            var booksCloseDateDays = 10;
            var zaCalendar         = new Calendar("Test");
            var bondR153           = new BesaJseBond(maturityDate, notional, annualCouponRate, couponMonth1,
                                                     couponDay1, couponMonth2, couponDay2, booksCloseDateDays, zaCalendar, TestHelpers.ZAR);

            var ytm = 0.0930;

            var results = bondR153.GetSpotMeasures(settleDate, ytm);

            Assert.AreEqual(110.400707433627, (double)results.GetScalar(BesaJseBondEx.Keys.UnroundedAip), 1e-8);
            Assert.AreEqual(110.40071, (double)results.GetScalar(BesaJseBondEx.Keys.RoundedAip), 1e-8);
        }
Esempio n. 4
0
        public void TestAllInPrice()
        {
            Date     settleDate       = new Date(2016, 3, 3);
            Date     maturityDate     = new Date(2030, 1, 31);
            double   notional         = 1000000;
            double   annualCouponRate = 0.08;
            int      couponMonth1     = 1;
            int      couponDay1       = 31;
            int      couponMonth2     = 7;
            int      couponDay2       = 31;
            Calendar zaCalendar       = new Calendar("Test");
            var      bondR2030        = new BesaJseBond(maturityDate, notional, annualCouponRate, couponMonth1,
                                                        couponDay1, couponMonth2, couponDay2, zaCalendar, TestHelpers.ZAR);

            double      ytm     = 0.097;
            ResultStore results = bondR2030.GetSpotMeasures(settleDate, ytm);

            Assert.AreEqual(87.85607808, (double)results.GetScalar(BesaJseBondEx.Keys.unroundedAip), 1e-8);
            Assert.AreEqual(87.85608, (double)results.GetScalar(BesaJseBondEx.Keys.roundedAip), 1e-8);
            Assert.AreEqual(87.15470822, (double)results.GetScalar(BesaJseBondEx.Keys.unroundedClean), 1e-8);
            Assert.AreEqual(87.15471, (double)results.GetScalar(BesaJseBondEx.Keys.roundedClean), 1e-8);
            Assert.AreEqual(0.701369836, (double)results.GetScalar(BesaJseBondEx.Keys.unroundedAccrued), 1e-7);
        }