public void GetValue()
        {
            var          now   = new LocalDateTime();
            IList <Tick> ticks = new List <Tick>();

            ticks.Add(new Tick(now, "0", "62.34", "61.37", "62.15", "7849.025"));
            ticks.Add(new Tick(now, "0", "62.05", "60.69", "60.81", "11692.075"));
            ticks.Add(new Tick(now, "0", "62.27", "60.10", "60.45", "10575.307"));
            ticks.Add(new Tick(now, "0", "60.79", "58.61", "59.18", "13059.128"));
            ticks.Add(new Tick(now, "0", "59.93", "58.71", "59.24", "20733.508"));
            ticks.Add(new Tick(now, "0", "61.75", "59.86", "60.20", "29630.096"));
            ticks.Add(new Tick(now, "0", "60.00", "57.97", "58.48", "17705.294"));
            ticks.Add(new Tick(now, "0", "59.00", "58.02", "58.24", "7259.203"));
            ticks.Add(new Tick(now, "0", "59.07", "57.48", "58.69", "10474.629"));
            ticks.Add(new Tick(now, "0", "59.22", "58.30", "58.65", "5203.714"));
            ticks.Add(new Tick(now, "0", "58.75", "57.83", "58.47", "3422.865"));
            ticks.Add(new Tick(now, "0", "58.65", "57.86", "58.02", "3962.150"));
            ticks.Add(new Tick(now, "0", "58.47", "57.91", "58.17", "4095.905"));
            ticks.Add(new Tick(now, "0", "58.25", "57.83", "58.07", "3766.006"));
            ticks.Add(new Tick(now, "0", "58.35", "57.53", "58.13", "4239.335"));
            ticks.Add(new Tick(now, "0", "59.86", "58.58", "58.94", "8039.979"));
            ticks.Add(new Tick(now, "0", "59.53", "58.30", "59.10", "6956.717"));
            ticks.Add(new Tick(now, "0", "62.10", "58.53", "61.92", "18171.552"));
            ticks.Add(new Tick(now, "0", "62.16", "59.80", "61.37", "22225.894"));

            ticks.Add(new Tick(now, "0", "62.67", "60.93", "61.68", "14613.509"));
            ticks.Add(new Tick(now, "0", "62.38", "60.15", "62.09", "12319.763"));
            ticks.Add(new Tick(now, "0", "63.73", "62.26", "62.89", "15007.690"));
            ticks.Add(new Tick(now, "0", "63.85", "63.00", "63.53", "8879.667"));
            ticks.Add(new Tick(now, "0", "66.15", "63.58", "64.01", "22693.812"));
            ticks.Add(new Tick(now, "0", "65.34", "64.07", "64.77", "10191.814"));
            ticks.Add(new Tick(now, "0", "66.48", "65.20", "65.22", "10074.152"));
            ticks.Add(new Tick(now, "0", "65.23", "63.21", "63.28", "9411.620"));
            ticks.Add(new Tick(now, "0", "63.40", "61.88", "62.40", "10391.690"));
            ticks.Add(new Tick(now, "0", "63.18", "61.11", "61.55", "8926.512"));
            ticks.Add(new Tick(now, "0", "62.70", "61.25", "62.69", "7459.575"));
            var series = new TimeSeries(ticks);

            var cmf = new ChaikinMoneyFlowIndicator(series, 20);

            TaTestsUtils.AssertDecimalEquals(cmf.GetValue(0), 0.6082);
            TaTestsUtils.AssertDecimalEquals(cmf.GetValue(1), -0.2484);
            TaTestsUtils.AssertDecimalEquals(cmf.GetValue(19), -0.1211);
            TaTestsUtils.AssertDecimalEquals(cmf.GetValue(20), -0.0997);
            TaTestsUtils.AssertDecimalEquals(cmf.GetValue(21), -0.0659);
            TaTestsUtils.AssertDecimalEquals(cmf.GetValue(22), -0.0257);
            TaTestsUtils.AssertDecimalEquals(cmf.GetValue(23), -0.0617);
            TaTestsUtils.AssertDecimalEquals(cmf.GetValue(24), -0.0481);
            TaTestsUtils.AssertDecimalEquals(cmf.GetValue(25), -0.0086);
            TaTestsUtils.AssertDecimalEquals(cmf.GetValue(26), -0.0087);
            TaTestsUtils.AssertDecimalEquals(cmf.GetValue(27), -0.005);
            TaTestsUtils.AssertDecimalEquals(cmf.GetValue(28), -0.0574);
            TaTestsUtils.AssertDecimalEquals(cmf.GetValue(29), -0.0148);
        }
