package com.activequant.backtesting; import java.util.ArrayList; import java.util.List; import com.activequant.domainmodel.TimeFrame; import com.activequant.domainmodel.backtesting.BacktestConfiguration; import com.activequant.domainmodel.streaming.StreamEventIterator; import com.activequant.domainmodel.streaming.TimeStreamEvent; import com.activequant.interfaces.archive.IArchiveFactory; import com.activequant.interfaces.backtesting.IStreamFactory; public class DefaultStreamIteratorFactory implements IStreamFactory { private IArchiveFactory archiveFactory; public DefaultStreamIteratorFactory(IArchiveFactory archFac) { this.archiveFactory = archFac; } // java nastyness (in my eyes) @SuppressWarnings("unchecked") @Override public StreamEventIterator<? extends TimeStreamEvent>[] getStreamIterators(BacktestConfiguration btConfig) throws Exception { List<StreamEventIterator<? extends TimeStreamEvent>> tempList = new ArrayList<StreamEventIterator<? extends TimeStreamEvent>>(); // // for each MDI, instantiate replay stream. TimeFrame ohlcResolution = TimeFrame.HOURS_1; // for (int i = 0; i < btConfig.getMdis().length; i++) { ArchiveStreamToMarketDataIterator a1 = new ArchiveStreamToMarketDataIterator(btConfig.getMdis()[i], btConfig.getTdis()[i], btConfig.getTimeSetup().dataReplayStart, btConfig.getTimeSetup().dataReplayEnd, archiveFactory.getReader(TimeFrame.RAW)); a1.setQuantityOverride(10000000.0); tempList.add(a1); // ArchiveStreamToOHLCIterator astoi = new ArchiveStreamToOHLCIterator(btConfig.getMdis()[i], ohlcResolution, btConfig.getTimeSetup().dataReplayStart, btConfig.getTimeSetup().dataReplayEnd, archiveFactory.getReader(ohlcResolution)); // tempList.add(astoi); } // return tempList.toArray(new StreamEventIterator[] {}); } }