本地系统认为没有仓位,不代表交易账户真的为空;请求超时、部分成交或人工操作都可能留下“孤儿订单”。枢轴点自动交易必须定期以服务器状态对账。原8月12日页面没有订单明细,本页说明流程。

服务器账户是最终事实来源

本地数据库用于追踪策略意图,但实际仓位、挂单和成交以平台确认记录为准。重启或重连后先完整拉取账户状态,再恢复信号处理,不依赖旧缓存。

用稳定标识关联全链路

保存信号ID、客户端订单ID、平台订单ID、成交ID和策略版本。仅按品种与时间猜测归属,在多策略和高频改单场景下容易把不同订单错误合并。

差异按风险优先级处理

无保护仓位、超额数量和未知方向优先告警;重复挂单、过期止盈和本地缺记录也需处理。自动修复只适用于明确且经过测试的情况,不确定时停止新单并人工确认。

对账不能制造新的订单风暴

发现缺少止损后,在提交前再次查询状态并使用幂等标识。多个实例同时修复同一差异,会从一个孤儿仓位变成多张重复保护单。

定时对账之外,还应在启动、重连、异常回执、人工操作和每日收盘后触发。保存差异出现、确认、处置和关闭时间,用于衡量系统是否在恶化。

余额、权益、已实现盈亏和费用也要对账,不能只看仓位数量。掉期、佣金或换算差异若长期未入本地账,会让风险预算逐步偏离真实账户。

对账规则本身需要版本和测试样本。字段新增、平台接口升级或账户模式变化后,旧映射可能把正常状态误报成异常。

撤改单竞态见取消延迟与幂等,账户模式见净持仓与锁仓,断线恢复见保护与重建状态。