@Test @UsingDataSet("datasets/it_test_dataset_28.xml") public void testMacdPositiveChange() { // Arrange final TradingSite tradingSite = new TradingSite("KRAKEN", "Kraken", "www.kraken.com"); final Currency currency = new Currency("EUR", "Euro", "&euro"); final CryptoCurrency cryptoCurrency = new CryptoCurrency("BTC", "Bitcoin", "BTC"); final TradePair tradePair = new TradePair(1, tradingSite, currency, cryptoCurrency, 0.01F); final Trading trading = new Trading(); trading.setTradePair(tradePair); final TradeRule tradeRule = new TradeRule(); final Trend trend = new Trend(1, TrendType.MA, 2, null); final Macd macd = new Macd(1, trend, trend); final TradeCondition tradeCondition = new TradeCondition( 1, tradeRule, TradeConditionType.POS_MACD_CHANGE, macd, null, null, null, 0F, 0F, 0F, 1, LogicalOperator.AND, true); signalBulkDataHandler.setMacd(macd); signalBulkDataHandler.setTrading(trading); final MacdPosChange macdPosChange = new MacdPosChange(signalBulkDataHandler); macdPosChange.setTrading(trading); macdPosChange.setTradeCondition(tradeCondition); // Index = 1, period = 1 macdPosChange.setIndex(1); tradeCondition.setPeriod(1); // Act assertFalse(macdPosChange.evaluate()); // Index = 3, period = 1 macdPosChange.setIndex(3); tradeCondition.setPeriod(1); // Act assertTrue(macdPosChange.evaluate()); // Index = 4, period = 1 macdPosChange.setIndex(4); tradeCondition.setPeriod(1); // Act assertFalse(macdPosChange.evaluate()); // Index = 3, period = 3 macdPosChange.setIndex(3); tradeCondition.setPeriod(3); // Act assertTrue(macdPosChange.evaluate()); }