news 2026/6/25 17:12:22

回测模拟实盘三环境配置文件切换实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
回测模拟实盘三环境配置文件切换实践

前言

国内期货策略从历史回测快期模拟再到实盘,若用三个 Python 文件维护,极易出现“回测删了的过滤、实盘忘记加”。工程上更常见的是:一个 strategy.py + 配置文件/环境变量指定 MODE,仅make_api()TqApi构造不同。

天勤支持TqBacktestTqSimTqKqTqAccount同一套get_kline_serialdatetime触发逻辑。本文给.env+make_api示例,并说明期货部署时为何要重启进程切换环境、密码如何不入库。

一、为什么用环境变量

  • 回测区间TQ_BT_START/TQ_BT_END常改;
  • 模拟与实盘密码不能写进 git;
  • 运维在服务器注入TQ_MODE=live,策略代码无硬编码。

二、.env 示例(读者按户名修改)

TQ_USER=快期账户 TQ_PASS=密码 TQ_MODE=backtest TQ_BT_START=2024-01-01 TQ_BT_END=2024-06-30 BROKER=南华期货 ACCOUNT=123456 ACCOUNT_PASS=****

TQ_MODE取值:backtest|sim|kq|live

三、make_api 与 main

importosfromdatetimeimportdatefromtqsdkimportTqApi,TqAuth,TqSim,TqKq,TqAccount,TqBacktest,BacktestFinisheddefmake_api():auth=TqAuth(os.environ["TQ_USER"],os.environ["TQ_PASS"])mode=os.environ["TQ_MODE"]ifmode=="backtest":returnTqApi(backtest=TqBacktest(start_dt=date.fromisoformat(os.environ["TQ_BT_START"]),end_dt=date.fromisoformat(os.environ["TQ_BT_END"]),),auth=auth,)ifmode=="kq":returnTqApi(TqKq(),auth=auth)ifmode=="live":returnTqApi(TqAccount(os.environ["BROKER"],os.environ["ACCOUNT"],os.environ["ACCOUNT_PASS"]),auth=auth,)returnTqApi(TqSim(),auth=auth)defmain():api=make_api()print("当前 MODE",os.environ["TQ_MODE"])try:run(api)# 内含 wait_update、is_changing(datetime)、TargetPosTaskexceptBacktestFinished:export_result(api)finally:api.close()

run(api)内不出现if live,期货合约列表来自config.SYMBOLS

四、config 与策略分离

config.pySYMBOLS = ["SHFE.rb2510"]DURATION = 300LOTS = 1
回测与实盘共用,换月只改 config。

五、部署注意(期货 7×24)

环境MODE说明
CI 回测backtest单次进程
服务器模拟kq单实例守护
实盘live启动前人工确认 MODE

切换 MODE 必须重启进程,不可热替换 Api;夜盘策略注意机器勿休眠。

六、验证

改 MODE 后跑 30 分钟:K 线datetime推进、模拟下一笔小单、position 与日志一致。live 前加二次确认变量。

总结

回测、模拟、实盘三环境用配置文件切换make_api(),期货策略主体共用datetime触发与 TargetPosTask。天勤构造四种模式覆盖国内期货全流程;密码用环境变量,代码不入库。

这是团队减少“环境抄错一行”的实用做法,比复制三份策略文件可靠。

FAQ

1)yaml 可以吗?

可以,解析后传入 make_api。

2)多策略?

每策略独立 env 前缀或独立服务。

3)docker?

启动时注入 env,镜像内不写密码。

4)误连实盘?

启动打印 MODE,live 需显式确认。

风险提示

本文讨论部署,不构成投资建议。

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

N_m3u8DL-CLI-SimpleG:三步完成M3U8视频下载的终极图形化工具

N_m3u8DL-CLI-SimpleG:三步完成M3U8视频下载的终极图形化工具 【免费下载链接】N_m3u8DL-CLI-SimpleG N_m3u8DL-CLIs simple GUI 项目地址: https://gitcode.com/gh_mirrors/nm3/N_m3u8DL-CLI-SimpleG 你是否曾面对复杂的命令行界面而望而却步?是…

作者头像 李华
网站建设 2026/6/5 12:27:39

AIoT一站式方案解析:从通信模组到云平台的深度融合

1. 从一次合作签约,看AIoT产业融合的深层逻辑最近,广和通和涂鸦智能在上海签署合作协议的消息,在物联网圈子里引起了不小的讨论。表面上看,这是一家模组大厂和一家云平台巨头的“强强联合”,新闻稿里也满是“资源共享”…

作者头像 李华
网站建设 2026/6/5 12:26:26

TDC技术全解析:从皮秒级时间测量原理到FPGA实现实战

1. 到底什么是时间-数字转换器(TDC)?在嵌入式系统、高能物理、激光测距、医疗成像乃至消费电子的飞行时间(ToF)传感器里,我们常常需要测量一个极其短暂的时间间隔。比如,一束激光发出到被物体反…

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

芯片产业破局:从替代到赋能,构建信任链与协同生态

1. 从“怪圈”到“破局”:一位芯片老兵的二十年观察2005年初,我在《EDN China》上读到一篇报道,标题是《“怪圈”冲破之日,中国IC设计业起飞之时》。那时我刚入行不久,在一家初创的芯片设计公司做后端工程师&#xff0…

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

WeChatExporter:三步永久备份微信聊天记录,告别数据丢失的烦恼

WeChatExporter:三步永久备份微信聊天记录,告别数据丢失的烦恼 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否经历过手机丢失、系统崩溃或…

作者头像 李华