Beispiel #1
0
        public void CanCalculateLinkedReturnsWithCumReturnsMonthToEnd()
        {
            var janSP500returns = sp500
                                  .Where(r => r.EffectiveDate.Month == 1)
                                  .Select(r => r.TotalReturn)
                                  .ToList();

            var cumReturns = FinCalcs.ReturnsToMonthEnd(janSP500returns);

            var longCalc = FinCalcs.LinkedReturns(
                periodReturns: janSP500returns,
                startPeriod: 0,
                endPeriod: janSP500returns.Count() - 1);

            var quickCalc = FinCalcs.LinkedReturns(
                returnToMonthEnd: cumReturns,
                startingPeriodReturn: janSP500returns.ElementAt(0),
                startPeriod: 0,
                endPeriod: janSP500returns.Count() - 1
                );

            Assert.AreEqual(
                Math.Round(longCalc, 6),
                Math.Round(quickCalc, 6));
        }
Beispiel #2
0
        public void CanCalculateLinkedReturnsFromList()
        {
            var janreturnRU1000 =
                FinCalcs.LinkedReturns(
                    ru1000
                    .Where(r => r.EffectiveDate.Month == 1)
                    .Select(r => r.TotalReturn)
                    .ToList());

            Assert.AreEqual(-0.000101m, Math.Round(janreturnRU1000, 6));
        }
Beispiel #3
0
        public void CanCalculatePartialMonthReturns()
        {
            var janreturnSP500 =
                FinCalcs.LinkedReturns(
                    sp500
                    .Where(
                        r => r.EffectiveDate.Month == 1 &&
                        r.EffectiveDate.Day >= 15
                        )
                    .Select(r => r.TotalReturn)
                    .ToList());

            Assert.AreEqual(-0.017554m, Math.Round(janreturnSP500, 6));
        }