开拓者交易函数问题 a_sendorder封装的buy和sell函数 [开拓者 TB]
- 咨询内容: 上周发现交易部分的函数出了问题后,就停止了交易,然后下功夫研究,解决问题,做了很多测试,现在终于把问题解决了。问题出在交易函数上,交易函数是指将交易指令发送到交易服务器或处理交易服务器返回信息的的函数,主要完成下单、撤单、成交查询、持仓查询和成交回报处理等,开拓者提供两种交易函数,一种是开拓者对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不要在让我伤心失望了。 - TB技术人员: "我的问题就出在这里,buy和sell处理的持仓量是对图标里面的持仓量,而不是真实账户的持仓量,如果设置资金量和真实账户资金量不一致,持仓量不一致,就出大问题了。"1~这个不是TB的问题,buy和sell处理的持仓量就应当是图表里的持仓量,否则策略就无法回测,多策略或手动和自动同时进行一个品种交易会出现仓位“共振”等等问题2~“barstatus!=2”设计原理上应当不会发委托单,否则的话历史信号都会发现来就完了,除非是BUG。
3~“现在做了快半个多月的程序化交易,有些感受。感觉开拓者这个软件本身定位就比较高端,技术高端,起点高端。想法是好的,可惜人力和财力不够,导致这个软件做的太不成熟了,稳定性差,运行容易崩溃,常常断线。”支持! - TB客服:
原帖由 ilian 于 2010-4-19 01:01 发表
"我的问题就出在这里,buy和sell处理的持仓量是对图标里面的持仓量,而不是真实账户的持仓量,如果设置资金量和真实账户资金量不一致,持仓量不一致,就出大问题了。"1~这个不是TB的问题,buy和sell处理的持仓量就应当是图表里的 ...
1。这点是的,不是TB的错,但使用手册中和用户函数说明都没有解释清楚,只有调试才知道buy和sell是对图表操作,这个是Tb的问题,资料介绍太少。
2。历史回测中不会发现这个问题,只会在是盘中且秒级别线上,问题最多,你可以试试。 - 网友回复: 都要严谨一点面对问题才行。
不能武断,上来就说不可能,不会等等这样不负责任的话。
还是那句话,做程序要严谨!回复 1# brucecolvin 的帖子
- 网友回复: 确实有些问题,关于sell 和buytocover 这个两个函数,确实是只能平仓图标上面的,而在账户里的 都平不掉。这点应该怎么搞。?
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 262069696 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容