public static object AddDuration(object refDate, object period)
        {
            var date     = DateAndDurationConverter.ConvertDate(refDate);
            var duration = DateAndDurationConverter.ConvertDuration(period);

            return(date + duration);
        }
        public static object DayCount(object start, object end,
                                      [ExcelArgument("Convention used for counting time : Act/365, Act/360...")] string convention)
        {
            var startDate = DateAndDurationConverter.ConvertDate(start);
            var endDate   = DateAndDurationConverter.ConvertDate(end);
            var dayCount  = DayCountFrac.Parse(convention);

            return(dayCount.Count(startDate, endDate));
        }
Beispiel #3
0
        public void TestConvertDuration()
        {
            var refDuration = 10 * Duration.Year;

            Assert.AreEqual(DateAndDurationConverter.ConvertDuration(10 * Duration.Year), refDuration);
            Assert.AreEqual(DateAndDurationConverter.ConvertDuration(new DateOrDuration(refDuration)), refDuration);
            Assert.AreEqual(DateAndDurationConverter.ConvertDuration("10y"), refDuration);
            Assert.AreEqual(DateAndDurationConverter.ConvertDuration("10Y"), refDuration);
        }
Beispiel #4
0
        public void TestConvertDate()
        {
            var refDate = new DateTime(2015, 01, 27);

            Assert.AreEqual(DateAndDurationConverter.ConvertDate(refDate), refDate);
            Assert.AreEqual(DateAndDurationConverter.ConvertDate(new DateOrDuration(refDate)), refDate);
            Assert.AreEqual(DateAndDurationConverter.ConvertDate("27 Jan 2015"), refDate);
            Assert.AreEqual(DateAndDurationConverter.ConvertDate("01/27/2015"), refDate);
            Assert.AreEqual(DateAndDurationConverter.ConvertDate("27/01/2015"), refDate);
        }
Beispiel #5
0
        private static Func <object, DateOrDuration> DateOrDurationValueConverter(string name)
        {
            Func <object, DateOrDuration> converter = o =>
            {
                DateOrDuration result;
                if (DateAndDurationConverter.TryConvertDateOrDuration(o, out result))
                {
                    return(result);
                }
                throw new Exception(String.Format("Parameter value for {0} is not a Date or a Duration !", name));
            };

            return(converter);
        }
        public static object Discount(object mktObj, object[,] dates, string curveId)
        {
            return(FunctionRunnerUtils.Run("Discount", () =>
            {
                var market = MarketManager.Instance.GetMarket(mktObj);
                var finCurveId = FinancingId.Parse(curveId);
                DiscountCurve curve = market.DiscountCurve(finCurveId);

                var result = dates.Map(o =>
                {
                    var dateOrDuration = DateAndDurationConverter.ConvertDateOrDuration(o);
                    var date = dateOrDuration.ToDate(curve.RefDate);
                    return curve.Zc(date);
                });

                return result;
            }));
        }
        public static object AssetForward(object mktObj, object[,] dates, string assetName)
        {
            return(FunctionRunnerUtils.Run("AssetForward", () =>
            {
                var market = MarketManager.Instance.GetMarket(mktObj);
                var assetMarket = market.AssetMarketFromName(assetName);

                AssetForwardCurve assetForward = assetMarket.Forward();

                var result = dates.Map(o =>
                {
                    var dateOrDuration = DateAndDurationConverter.ConvertDateOrDuration(o);
                    var date = dateOrDuration.ToDate(assetForward.RefDate);
                    return assetForward.Fwd(date);
                });

                return result;
            }));
        }
Beispiel #8
0
        private DateTime RetrieveDateParameter(string paramName)
        {
            var obj = RetrieveParameter(paramName);

            return(DateAndDurationConverter.ConvertDate(obj));
        }
        public static DateTime ConvertDate(object dateObj, DateTime refDate)
        {
            var dateOrDuration = DateAndDurationConverter.ConvertDateOrDuration(dateObj);

            return(dateOrDuration.ToDate(refDate));
        }