Example #2
0
        public void getValue()
        {
            DateTime    now  = DateTime.Now;
            List <IBar> bars = new List <IBar>();

            bars.Add(new BaseBar(now, 0M, 62.34M, 61.37M, 62.15M, 7849.025M));
            bars.Add(new BaseBar(now, 0M, 62.05M, 60.69M, 60.81M, 11692.075M));
            bars.Add(new BaseBar(now, 0M, 62.27M, 60.10M, 60.45M, 10575.307M));
            bars.Add(new BaseBar(now, 0M, 60.79M, 58.61M, 59.18M, 13059.128M));
            bars.Add(new BaseBar(now, 0M, 59.93M, 58.71M, 59.24M, 20733.508M));
            bars.Add(new BaseBar(now, 0M, 61.75M, 59.86M, 60.20M, 29630.096M));
            bars.Add(new BaseBar(now, 0M, 60.00M, 57.97M, 58.48M, 17705.294M));
            bars.Add(new BaseBar(now, 0M, 59.00M, 58.02M, 58.24M, 7259.203M));
            bars.Add(new BaseBar(now, 0M, 59.07M, 57.48M, 58.69M, 10474.629M));
            bars.Add(new BaseBar(now, 0M, 59.22M, 58.30M, 58.65M, 5203.714M));
            bars.Add(new BaseBar(now, 0M, 58.75M, 57.83M, 58.47M, 3422.865M));
            bars.Add(new BaseBar(now, 0M, 58.65M, 57.86M, 58.02M, 3962.150M));
            bars.Add(new BaseBar(now, 0M, 58.47M, 57.91M, 58.17M, 4095.905M));
            bars.Add(new BaseBar(now, 0M, 58.25M, 57.83M, 58.07M, 3766.006M));
            bars.Add(new BaseBar(now, 0M, 58.35M, 57.53M, 58.13M, 4239.335M));
            bars.Add(new BaseBar(now, 0M, 59.86M, 58.58M, 58.94M, 8039.979M));
            bars.Add(new BaseBar(now, 0M, 59.53M, 58.30M, 59.10M, 6956.717M));
            bars.Add(new BaseBar(now, 0M, 62.10M, 58.53M, 61.92M, 18171.552M));
            bars.Add(new BaseBar(now, 0M, 62.16M, 59.80M, 61.37M, 22225.894M));

            bars.Add(new BaseBar(now, 0M, 62.67M, 60.93M, 61.68M, 14613.509M));
            bars.Add(new BaseBar(now, 0M, 62.38M, 60.15M, 62.09M, 12319.763M));
            bars.Add(new BaseBar(now, 0M, 63.73M, 62.26M, 62.89M, 15007.690M));
            bars.Add(new BaseBar(now, 0M, 63.85M, 63.00M, 63.53M, 8879.667M));
            bars.Add(new BaseBar(now, 0M, 66.15M, 63.58M, 64.01M, 22693.812M));
            bars.Add(new BaseBar(now, 0M, 65.34M, 64.07M, 64.77M, 10191.814M));
            bars.Add(new BaseBar(now, 0M, 66.48M, 65.20M, 65.22M, 10074.152M));
            bars.Add(new BaseBar(now, 0M, 65.23M, 63.21M, 63.28M, 9411.620M));
            bars.Add(new BaseBar(now, 0M, 63.40M, 61.88M, 62.40M, 10391.690M));
            bars.Add(new BaseBar(now, 0M, 63.18M, 61.11M, 61.55M, 8926.512M));
            bars.Add(new BaseBar(now, 0M, 62.70M, 61.25M, 62.69M, 7459.575M));
            ITimeSeries series = new BaseTimeSeries(bars);

            ChaikinMoneyFlowIndicator cmf = new ChaikinMoneyFlowIndicator(series, 20);

            Assert.AreEqual(cmf.GetValue(0), 0.6082474226804123711340206186M);
            Assert.AreEqual(cmf.GetValue(1), -0.2484311743072140165124562343M);
            Assert.AreEqual(cmf.GetValue(19), -0.12109525344467201822861587M);
            Assert.AreEqual(cmf.GetValue(20), -0.0996934222876103824404821392M);
            Assert.AreEqual(cmf.GetValue(21), -0.065928274226956289145366249M);
            Assert.AreEqual(cmf.GetValue(22), -0.0256877564683178956522684246M);
            Assert.AreEqual(cmf.GetValue(23), -0.0617035928215171828140621566M);
            Assert.AreEqual(cmf.GetValue(24), -0.048105977389585559132748056M);
            Assert.AreEqual(cmf.GetValue(25), -0.0085966816372546350865067276M);
            Assert.AreEqual(cmf.GetValue(26), -0.0087040876420881401439180481M);
            Assert.AreEqual(cmf.GetValue(27), -0.005051500548553229341727545M);
            Assert.AreEqual(cmf.GetValue(28), -0.057409204188786737790197221M);
            Assert.AreEqual(cmf.GetValue(29), -0.0147899751712651882445236589M);
        }