前言期货报单除了买/卖方向还要告诉交易所是「开仓」还是「平仓」部分交易所还要区分平今、平昨。方向对了、开平错了柜台会拒单。天勤里若用TargetPosTask开平顺序 largely 由offset_priority和当前get_position自动计算若手写insert_order必须自己填offset参数。常见错误包括空仓发平仓、平今手数超过今仓或同一合约同时用 task 和insert_order导致状态混乱。拒单后信息在委托对象的last_msg里是中文或英文说明文字status变为FINISHED且volume_left等于原始手数时常表示完全未成交结束。下面说明字段含义、典型场景、如何用get_position反推该怎么报。一、名词对照名称在天勤里insert_order手写报单函数参数含 direction、offsetoffsetOPEN、CLOSE、CLOSETODAY 等开平标志TargetPosTask自动算开平用户不直接填 offsetoffset_prioritytask 的平今昨开顺序get_position持仓对象pos净持仓pos_long/pos_short多空分列锁仓要看statusALIVE在途FINISHED结束volume_left未成交手数volume_orign原始委托手数last_msg柜台状态说明拒单原因常在此is_error是否错单标记False 也不一定无错二、典型拒单场景无仓却 CLOSE净pos为 0 仍发平仓。平今超过今仓上期所等区分平今平昨今仓不够。锁仓结构复杂净 pos 为 0 但pos_long0平今昨判断不同。task 与insert_order混用官方禁止易重复或错单。orderapi.get_order(order_id)whileTrue:api.wait_update()ifapi.is_changing(order,status)orapi.is_changing(order,last_msg):iforder.statusFINISHEDandorder.volume_leftorder.volume_orign:handle_reject(order)# 解析 last_msg勿盲目重报handle_reject内维护「消息关键词 → 动作」表按团队期货公司文案更新。三、拒单后先读 positionposapi.get_position(symbol)# 把策略目标与 pos.pos 对齐再决定是否 set_target_volume若用TargetPosTask可set_target_volume(pos.pos)同步 task再设新目标避免在错误持仓假设上继续 OPEN。四、交易所差异简述上期所等平今、平昨分开offset_priority重要。中金所等指令层面不区分平今昨按先开先平规则见 task 源码注释。股指平今成本可通过offset_priority昨开等方式降低频率但不能替代正确持仓认知。总结开平标志错了表现就是last_msg里出现资金、持仓、开平相关提示而volume_left一点没减少。天勤的TargetPosTask适合不想手填 offset 的趋势调仓手写insert_order则要自己保证 offset 与get_position一致且勿与 task 混用。把常见 last_msg 整理成表、拒单后先同步持仓再重试按步骤排查而不是反复盲报浪费报单额度。FAQ1刚下单 status 为空正常继续wait_update勿立刻判失败。2部分成交算拒单吗volume_left部分减少按部分成交处理。3模拟盘文案一样吗大体接近以实盘期货公司为准。4task 内部发什么 offset由天勤按交易所规则和持仓计算用户不直接设。风险提示以上内容用于报单排查参考不构成投资建议。
期货程序化开平标志错了总拒单:天勤 last_msg 排查思路
发布时间:2026/6/9 19:28:25
前言期货报单除了买/卖方向还要告诉交易所是「开仓」还是「平仓」部分交易所还要区分平今、平昨。方向对了、开平错了柜台会拒单。天勤里若用TargetPosTask开平顺序 largely 由offset_priority和当前get_position自动计算若手写insert_order必须自己填offset参数。常见错误包括空仓发平仓、平今手数超过今仓或同一合约同时用 task 和insert_order导致状态混乱。拒单后信息在委托对象的last_msg里是中文或英文说明文字status变为FINISHED且volume_left等于原始手数时常表示完全未成交结束。下面说明字段含义、典型场景、如何用get_position反推该怎么报。一、名词对照名称在天勤里insert_order手写报单函数参数含 direction、offsetoffsetOPEN、CLOSE、CLOSETODAY 等开平标志TargetPosTask自动算开平用户不直接填 offsetoffset_prioritytask 的平今昨开顺序get_position持仓对象pos净持仓pos_long/pos_short多空分列锁仓要看statusALIVE在途FINISHED结束volume_left未成交手数volume_orign原始委托手数last_msg柜台状态说明拒单原因常在此is_error是否错单标记False 也不一定无错二、典型拒单场景无仓却 CLOSE净pos为 0 仍发平仓。平今超过今仓上期所等区分平今平昨今仓不够。锁仓结构复杂净 pos 为 0 但pos_long0平今昨判断不同。task 与insert_order混用官方禁止易重复或错单。orderapi.get_order(order_id)whileTrue:api.wait_update()ifapi.is_changing(order,status)orapi.is_changing(order,last_msg):iforder.statusFINISHEDandorder.volume_leftorder.volume_orign:handle_reject(order)# 解析 last_msg勿盲目重报handle_reject内维护「消息关键词 → 动作」表按团队期货公司文案更新。三、拒单后先读 positionposapi.get_position(symbol)# 把策略目标与 pos.pos 对齐再决定是否 set_target_volume若用TargetPosTask可set_target_volume(pos.pos)同步 task再设新目标避免在错误持仓假设上继续 OPEN。四、交易所差异简述上期所等平今、平昨分开offset_priority重要。中金所等指令层面不区分平今昨按先开先平规则见 task 源码注释。股指平今成本可通过offset_priority昨开等方式降低频率但不能替代正确持仓认知。总结开平标志错了表现就是last_msg里出现资金、持仓、开平相关提示而volume_left一点没减少。天勤的TargetPosTask适合不想手填 offset 的趋势调仓手写insert_order则要自己保证 offset 与get_position一致且勿与 task 混用。把常见 last_msg 整理成表、拒单后先同步持仓再重试按步骤排查而不是反复盲报浪费报单额度。FAQ1刚下单 status 为空正常继续wait_update勿立刻判失败。2部分成交算拒单吗volume_left部分减少按部分成交处理。3模拟盘文案一样吗大体接近以实盘期货公司为准。4task 内部发什么 offset由天勤按交易所规则和持仓计算用户不直接设。风险提示以上内容用于报单排查参考不构成投资建议。