全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
没有获取委托列表函数和指定合约委托信息,如何避免重复下单?
2023-02-07 14:10

TBQuant里没有获取整个委托列表的函数,只能针对于当前商品获取委托情况,但是对于把多个品种合约写入代码里的策略,如何获取单个品种合约的委托信息,避免重复下单?

kyover

但是对于把多个品种合约写入代码里的策略,如何获取单个品种合约的委托信息,避免重复下单?

这个问题就没听懂。

为什么会造成重复下单?

2023-02-07 14:15
stmgtest02
@kyover

就是在委托列表里重复报单,因为每次运行一次OnBar都会下一单,而我下的又是排队单不会马上成交,所以要获取上一次下单的委托信息是否还在挂单中,避免重复下单

2023-02-07 14:18
kyover
@stmgtest02

用global变量做一个状态变量来控制

2023-02-07 14:38
stmgtest02
@kyover

怎么控制

2023-02-07 14:39
kyover
@stmgtest02

用状态变量控制啊?定义一个global变量 赋个初值表示可报单状态,放在报单条件里。报单以后更改变量值,就起到控制效果了。

注意设计好状态变量的重置环节,否则就变成一次性了。比如可以在某个订单完全成交以后达到一次报单循环,重置这个状态变量。

这个应该是比较基础的技巧,之前没写过代码吗?

2023-02-07 14:43
stmgtest02
@kyover

那TB怎么没有获取整个委托列表的函数,这个最基础的函数其他程序化交易软件都有,怎么就你们没有?

2023-02-07 14:51
kyover
@stmgtest02

第一 没有必要,我们平时的使用当中现有函数都能满足需求,不知道为什么要一个获取委托列表所有数据的函数?如果有多个策略在跑,那不是把其他策略的委托单也读进来了吗?那不是更乱吗?

第二 如果你真需要查询委托列表,也不是不能实现,A_GetOrderIDs2这个而函数可以获取指定symbol,操作源,账户的所有委托单号,再根据委托单号查询委托单就行了。但是这种算法明显有很大的冗余,每次tick驱动都要这样获取完整的委托单列表,全都是没有意义的冗余操作

2023-02-07 15:00
htqh98010618
@kyover

wow,刘老师,我记得你们不是和上投的翟很熟吗?这个人是上投的吗?怎么一副瓶子不满脾气倒不小的样子?

2023-02-07 15:07
您未登录,请先 登录注册 后发表评论
顶部