全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
关于Fill结构体成员orderId订单编号和volume委托量、fillVolume成交量在整个订单状态变化过程中的变化规则
2024-05-12 17:33


与前面的一个问题相关联:

https://www.tbquant.net/forumDetail?cur=tbquan&id=12800&cid=all

只是问题发生的事件域由OnOrder变成OnFill事件域,Fiil结构体没有状态成员status,所以不区分【部分成交】和【全部成交】。因此我暂且认为,只要交易所由撮合成交反馈,就会触发OnFill事件域。

依然假设:

  1. 报单指令买入11手开多仓,在OnOder事件域【已申报】时会得到【0号orderId】
  2. 【第1次】部分成交2手(剩余9手),【1号orderId】,【1号volume】,【1号fillVolume】
  3. 【第2次】部分成交3手(剩余6手),【2号orderId】,【2号volume】,【2号fillVolume】
  4. 【第3次】全部成交6手(剩余0手),【3号orderId】,【3号volume】,【3号fillVolume】

问题

  1. 请问OnFill事件域的【3号orderId】全部成交时的报单编号 与 OnOrder事件域订单创建申报时的【0号orderId】相同吗?
  2. 请问 OnOrder事件域【0号orderId】和OnFill事件域的【1号orderId】、【2号orderId】相同吗?如果不同,那么他们之间是否可以通过系统函数追溯关联查找?是哪个系统函数?
  3. 【1号orderId】发生时,【1号fillVolume】应该是【2手】,因为第1次成交,那么【2号orderId】发生时,【2号fillVolume】的值 是当次部分成交的【3手】?还是【0号orderId订单】累计成交的【5手】?因为第3次全部成交了,那么【3号fillVolume】应该是【11手】,这样理解对吗?
  4. 【1号volume委托量】和【2号volume委托量】和【3号volume委托量】是否相同都指的是【0号orderId】原始订单的委托量【11手】?


Phoenix129

根据这个视频的内容: https://www.tbquant.net/TrainDetail?id=449

(1)在OnFill事件域中,对同一个订单分3次成交触发时,得到的3个【ordFill.orderId】应该也是相同的,是同一个委托报单的3笔分项成交。不同的应该是【ordFill.fillId

(2)3次成交的【ordFill.fillVolume】成交量应该是增量,不是累积量,也就是第1次成交时,【ordFill.fillVolume】为2手、第2次【ordFill.fillVolume】为3手、第3次【ordFill.fillVolume】为6手。视频里面有demo演示打印成交量【ordFill.fillVolume】了。

(3)至于在OnFill事件域里面。每次部分成交时,读取的【ordFill.Volume】委托量到底是不是都是与原始委托量一样的11手,还不清楚。

2024-05-12 19:42
kyover
@Phoenix129

收到

2024-05-13 13:25
kyover
@Phoenix129

volume这个属性返回的就是order的委托量,也就是不会因为成交数量而变化的,固定的

2024-05-13 13:37
wangkaiming

orderID不变的

成交比订单细,一个报单可以有多个成交

2024-05-13 17:01
您未登录,请先 登录注册 后发表评论
顶部