news 2026/6/5 18:27:21

想用 Python 写期货自动交易程序从哪里搭框架

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
想用 Python 写期货自动交易程序从哪里搭框架

前言

“用 Python 写期货自动交易程序”在国内通常指:用 Python 连接期货行情与交易接口,在螺纹钢、股指、原油等国内期货合约上,按你的规则自动下单、跟踪成交、管理持仓。读者可能是交易员转程序化,也可能是程序员刚接触期货,尚未开户或尚未区分“研究回测”和“实盘循环”。

本文不给空泛架构图,而是给出能跑通的最小框架(基于天勤TqSdk),并解释每一块在期货场景里解决什么问题:TqApi是什么、get_kline_serialdatetime从哪来、wait_update为何不能省、TargetPosTask与手写报单如何选。你可以先照搬骨架,再替换自己的信号。

一、五块骨架(期货程序化通用)

模块在期货场景里干什么天勤常见入口
环境连模拟或实盘、认证TqApi(TqSim()/TqKq()/TqAccount(...), auth=TqAuth(...))
数据订合约行情、K 线get_quote,get_kline_serial
循环等数据更新wait_update()
触发何时算信号is_changing(kl.iloc[-1], "datetime")
执行/核对下单、对账TargetPosTaskinsert_orderget_position

期货与日股不同:有夜盘、保证金、平今平昨、合约到期换月,所以执行与核对模块在国内尤其不能省。

二、最小可运行示例(带注释说明)

fromtqsdkimportTqApi,TqAuth,TqSim,tafuncfromtqsdk.libimportTargetPosTask# 1)环境:TqSim 为进程内模拟,适合第一次联调api=TqApi(TqSim(),auth=TqAuth("快期账户","密码"))symbol="SHFE.rb2510"# 2)数据:60 秒周期 K 线,data_length 要大于均线周期kl=api.get_kline_serial(symbol,60,data_length=200)task=TargetPosTask(api,symbol)try:whileTrue:api.wait_update()# 3)循环:收包并更新 kl 表(含 datetime 列)ifnotapi.is_changing(kl.iloc[-1],"datetime"):continue# 4)触发:仅在新 K 线时进入ma5=tafunc.ma(kl.close,5)ma20=tafunc.ma(kl.close,20)ifma5.iloc[-2]>ma20.iloc[-2]:task.set_target_volume(1)# 5)执行:目标净仓 1 手elifma5.iloc[-2]<ma20.iloc[-2]:task.set_target_volume(-1)else:task.set_target_volume(0)exceptKeyboardInterrupt:passfinally:api.close()

读这段时请关注:datetime来自 K 线表,由行情服务更新;[-2]是上一根已收盘 bar;set_target_volume之后循环仍要继续,task 才能在后续 wait_update 里发单。

三、文件如何随策略变复杂而拆分

  • config.py:合约列表、K 线周期秒数、手数、MODE(sim/kq/live)
  • signals.py:输入kl,输出目标手数,不要在里面创建 TqApi
  • main.pymake_api()+ 循环 +close()

换模拟/实盘只改环境层,避免三份策略拷贝。

四、第一步建议做什么

安装 TqSdk、注册快期账户、跑通上面脚本直到能打印 K 线datetime推进。再改均线参数、加交易时段过滤、换TqKq在 APP 里对持仓。不要第一天就接实盘。

五、常见误区

  • 没有wait_updateinsert_order(数据截面可能是旧的)
  • 没有datetime过滤,每个 tick 算均线
  • 进程结束不close(),下次连接异常

总结

想用 Python 写国内期货自动交易程序,从五块骨架入手:环境、订阅、wait_update 循环、按 K 线datetime触发、TargetPosTask 执行与 position 核对。天勤把行情表、交易对象放在同一 API 下,适合个人从模拟过渡到实盘。

先跑通最小示例,再拆文件、加风控;比一上来就接 CTP 回调更符合多数人的学习曲线。

FAQ

1)要先学 CTP 吗?

可先会用天勤 API,拒单与规则遇问题再补。

2)能否只做行情不下单?

可以只订 quote/kl,但自动交易必须接交易单元。

3)多策略如何部署?

一策略一进程一 Api,同账户避免多进程抢单。

4)回测?

TqApi(backtest=TqBacktest(...)),结束捕获BacktestFinished

风险提示

本文用于入门结构说明,不构成投资建议。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 18:26:00

Amphenol ICC 17-101254工业以太网线束组件解析与替代方案参考

在工业自动化、智能制造和工业通信领域&#xff0c;线束组件的选择直接影响设备稳定性和网络可靠性。本文以 Amphenol ICC&#xff08;Commercial Products&#xff09;17-101254 为例&#xff0c;从品牌价值、产品特性、应用场景、选型要点及兼容替代方案进行全方位解析。一、…

作者头像 李华
网站建设 2026/6/5 18:25:07

STM32+ADF7020无线抄表方案:Sub-1GHz自组网驱动与协议栈实战

1. 项目背景与核心需求解析几年前&#xff0c;我接手了一个低压电力集抄系统的升级项目。当时&#xff0c;客户现场反馈最集中的问题就是抄表成功率不稳定&#xff0c;尤其是在一些老旧小区和复杂布线环境中。我们当时的主力方案是低压电力线载波&#xff08;PLC&#xff09;&a…

作者头像 李华
网站建设 2026/6/5 18:23:34

2026年成都双子塔美食探秘:龙鲤小院的味蕾之旅

在成都这座充满历史韵味与现代活力交织的城市中,美食是连接过去与现在的桥梁。位于交子大道金融核心区的[龙鲤小院]&#xff0c;以其独特的魅力成为众多食客心中的“必去之地”。今天&#xff0c;就让我们一起走进这家备受瞩目的川菜馆,探索它如何成为2026年成都双子塔下的美食…

作者头像 李华
网站建设 2026/6/5 18:22:21

ChanlunX缠论可视化插件:专业级技术分析工具完全指南

ChanlunX缠论可视化插件&#xff1a;专业级技术分析工具完全指南 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX ChanlunX是一款专为通达信软件设计的缠论技术分析可视化插件&#xff0c;通过先进的算法自…

作者头像 李华
网站建设 2026/6/5 18:21:13

Notepad++ Markdown插件终极指南:3分钟实现实时预览和高效导出

Notepad Markdown插件终极指南&#xff1a;3分钟实现实时预览和高效导出 【免费下载链接】MarkdownViewerPlusPlus A Notepad Plugin to view a Markdown file rendered on-the-fly 项目地址: https://gitcode.com/gh_mirrors/ma/MarkdownViewerPlusPlus 想在Notepad中直…

作者头像 李华
网站建设 2026/6/5 18:18:45

三步实现微信QQ防撤回:开源工具让你的消息永久可见

三步实现微信QQ防撤回&#xff1a;开源工具让你的消息永久可见 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁&#xff08;我已经看到了&#xff0c;撤回也没用了&#xff09; 项目地址: https://gitcode.com/G…

作者头像 李华