@Test public void getMaximumNumberOfTradingDaysRequired() { final int daysGradient = 7; final SimpleMovingAverageGradientSignals smaGradient = new SimpleMovingAverageGradientSignals( lookback, daysGradient, GradientType.NEGATIVE, MATH_CONTEXT); assertEquals(lookback + daysGradient, smaGradient.getRequiredNumberOfTradingDays()); }
@Test public void signalsFlat() { final TradingDayPrices[] data = createTradingPrices(); final int daysGradient = data.length - lookback; final SimpleMovingAverageGradientSignals smaGradient = new SimpleMovingAverageGradientSignals(1, daysGradient, GradientType.FLAT, MATH_CONTEXT); final List<IndicatorSignal> signals = smaGradient.calculateSignals(data); assertNotNull(signals); assertEquals(2, signals.size()); assertEquals(data[11].getDate(), signals.get(0).getDate()); assertEquals(data[13].getDate(), signals.get(1).getDate()); }
@Test public void signalsNegative() { final TradingDayPrices[] data = createTradingPrices(); final int daysGradient = data.length - 1 - lookback; final SimpleMovingAverageGradientSignals smaGradient = new SimpleMovingAverageGradientSignals( lookback, daysGradient, GradientType.NEGATIVE, MATH_CONTEXT); final List<IndicatorSignal> signals = smaGradient.calculateSignals(data); assertNotNull(signals); assertEquals(5, signals.size()); assertEquals(data[15].getDate(), signals.get(0).getDate()); assertEquals(data[16].getDate(), signals.get(1).getDate()); assertEquals(data[17].getDate(), signals.get(2).getDate()); assertEquals(data[18].getDate(), signals.get(3).getDate()); assertEquals(data[19].getDate(), signals.get(4).getDate()); }