把AmiBroker的KB中关于data部分的帖子浏览一遍。按照
http://www.amibroker.com/kb/2006/08/09/amibroker-for-forex/
提及的方法先通过ASCII文件导入历史数据,然后设置MT4作为DDE服务器,就可以得到实时数据了。
本以为Oanda的正式帐号数据更好些,结果竟然严重丢数据,大段大段的丢啊,晕倒。试了几次还以为在AmiBroker中的设置有问题,后来在MT4里
面仔细看才发现AmiBroker中的异常时段原来是没数据。 另外,正式帐号的数据时间就是北京时间(GSM+8),而练习帐号的数据时间是美国东部时间(GSM-4)。
两个关键地方试了半天才弄清楚,一个是时间的设置,一个是symbol的加入方式。
先说时间设置。MT4的数据时间是GSM-4,本地时间是GSM+8,导入AmiBroker时,database两个地方需要设置:
Intraday setting 中Pre-database settings的Time shift
要设为12小时,同时Configure中DDE plugin的Time offset设为-12小时。 无论database设置为local
database还是DDE,前者同时影响在local database设置时导入到ASCII历史数据和DDE下的real time
tick。我一开始无论设置0还是12,历史数据和实时数据总是时间对不上。所以 DDE plugin中的time
offset也要设置。如果两个都设置为0,那么导入的数据是GSM-4时区的,而DDE进来的real time tick是local
时区(GSM+8)的,也对不上。
另外一个问题是加入到symbol需要通过symbol菜单new的方式加入,然后导入ASCII历史数据,这样DDE的real time tick才能进来。我开始是直接导入ASCII的USDJPY历史数据,chart有,但DDE的数据就进不来。
没有评论:
发表评论