1.3 KiB
1.3 KiB
H3. 撤单、拒单、废单和部分成交不能驱动状态机正确收敛
- 位置:
strategy/trend/state.py:142-162、strategy/trend/order.py:14-17,61-92 - 证据:状态对账只把“匹配订单全部为状态 56”视为完成,其余均保持
ING;订单被过滤或消失时,已有持仓的补仓状态不会变为失败或撤销。文件中虽然定义了FAILED、CANCELED、UNKNOWN,但没有完整迁移逻辑。 - 影响:失败的补仓仍会消耗
added_num,状态可能永久停留在处理中,重启后也无法可靠恢复。 - 建议:建立完整 QMT 委托状态映射,按实际成交数量处理全成、部成、已撤、废单、拒单和未知;消失订单需二次查询确认。
M6. 策略成本使用提交时行情价,而非实际成交价
- 位置:
strategy/trend/open.py:80-86、strategy/trend/positions.py:186-192 - 证据:底仓和补仓在订单刚提交成功时就把 tick 价格写为成本,没有根据成交回报更新实际成交数量与均价。
- 影响:滑点、部分成交或拆单时,后续盈亏率、止盈网格和补仓层级基于不准确成本。
- 建议:提交阶段只记录订单标识;订单完成对账后从成交或真实持仓均价更新成本和数量。