public void naNValuesInIntervall() { List <IBar> bars = new List <IBar>(); for (long i = 0; i <= 10; i++) { // (0, NaN, 2, NaN, 4, NaN, 6, NaN, 8, ...) decimal maxPrice = i % 2 == 0 ? i : Decimals.NaN; IBar bar = new BaseBar(DateTime.Now.AddDays(i), Decimals.NaN, maxPrice, Decimals.NaN, Decimals.NaN, Decimals.NaN); bars.Add(bar); } BaseTimeSeries series = new BaseTimeSeries("NaN test", bars); AroonUpIndicator aroonUpIndicator = new AroonUpIndicator(series, 5); for (int i = series.GetBeginIndex(); i <= series.GetEndIndex(); i++) { if (i % 2 != 0) { Assert.AreEqual(Decimals.NaN, aroonUpIndicator.GetValue(i)); } else { Assert.AreEqual(Decimals.HUNDRED, aroonUpIndicator.GetValue(i)); } } }
public void onlyNaNValues() { List <IBar> bars = new List <IBar>(); for (long i = 0; i <= 1000; i++) { IBar bar = new BaseBar(DateTime.Now.AddDays(i), Decimals.NaN, Decimals.NaN, Decimals.NaN, Decimals.NaN, Decimals.NaN); bars.Add(bar); } BaseTimeSeries series = new BaseTimeSeries("NaN test", bars); AroonUpIndicator aroonUpIndicator = new AroonUpIndicator(series, 5); for (int i = series.GetBeginIndex(); i <= series.GetEndIndex(); i++) { Assert.AreEqual(Decimals.NaN.ToString(), aroonUpIndicator.GetValue(i).ToString()); } }
public void upAndSlowDown() { AroonUpIndicator arronUp = new AroonUpIndicator(data, 5); Assert.AreEqual(arronUp.GetValue(19), 0); Assert.AreEqual(arronUp.GetValue(18), 20); Assert.AreEqual(arronUp.GetValue(17), 40); Assert.AreEqual(arronUp.GetValue(16), 60); Assert.AreEqual(arronUp.GetValue(15), 80); Assert.AreEqual(arronUp.GetValue(14), 100); Assert.AreEqual(arronUp.GetValue(13), 100); Assert.AreEqual(arronUp.GetValue(12), 100); Assert.AreEqual(arronUp.GetValue(11), 100); Assert.AreEqual(arronUp.GetValue(10), 60); Assert.AreEqual(arronUp.GetValue(9), 80); Assert.AreEqual(arronUp.GetValue(8), 100); Assert.AreEqual(arronUp.GetValue(7), 100); Assert.AreEqual(arronUp.GetValue(6), 100); Assert.AreEqual(arronUp.GetValue(5), 0); }