简单高频示例:
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)