前言读者问“期货自动交易程序最短要多长”本质是在国内期货市场用 Python 把行情 → 决策 → 下单 → 核对连起来最少需要哪些部件。不是均线公式而是TqApi 循环与K 线 datetime 触发这类工程骨架。本文用天勤TqSdk给出五模块说明和一段可跑示例并逐块解释在螺纹钢等期货合约上各自解决什么问题。适合零实盘经验、已装 TqSdk 的读者照抄改calc_target。一、五模块期货语义环境连接谁——模拟TqSim、快期模拟TqKq或实盘TqAccount。订阅订哪个合约的 K 线或 quote。循环wait_update收国内期货行情包。触发信号何时算——此处用 K 线表最后一行datetime是否变化字段由行情服务写入。执行核对TargetPosTask设目标手数get_position看是否到位。二、完整示例建议整段运行一次fromtqsdkimportTqApi,TqAuth,TqSimfromtqsdk.libimportTargetPosTaskdefcalc_target(kl):输入 K 线表返回目标净仓手数或 None 表示本 bar 无操作returnNone# 读者在此写均线等逻辑apiTqApi(TqSim(),authTqAuth(快期账户,密码))symbolSHFE.rb2510klapi.get_kline_serial(symbol,60,data_length200)taskTargetPosTask(api,symbol)try:whileTrue:api.wait_update()ifnotapi.is_changing(kl.iloc[-1],datetime):continuetgtcalc_target(kl)iftgtisnotNone:task.set_target_volume(tgt)posapi.get_position(symbol)ifapi.is_changing(pos,pos):print(核对,symbol,净仓,pos.pos)exceptKeyboardInterrupt:passfinally:api.close()阅读要点duration60为 1 分钟 K 线datetime变表示新 barcalc_target内应使用iloc[-2]set_target_volume后循环不能停pos核对防止你以为成交了其实没有。三、扩展顺序在calc_target写双均线返回 -1/0/1 乘以手数。加quote交易时段过滤国内夜盘品种。拆 config / signals / main。TqKq()→TqAccount仅改TqApi行。四、勿删的最小要素去掉wait_update、去掉datetime过滤、去掉close就不是可靠的期货自动交易骨架只是行情演示。总结期货自动交易最小骨架 环境 serial wait_update datetime 触发 TargetPosTask position 核对。天勤把国内期货行情表与交易对象放在同一 API读者只需填充calc_target。先模拟跑通打印与一笔小单再谈资金规模。FAQ1能否更短再短会缺核对或 close不推荐。2insert_order 版可替换 task仍要 wait_update 与触发。3多合约tasks/targets 字典。4回测make_api 加 TqBacktest。风险提示本文提供示例结构不构成投资建议。