コード例 #1
0
        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();
        }
コード例 #2
0
        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;
        }
コード例 #3
0
 public abstract void doTrading(StrategySignal currentSignal, ITradingAPI api);