- 精华
- 0
- 在线时间
- 432 小时
- UID
- 7887
- 积分
- 527
- 帖子
- 65
- 阅读权限
- 50
- 注册时间
- 2010-3-28
- 最后登录
- 2019-11-8
- 精华
- 0
- UID
- 7887
- 积分
- 527
- 帖子
- 65
- 主题
- 23
- 阅读权限
- 50
- 注册时间
- 2010-3-28
- 最后登录
- 2019-11-8
|
上周发现交易部分的函数出了问题后,就停止了交易,然后下功夫研究,解决问题,做了很多测试,现在终于把问题解决了。问题出在交易函数上,交易函数是指将交易指令发送到交易服务器或处理交易服务器返回信息的的函数,主要完成下单、撤单、成交查询、持仓查询和成交回报处理等,开拓者提供两种交易函数,一种是开拓者对a_sendorder封装的buy和sell函数,另一种则是比较底层的发单指令由a_sendorder来实现。使用开拓者封装的函数buy和sell来交易,其实是有问题的,有时候你使用buy和sell并不能得到你想要的结果,我的问题就出在这里,buy和sell处理的持仓量是对图标里面的持仓量,而不是真实账户的持仓量,如果设置资金量和真实账户资金量不一致,持仓量不一致,就出大问题了。开拓者设计真的太不完善了,让普通投资望而却步。
现在做了快半个多月的程序化交易,有些感受。感觉开拓者这个软件本身定位就比较高端,技术高端,起点高端。想法是好的,可惜人力和财力不够,导致这个软件做的太不成熟了,稳定性差,运行容易崩溃,常常断线。其次是编程手册及函数的介绍太简单,缺乏人力编写使用手册,很多函数的功能包括返回值都没有明确说明和示例,看看微软看看msdn,一个msdn就要装几个G到几十G。其实开拓者这样只会导致没有编程经验的用户在困难之时选择放弃。没有编程经验的用户,真的不建议使用这个平台,因为开拓者有时候出的问题,你都不知道是自己的程序错了,还是软件本身出错了。
比如,开拓者用户手册中介绍到barstatus!=2时,buy sell指令是不发送委托单的,但事实上只这样的吗?不是,我在实际测试中,发现不是。开始出这个问题,我很迷茫,不知道问题在那里,反复思考,反复测试,一点点排查,最终定位到barstatus!=2时在倒数第二个bar上也依然会发委托单的,我把这个测试结果和开拓者软件工程师交流,他们都不信,依然坚持说barstatuse!=2时是不会发委托单的,说问题肯定是出在我的程序身上,让我好好找找自己的问题。我无奈!!!直至我一点点的证明给他们看时,他们才说“可能需要考虑倒数第二个bar的情况,这个地方需要做个特殊处理”,这样一句话,却耗费了3天时间,我想没有程序开发经验的交易员恐怕就倒在这个地方了,这样的问题很多,道路还很漫长,我得一点点的来,慢慢的上路,希望TB不要在让我伤心失望了。 |
|