- 精华
- 0
- 在线时间
- 43 小时
- UID
- 5336
- 积分
- 121
- 帖子
- 19
- 阅读权限
- 40
- 注册时间
- 2009-9-1
- 最后登录
- 2019-12-21
- 精华
- 0
- UID
- 5336
- 积分
- 121
- 帖子
- 19
- 主题
- 4
- 阅读权限
- 40
- 注册时间
- 2009-9-1
- 最后登录
- 2019-12-21
|
本人做期货多年。一直以来都很认可程序化交易方式。TB是款非常出色的交易软件,给我们大家筑造了一个良好的可以自由构建程序化交易系统的平台。特别是对交易系统的测试,构思精巧,全面。在此先对tb的工作人员的努力表示感谢。
我是从零开始学习编程的。艰苦钻研了几个月,终于有所入门的感觉。已经可以编写比较较简单的程序,并在tb上做些测试。但是发现测试结果跟我以前做的统计有相当出入。我们很多人,做日内交易的大部分都以连续合约做历史测试,因为他基本上就是和历史真实日内行情完全一致(就日内行情来说比加权的指数合约真实)。如:(豆油连续合约)y9888 2009,06,05日的日内k线,不论是m1 m30 d1 理论上应就是y0901 2009,06,05的k线。因为这一天y0901的成交量,持仓量都>豆油其他合约。应该y9888=y0901,因为连续合约,是以最大成交量,或者最大持仓量为换月条件的。
当y0901 2009,06,05日的成交量,持仓量都>y9888,就肯定出现错误了。
说明连续合约取的数据不是最活跃的合约。当我发现这种现象的时候非常沮丧。因为数据不对,所有的工作都白费。历史数据是基础啊,所有的交易系统都在这个数据上测试,所有的tb用户都用这个数据,1个不准确的数据会被重复n多次!
比如:铜的连续合约在6月份6-22-25日4天的日线,cu0910的持仓量,成交量都远大于cu888。因为连续合约都取的cu0909的数据。可是当时cu0910才是最活跃的合约啊,大家都在做cu0910,cu0909的行情应经很萎靡了为什么要取它的数据呢?!。6.25那天成交量都相差10多倍了。数据如下:
2009 6,22 623 624 6;25
cu888
量=189598 // // 量=88236
仓=141834 // // 仓=81468
cu0910
量=455058 // // 量=936344
仓=181062 // // 仓=237510
如果每个合约每月平均有3次不合理数据,一年3*12=36个错。10品种36*10=360个错。5年360*5=1800个错。10000的用户每人测试1次错误的数据就。。。。很大数字了
偶然间发现这种情况,以前用tb在连续合约做的大量的统计都废了,不真实啊。(我一般在tb上做完测试还会在excel上编辑分析)很费功夫。一个程序化交易系统,统计测试极其重要。历史数据有问题,所有工作毫无意义。真的很郁闷!不过我觉得的这种错误,很容易纠正。肯定是疏忽大意造成的。很多最有难度的工作tb都能完成的很出色。工作人员对整理数据这种没技术含量的事务不重视,可是对于我们来说历史数据太重要了,所有程序都在数据上面运作。
本人其实很喜欢tb的,也有可能是我眼花了,看错了,或者对连续合约理解错了。
另外tb连续合约好像是以持仓量最大为换月条件的,强烈希望换成以成交量为换月条件。对日内交易者来说成交量大的合约更活跃更能真实反映历史。。非日内的交易系统有指数合约做测试条件更合适。 |
|