TBQuant里没有获取整个委托列表的函数,只能针对于当前商品获取委托情况,但是对于把多个品种合约写入代码里的策略,如何获取单个品种合约的委托信息,避免重复下单?
但是对于把多个品种合约写入代码里的策略,如何获取单个品种合约的委托信息,避免重复下单?
这个问题就没听懂。
为什么会造成重复下单?
就是在委托列表里重复报单,因为每次运行一次OnBar都会下一单,而我下的又是排队单不会马上成交,所以要获取上一次下单的委托信息是否还在挂单中,避免重复下单
用global变量做一个状态变量来控制
怎么控制
用状态变量控制啊?定义一个global变量 赋个初值表示可报单状态,放在报单条件里。报单以后更改变量值,就起到控制效果了。
注意设计好状态变量的重置环节,否则就变成一次性了。比如可以在某个订单完全成交以后达到一次报单循环,重置这个状态变量。
这个应该是比较基础的技巧,之前没写过代码吗?
那TB怎么没有获取整个委托列表的函数,这个最基础的函数其他程序化交易软件都有,怎么就你们没有?
第一 没有必要,我们平时的使用当中现有函数都能满足需求,不知道为什么要一个获取委托列表所有数据的函数?如果有多个策略在跑,那不是把其他策略的委托单也读进来了吗?那不是更乱吗?
第二 如果你真需要查询委托列表,也不是不能实现,A_GetOrderIDs2这个而函数可以获取指定symbol,操作源,账户的所有委托单号,再根据委托单号查询委托单就行了。但是这种算法明显有很大的冗余,每次tick驱动都要这样获取完整的委托单列表,全都是没有意义的冗余操作
wow,刘老师,我记得你们不是和上投的翟很熟吗?这个人是上投的吗?怎么一副瓶子不满脾气倒不小的样子?