最近计划在IB开个户,实验一下用QD做自动交易。但是在测试中不知道如何调用IB的历史数据,比如用30分钟系统,总不能先开机等待几个小时让数据自我建立,希望一运行系统,IB的历史数据就可调用。现在QD的论坛已经关闭,不知道如何解决。在OQ中可以通过以下代码实现,想问一下那位高手知道在QD中如何实现。谢谢。 public override void OnStrategyStart() { DateTime datetime1; DateTime datetime2; datetime2 = DateTime.Now; datetime1 = datetime2.AddDays(-2); //时间自定 foreach (Bar bar in GetHistoricalBars("IB",Instrument,datetime1, datetime2, 60)) Bars.Add(bar); }
取本地的 5min 数据用 : Code: DateTime datetime1; DateTime datetime2; datetime2 = DateTime.Now; datetime1 = datetime2.AddDays(-2); //时间自定 Instrument instrument1= InstrumentManager.Instruments["XXXXXX"]; BarSeries bars=instrument1 .GetBarSeries ( "Bar.Time.300",datetime1,datetime2);
datetime1 = DateTime.Now; datetime2 =datetime1.AddMinutes(-1000); IHistoricalDataProvider IBProviderHistorical = ProviderManager.HistoricalDataProviders["IB"]; foreach (Bar bar in DataManager.GetHistoricalBars(IBProviderHistorical, Instrument, datetime2, datetime1,300)) { Bar.Add(bar); } 试试这个。
今天找到一个方法,可以使图表在不改时区的前提下实现“连续”。方法是: 1、在strategy上,按右键,将“策略”输出到“CATS”,生成****.DLL文件。 2、在CATS中调用。 3、在CATS中,运行STRATEGY。 呵呵,图表连续。