明白用AB测试策略很好,请问怎么导入国内期货数据?用什么数据源? 另外,用AB做历史测试,是否可以在期间更换合约月份? 还有,如果一个策略用AB测试的很好,用国内软件(比如文华或TB)实现自动交易可行吗? 多谢指点。
导入数据应该不难。如果,用国内软件的数据灌入AB,开发好策略后再在原软件上交易,并且两者的算法一致,应该就不会有问题。 至于直接用AB实时交易,需要自行实现一个接口去连CTP吧? 这种细节,往往是软件间的差异导致,你考虑到了也没法弥合,或很难弥合。要想“A平台测试,B平台交易”,最担心的就是这类问题。
谢谢各位回复。还有几点不解的地方希望大侠给解答: 1)目前导入数据的最好办法是:在软件(比如TB)中以某种格式(比如ASCII)导出数据,然后由AB读入。是这样吗? 2)是否有比较系统的方法导入多周期、多合约的数据(相同品种)? 3)用AB做历史测试,在期间是否可实现自动更换合约月份? 4)能否举例说一下用AB做测试相比与用TB的优势?我想知道假如用TB的数据然后再用TB交易,那么通过导入TB的数据,在AB下编程测试,然后再在TB上编程实现测试过的策略,这一连串过程是否比直接在TB下测试然后交易要好?换句话说,这样是否还值得用AB?
1)目前导入数据的最好办法是:在软件(比如TB)中以某种格式(比如ASCII)导出数据,然后由AB读入。是这样吗? 基本是这样子。但不知道还有没有其他更好的。 4)能否举例说一下用AB做测试相比与用TB的优势?我想知道假如用TB的数据然后再用TB交易,那么通过导入TB的数据,在AB下编程测试,然后再在TB上编程实现测试过的策略,这一连串过程是否比直接在TB下测试然后交易要好?换句话说,这样是否还值得用AB? 我没有用过TB也不清楚你的回测的难度,所以不好说那个软件更适合你。另外,这也取决于你对软件的熟悉程度。如果你对TB很熟悉的话,不妨就用TB做回测,毕竟你还是打算用TB做交易。同时使用两个平台的问题是,精力被分散,最主要的是需要把一个策略在两个平台上实现,回测的代码和实时交易的代码还是有一些不同的。
基本上目前只能这样。当然,如果对BDB熟悉的话,可以考虑写程序直接读取TB的数据库,然后导入AB,配上AutoIt一类的东东,应该可以做到自动化。 这个不知道 AB的优势应该是调试和评测的速度,另外对e文好的兄弟,网上资源也相当丰富。TB目前还是整体编译的方式,编译耗时很烦心,往往还会导致别的公式出错。另外,为了尽可能模拟真实环境,每根K线都计算一次公式,代价就是回测的龟速。 TB的优势是本地交易接口,当然,如果能直接把CTP与AB连起来的话,这个优势也就弱化了。 以我的经验,如果代码运算量不大、没怎么用到数组,还是直接在TB上测试吧,多余的公式都删除,编译时间基本也能控制在半分钟~1分钟,始终保持一个平台,省事省心。
TB最好不要实盘用,实在是问题太多。 1.编译速度难以忍受。 2.代码基本无法模块化,有些系统函数不让写进用户函数(也就是自己编写的函数)中。 3.测试和实盘需要2套不同的开平仓函数。 4.实盘数据连接不稳定。模拟也一样不稳定。 5.看不到bug的解决列表和进度,对比一下MT5就知道了。 用TB测试策略是可以的,不复杂的策略,出错的可能性不是很高,反正我是逐笔交易检查的。
谢谢bigbear2010兄。 2,3,5本人也实有体会。 1,编译速度是比较慢,现在还可以忍受,好像是创建的指令越多越慢。 4,我模拟交易一个多月了,确实逐渐发现很多问题,还没有实盘。请问兄台可否举例一些实盘中的问题?和券商有关吗?