当前位置: 首页 > news >正文

天勤图形化调试与策略运行器:IDE 插件与本地脚本怎么统一

前言

我们组有过经典场面:同事用 VSCode 插件点「运行策略」,我这边python main.py也启动了,两边以为对方没跑,其实两个进程都在下单——模拟盘双倍成交,风控电话打来才知道。还有一次是插件读的是config/backtest.yaml,命令行读的是当前目录的./config.yaml,回测区间差了一年,开会争了半小时谁对谁错。

天勤 devtools 里有策略运行器、回测启动、VSCode 扩展等(strategyrun.rststrategybacktest.rstvscode.rst),工具本身没问题,问题是团队没约定「生产只认一种入口」。我现在的规矩是:生产只有python main.py --mode live;插件只给个人调试;Notebook 不许当生产入口。

下面写两条轨为什么容易分叉、怎么对齐,以及升级版本后为什么要重对一遍路径。

一、两条轨差在哪(不是「谁好用」)

差异点插件 / 图形运行器命令行python main.py
工作目录 cwdIDE 里 often 是项目根,也可能配错你从哪 cd 进来就是哪
配置文件GUI 里点选,容易点到旧文件相对路径随 cwd 变
Python 解释器IDE 选的 venv服务器可能是系统 python
日志目录有时在临时目录脚本里logs/

这些差异在单机回测时不明显,一上模拟/实盘,路径错就是静默错:进程在跑,用的却是另一套合约或另一段日期。

二、统一四件事(我们写在 README 里)

  1. 唯一入口main.py,参数用--mode backtest|sim|live
  2. 配置:根目录config.yaml.env,路径用Path(__file__).parent拼,禁止裸相对路径。
  3. 解释器.venv路径写进README和 VSCode 设置模板,新人 clone 后照抄。
  4. 日志:绝对路径或基于项目根的logs/,日志首行打印:mode、cwd、配置版本、合约列表。
frompathlibimportPath ROOT=Path(__file__).resolve().parent LOG_DIR=ROOT/"logs"

插件里的「工作目录」请显式设成ROOT,和命令行一致。

三、升级版本后为什么要重对

天勤或插件小版本升级后,菜单路径、默认 cwd 可能变。我们发版 checklist 里有一行:用插件跑一次 sim,用命令行跑一次 sim,对比日志前两行是否一致。不一致就停,别带着「应该没事」上实盘。

四、调试技巧(实盘前)

  • 插件里先跑 sim,确认成交、持仓和命令行一致,再提交 git。
  • 断点调试时别在wait_update里停太久,行情会堆;短时断点一般还行。
  • 回测 / 模拟 / 实盘用 profile 切换构造,禁止手改三份代码。

五、团队规范示例

  • 生产:systemd 只调python main.py --mode live
  • CI:只跑 pytest + 静态检查,不跑插件。
  • 研究:Notebook 可以玩,导出到signals.py才算数。

总结

图形化工具省的是点鼠标,省不了环境和路径纪律。天勤插件和脚本都是在调同一套TqApi,吵架之前先看日志首行:cwd 一样吗、mode 一样吗、合约列表一样吗——十有八九在这一步就能和解。我吃过「双进程同时跑」的亏,所以会对新人啰嗦一点:你可以用插件,但生产只认main.py,这不是鄙视 GUI,是怕半夜电话。

FAQ

1)必须装插件吗?

不必,命令行足够,插件是加速器。

2)插件回测和脚本回测结果不同?

先对齐 cwd、配置、区间、合约、手续费五件事。

3)断点会卡死行情吗?

长暂停有风险,短时调试通常可接受。

4)多策略多个 launch 配置?

可以,每个策略一份,cwd 都指向各自 ROOT。

5)服务器没 GUI?

只用命令行 + 日志 + 可选 Web 监控。

风险提示

本文用于期货量化技术实践讨论,不构成投资建议。

http://www.jsqmd.com/news/869020/

相关文章:

  • Facebook图神经网络索引用于蛋白质组学亿级搜索
  • 2026年牵手红娘服务权威推荐深度解析:婚恋平台线下见面率低与匹配效率低痛点 - 品牌推荐
  • CentOS 7下Nginx集成SM2国密证书的完整实践指南
  • 在Visual Studio 2022里用C#和VisionPro搞定工业相机连接(附完整代码和避坑点)
  • Taotoken助力中小企业打造低成本智能客服系统
  • 别再用第三方软件了!Win11自带的文件加密功能,保姆级教程教你5分钟搞定
  • 2026年牵手红娘服务权威推荐深度解析:婚恋场景线下见面率低与匹配效率差的破解之道 - 品牌推荐
  • 告别踩坑:一份针对GD32在CubeMX平台下的USB OTG移植检查清单
  • 国产DSP FT-M6678中断开发避坑指南:从CIC配置到向量表编写的完整流程
  • 告别‘APP keeps stopping’:Android Studio虚拟调试中5个最易忽略的配置与代码陷阱
  • Keil MDK自定义Flash算法开发与调试技巧
  • 【Linux】Linux中常用操作命令总结
  • 对比直接购买与使用Taotoken Token Plan的长期成本体感
  • 怀旧开发环境搭建:在Win10/Win11上完美安装VS2010并配置C++测试项目
  • 保姆级教程:从外网到域控,手把手复现Vulnstack三层靶场(附完整渗透流程与避坑点)
  • 手把手教你用Windows本地部署HFish蜜罐(附一键安装脚本及常见问题解决)
  • 手把手教你用232串口连接欧姆龙G9SP安全PLC与NB触摸屏(含接线图与配置避坑)
  • 手把手教你用IAR和Procise调试复旦微FM7Z045的DDR(避坑JTAG模式切换)
  • 工厂接单:短账期高单价,还是长账期低单价?这道题最考验老板的算盘
  • 2026年质量好的老家建房/登封民宿自建房/登封农村宅基地建房/自建房本地公司推荐 - 行业平台推荐
  • 科学数据压缩技术:LC与SPERR框架解析
  • GPT-4V算卡路里准不准?我们拿它和薄荷健康、MyFitnessPal做了次硬核对比评测
  • 用NE555和CD4017做个复古流水灯:从原理图到面包板搭建全记录
  • Unity层级窗口可视化增强:Hierarchy Decorator原理与实战
  • 保姆级教程:用Anaconda在Windows上搞定SimSwap环境配置(含RTX30系显卡CUDA11.1避坑指南)
  • 2026年知名的陕西内外墙腻子粉/陕西儿童房专用腻子粉/防霉腻子粉品牌厂家推荐 - 品牌宣传支持者
  • 中性原子量子编译的PAC框架设计与优化
  • 老带新转介绍 vs 数据化获客:上游销售的两种获客逻辑,该怎么选
  • 生产级机器学习服务:从模型部署到可观测运维
  • SAP HANA Studio不只是个数据库客户端:解锁它的四大工作视角(管理、建模、开发、运维)能做什么?