
前言国内期货交易室里很常见服务器上策略在自动跑交易员同时在快期 APP 或期货公司终端里手动平了一手、或临时加仓风控。程序内存里还记着target_vol3TargetPosTask发现get_position只有 1 手就会在下一轮wait_update里继续买入把人工平掉的仓位又加回来反之人工加仓后策略按空仓信号卖出会把人工头寸平掉。这不是“程序错了”或“人错了”而是同一资金账户两个操作者没有协调规则。天勤 TqSdk 单账户通常单进程一个TqApiTargetPosTask会持续把净持仓推向set_target_volume设定的目标。模拟盘过渡到TqAccount实盘后这类冲突更频繁。下面说明冲突怎么发生、应以谁为准、可执行的 MODE 开关与检测逻辑并解释pos.pos、get_trade等字段在其中的作用。一、冲突典型路径两条都要防路径 A人工减仓策略 state 里target_vol3人工在 APP 平掉 2 手柜台pos.pos1task 发现 1≠3继续买人工以为已风控程序又开仓。路径 B人工加仓策略认为应空仓target_vol0人工买入 2 手下一根 K 线信号仍空task 卖出人工仓位被平。两条路的共同解定期或事件驱动地把“策略目标”与“柜台实际”对齐并约定人工干预后程序进入何种模式。二、原则以柜台 position 为准同步 targetget_position(symbol)在每次wait_update()后更新pos.pos是交易所认可的净持仓手数是对账真相源。策略自建的target_vol只是意图不能与 pos 长期背离而不处理。每个 K 线 bar 或每 N 分钟可做一次核对更积极的是在检测到“仓位变了但本策略没有对应成交”时立即同步posapi.get_position(symbol)actualpos.posifmanual_intervention_detected(api,symbol):state[target_vol]actual task.set_target_volume(actual)log(sync to manual,symbol,actual)manual_intervention_detected需团队实现常见思路本周期is_changing(pos, pos)为真但get_trade里找不到本程序order_id的成交记录——说明变动可能来自人工或其他终端。实现细节要过滤 task 自动报单成交避免误判。三、运行模式开关 MODE建议写进配置MODE含义行为auto全自动仅程序调仓人工不应改仓现实中仍可能发生靠检测同步semi半自动人工可改程序检测到后把 target 同步到 actual并暂停自动加仓直至复位manual只监控程序不下单只打日志与告警半自动时可设pause_until时间戳或文件标志在暂停期内信号层 continue不set_target_volume新开仓。人工复位后清标志恢复 auto。沟通上应书面约定哪些时段允许人工干预如夜盘异常、干预后谁负责把 MODE 改回 auto比事后翻日志高效。四、与 TargetPosTask、get_trade 的配合TargetPosTask在内部发单成交仍会出现在get_order/get_trade。对账时要能区分“本程序 order”与“外部成交”。日志建议记录时间、symbol、改前 target、改后 actual、触发原因manual_sync / signal。TqKq快期模拟可在 APP 看持仓适合演练人工改仓后程序如何 syncTqAccount实盘同样适用不要只在 sim 里测通就以为实盘没人动仓。五、单账户边界与多策略同一资金账户不要“一进程自动策略 另一进程自动策略 人工”无规则混用。多策略应分 symbol 或汇总层见多策略专题。人工若只动某一品种只同步该 symbol 的 target勿全局 reset。锁仓策略看pos_long/pos_short分列净pos可能为 0 但仍有敞口同步规则要按团队锁仓定义另写。六、上线前演练清单模拟盘持仓 2 手人工平 1 手程序是否在 semi 下同步且不再加回人工加仓后程序是否误平应 semi 同步或 pause日志能否回答“这手谁下的”。总结程序与人工并行操作同一账户时冲突的根源不是谁更聪明而是“目标意图”和“柜台现实”没有及时对齐。把同步机制、模式开关auto/semi/manual与责任边界提前写进流程策略通过定期或事件驱动读取get_position的实际仓位把任务目标同步到真实 pos并在半自动/手动模式下暂停或限制自动加仓。更关键的是日志要能解释每一次同步发生的原因是信号变化、还是人工干预。当这些都做到位系统就能在人工介入后平滑接管而不是互相覆盖、互相抵消把可控问题演变成操作事故。FAQ1能否从期货公司禁止 APP 交易多数情况下程序侧无法禁止只能检测与同步。2TargetPosTask 会“抢”人工单吗会按目标继续调仓必须同步目标或 pause。3人工只平一手策略要全平semi 下同步到 actual剩余手数不是强制归零除非风控另有规则。4多策略人工动了共享品种汇总层暂停先对齐 position 再恢复。风险提示以上内容用于协作流程参考不构成投资建议。