关于OnBar触发机制可能存在的问题的确认
简单高频示例:1. 成交开仓的单子3手2. onorder里面的代码条件是 If(ord.status == Enum_Filled && ord.combOffset == Enum_Entry),只取成交+开仓3. counts理论上等于3,实际上打印出来counts = 7,请问是不是哪里的机制出了问题?附:订单示意图 + 源码主要代码逻辑://委托更新事件函数,参数ord表示更新的委托结构体OnOrder(OrderRef ord){ // Map存储 开仓成交的订单 If(ord.status == Enum_Filled && ord.combOffset == Enum_Entry) { filled_map[ord.orderId] = ord; counts = counts + 1; // counts计数异常 }}
onorder 里面有些柜台可能推送多次成交在onfill里确认比较好
主要代码逻辑://委托更新事件函数,参数ord表示更新的委托结构体 OnOrder(OrderRef ord) { // Map存储 开仓成交的订单 If(ord.status == Enum_Filled && ord.combOffset == Enum_Entry) { filled_map[ord.orderId] = ord; counts = counts + 1; // counts计数异常 } }
修正:2. onbar里面的代码条件是 If(ord.status == Enum_Filled && ord.combOffset == Enum_Entry)--->>>2. onorder里面的代码条件是 If(ord.status == Enum_Filled && ord.combOffset == Enum_Entry)