191270c884
2026-08-25 事故:small_cap同轮「全卖19只→马上全买20只」在两轮归因轮询间隙 读台账现金,卖出回款不可见→20笔买入全部目标0、全天空仓;momentum同型撞运 只入账首笔79k/6=13.2k缩水44%仓;value无卖后买序列满额(反证)。QMT无责 (0.5s filled/券商现金即时/下单线程同步见filled),gap=runner_live.py归因 poller 60s一轮才调ledger.apply_trade(唯一cash更新入口,DB落库时间戳恰差60s 铁证)。 修法(B,治本现金新鲜度): - LiveInstanceLedger.on_order_done钩子+notify_order_done(未注入/抛错静默, 绝不阻断下单;漏单由轮询兜底);apply_trade幂等判定整体移入锁内——钩子 (策略线程)与轮询(poller线程)并发同步同一笔成交时恰好一笔入账,防双计 - live_strategy._instance_order_wrappers:所有真实委托(bt_order/透传)返回后 _done()触发即时归因;决策层不下单的路径不触发 - runner_live:engine装配后注入on_order_done=_sync_instance_trades闭包; 60s轮询保留兜底(部分成交后续/异步路径) 测试+8:钩子三态(nop/触发/吞异常)+8线程同trade_id并发恰入账一次(竞态回归) +wrapper卖出/买入/透传触发+不下单不触发;portfolio 459绿+api 170绿 [vps]