@Override public void onOpen(OpenPrice open) { if (getBars().getCount() >= channelLag) { if (hasPosition()) { if (++barCount > maxDurationBar) { closePosition("Max duration reached"); } } else if (highestHigh < open.getPrice()) { buy(calculateQty(), "Entry"); } else if (lowestLow > open.getPrice()) { sell(calculateQty(), "Entry"); } highestHigh = getBars().getHighestHigh(channelLag); highestHighSeries.add(open.getDate(), highestHigh); lowestLow = getBars().getLowestLow(channelLag); lowestLowSeries.add(open.getDate(), lowestLow); } }