package com.activequant.backtesting; import com.activequant.domainmodel.TimeStamp; import com.activequant.domainmodel.streaming.StreamEventIterator; import com.activequant.domainmodel.streaming.TimeStreamEvent; /** * * @author GhostRider * */ public class TradingTimeStreamIterator extends StreamEventIterator<TimeStreamEvent> { // time in nanoseconds. private long endTime, currentTime; private final long step; public TradingTimeStreamIterator(TimeStamp startTime, TimeStamp endTime, long stepWidthInNanoS){ step = stepWidthInNanoS; this.currentTime = startTime.getNanoseconds() - step; this.endTime = endTime.getNanoseconds(); } @Override public boolean hasNext() { return currentTime < endTime; } @Override public TimeStreamEvent next() { currentTime = currentTime + step; TimeStreamEvent event = new TimeStreamEvent(new TimeStamp(currentTime)); // return event; } }