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); }
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); }
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); }
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); }