6.7 案例二:量化策略的版本管理与回退
面向经管学生、研究者与从业者的 AI 智能体设计教材
场景如下:你维护一个均线交叉策略,当前主线版本运行稳定。现在想试验把短期均线从 5 日改为 10 日,同时调整止损阈值。试验如果效果不好,需要干净地回退到原版本。
项目目录
ma-crossover-strategy/
├── strategy/ # 策略代码
│ ├── signal.py # 信号生成(均线计算与交叉判定)
│ └── risk.py # 风控模块(止损与仓位管理)
├── backtest/ # 回测脚本与结果
│ ├── run_backtest.py
│ └── results/
├── data/ # 行情数据(写入 .gitignore)
│ └── hs300_daily.csv
└── CLAUDE.mdstrategy/ 存放核心逻辑,backtest/ 存放回测代码和输出。行情数据体量大,不纳入 Git 跟踪。
用户操作
参数调整属于试验性改动,不应直接在主线上操作。在 Claude Code 中输入:
▶ Claude Code
从当前 main 分支创建一个新分支 exp/ma10-stoploss,切换过去。
然后做两步修改,分开提交:
第一步:打开 strategy/signal.py,把 SHORT_MA_WINDOW 从 5 改为 10。
提交信息写"试验:短期均线窗口从 5 日改为 10 日"。
第二步:打开 strategy/risk.py,把 STOP_LOSS_PCT 从 0.03 改为 0.05。
提交信息写"试验:止损阈值从 3% 放宽至 5%"。
完成后运行 git log --oneline -n 3 确认。
智能体执行 git checkout -b exp/ma10-stoploss 创建分支,然后分两次提交完成参数修改。此时 main 分支上的代码完全不受影响。
回退到主线
回测结果显示最大回撤明显增大,这组参数不可取。回退操作:
▶ Claude Code
这组参数试验效果不好。切回 main 分支,然后删除 exp/ma10-stoploss 分支。
运行 git branch 确认分支已清理。
智能体执行 git checkout main → git branch -D exp/ma10-stoploss,工作区恢复到试验前的状态。两次参数修改的提交记录随分支一起消失,主线历史保持干净。
分支隔离的价值
改动被隔离在独立分支上,主线代码始终可用。试验成功就合入,失败就丢弃,不需要手动撤销每一处修改。