天勤图形化调试与策略运行器:IDE 插件与本地脚本怎么统一
前言我们组有过经典场面同事用 VSCode 插件点「运行策略」我这边python main.py也启动了两边以为对方没跑其实两个进程都在下单——模拟盘双倍成交风控电话打来才知道。还有一次是插件读的是config/backtest.yaml命令行读的是当前目录的./config.yaml回测区间差了一年开会争了半小时谁对谁错。天勤 devtools 里有策略运行器、回测启动、VSCode 扩展等strategyrun.rst、strategybacktest.rst、vscode.rst工具本身没问题问题是团队没约定「生产只认一种入口」。我现在的规矩是生产只有python main.py --mode live插件只给个人调试Notebook 不许当生产入口。下面写两条轨为什么容易分叉、怎么对齐以及升级版本后为什么要重对一遍路径。一、两条轨差在哪不是「谁好用」差异点插件 / 图形运行器命令行python main.py工作目录 cwdIDE 里 often 是项目根也可能配错你从哪 cd 进来就是哪配置文件GUI 里点选容易点到旧文件相对路径随 cwd 变Python 解释器IDE 选的 venv服务器可能是系统 python日志目录有时在临时目录脚本里logs/这些差异在单机回测时不明显一上模拟/实盘路径错就是静默错进程在跑用的却是另一套合约或另一段日期。二、统一四件事我们写在 README 里唯一入口main.py参数用--mode backtest|sim|live。配置根目录config.yaml或.env路径用Path(__file__).parent拼禁止裸相对路径。解释器.venv路径写进README和 VSCode 设置模板新人 clone 后照抄。日志绝对路径或基于项目根的logs/日志首行打印mode、cwd、配置版本、合约列表。frompathlibimportPath ROOTPath(__file__).resolve().parent LOG_DIRROOT/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是怕半夜电话。FAQ1必须装插件吗不必命令行足够插件是加速器。2插件回测和脚本回测结果不同先对齐 cwd、配置、区间、合约、手续费五件事。3断点会卡死行情吗长暂停有风险短时调试通常可接受。4多策略多个 launch 配置可以每个策略一份cwd 都指向各自 ROOT。5服务器没 GUI只用命令行 日志 可选 Web 监控。风险提示本文用于期货量化技术实践讨论不构成投资建议。