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