コード例 #1
0
        public void indicatorShouldRetrieveBarVolume()
        {
            ITimeSeries     series          = new MockTimeSeries();
            VolumeIndicator volumeIndicator = new VolumeIndicator(series);

            for (int i = 0; i < 10; i++)
            {
                Assert.AreEqual(volumeIndicator.GetValue(i), series.GetBar(i).Volume);
            }
        }
コード例 #2
0
        protected override Decimal Calculate(int index)
        {
            var startIndex           = Math.Max(0, index - _timeFrame + 1);
            var sumOfMoneyFlowVolume = Decimal.Zero;

            for (var i = startIndex; i <= index; i++)
            {
                sumOfMoneyFlowVolume = sumOfMoneyFlowVolume.Plus(GetMoneyFlowVolume(i));
            }
            var sumOfVolume = _volumeIndicator.GetValue(index);

            return(sumOfMoneyFlowVolume.DividedBy(sumOfVolume));
        }
コード例 #3
0
        private void testWithN(int n)
        {
            // test 1 with volume-indicator
            prevValueIndicator = new PreviousValueIndicator(volumeIndicator, n);
            for (int i = 0; i < n; i++)
            {
                Assert.AreEqual(prevValueIndicator.GetValue(i), volumeIndicator.GetValue(0));
            }
            for (int i = n; i < this.series.GetBarCount(); i++)
            {
                Assert.AreEqual(prevValueIndicator.GetValue(i), volumeIndicator.GetValue(i - n));
            }

            // test 2 with ema-indicator
            prevValueIndicator = new PreviousValueIndicator(emaIndicator, n);
            for (int i = 0; i < n; i++)
            {
                Assert.AreEqual(prevValueIndicator.GetValue(i), emaIndicator.GetValue(0));
            }
            for (int i = n; i < this.series.GetBarCount(); i++)
            {
                Assert.AreEqual(prevValueIndicator.GetValue(i), emaIndicator.GetValue(i - n));
            }
        }
コード例 #4
0
        public void sumOfVolume()
        {
            List <IBar> bars = new List <IBar>();

            bars.Add(new MockBar(0, 10));
            bars.Add(new MockBar(0, 11));
            bars.Add(new MockBar(0, 12));
            bars.Add(new MockBar(0, 13));
            bars.Add(new MockBar(0, 150));
            bars.Add(new MockBar(0, 155));
            bars.Add(new MockBar(0, 160));
            VolumeIndicator volumeIndicator = new VolumeIndicator(new MockTimeSeries(bars), 3);

            Assert.AreEqual(volumeIndicator.GetValue(0), 10);
            Assert.AreEqual(volumeIndicator.GetValue(1), 21);
            Assert.AreEqual(volumeIndicator.GetValue(2), 33);
            Assert.AreEqual(volumeIndicator.GetValue(3), 36);
            Assert.AreEqual(volumeIndicator.GetValue(4), 175);
            Assert.AreEqual(volumeIndicator.GetValue(5), 318);
            Assert.AreEqual(volumeIndicator.GetValue(6), 465);
        }
コード例 #5
0
        protected override decimal Calculate(int index)
        {
            if (index == TimeSeries.GetBeginIndex())
            {
                return(Decimals.Zero);
            }
            decimal doubleClosePrice = 2.MultipliedBy(_closePriceIndicator.GetValue(index));
            decimal highmlow         = _maxPriceIndicator.GetValue(index).Minus(_minPriceIndicator.GetValue(index));
            decimal highplow         = _maxPriceIndicator.GetValue(index).Plus(_minPriceIndicator.GetValue(index));

            return((doubleClosePrice.Minus(highplow)).DividedBy(highmlow.MultipliedBy(_volumeIndicator.GetValue(index))));
        }