public AutopilotTradingForm(SQLiteDatabase db, ITradingAPI tradingApi, IndicatorCollection indicators, Strategy strat, ExecutionStrategy execStrat, string instrument) { priceHistoryDatabase = db; new Thread(delegate() { streamer = new StreamingModul(indicators, strat, execStrat, tradingApi, instrument); //Prepare streamer List <TickData> tickdataToPrepare = priceHistoryDatabase.getPrices(Timestamp.getNow() - 24 * 60 * 60 * 1000, Timestamp.getNow(), instrument); foreach (TickData tick in tickdataToPrepare) { streamer.prepareDataWithoutTrading(tick); } ssiApi = new SSI_Downloader(AvailableInstruments.allInstruments); ssiApi.sourceDataArrived += sourceDataArrived; ssiApi.start(); webApi = new FXCMRatesDownloader(); webApi.sourceDataArrived += tickdataArrived; webApi.start(); while (true) { if (continueLiveTradingThread) { streamer.doTradingTickWithoutNewData(Timestamp.getNow()); Thread.Sleep(1000 * 10); } } }).Start(); InitializeComponent(); }
public StreamingModul(IndicatorCollection indicators, Strategy strategy, ExecutionStrategy execStrat, ITradingAPI tradingApi, string instrument) { this.indicators = indicators; this.strategy = strategy; this.execStrat = execStrat; this.tradingApi = tradingApi; this.instrument = instrument; }
public abstract void doTrading(StrategySignal currentSignal, ITradingAPI api);