package com.activequant.backtesting; import com.activequant.domainmodel.TimeStamp; import com.activequant.domainmodel.streaming.BBOEvent; import com.activequant.domainmodel.streaming.MarketDataEvent; import com.activequant.domainmodel.streaming.StreamEventIterator; /** * * @author GhostRider * */ public class RandomMarketDataIterator extends StreamEventIterator<MarketDataEvent> { // time in nanoseconds. private long endTime, currentTime; private final long step; private String tradId, mdId; public RandomMarketDataIterator(String tradId, String mdiId, TimeStamp startTime, TimeStamp endTime, long stepWidthInNanoS) { step = stepWidthInNanoS; this.currentTime = startTime.getNanoseconds() - step; this.endTime = endTime.getNanoseconds(); this.mdId = mdiId; this.tradId = tradId; } @Override public boolean hasNext() { return currentTime < endTime; } @Override public MarketDataEvent next() { currentTime = currentTime + step; BBOEvent bbo = new BBOEvent(mdId, tradId, new TimeStamp(currentTime), Math.random(), Math.random(), Math.random(), Math.random()); // return bbo; } }