6.7 案例二:量化策略的版本管理与回退

面向经管学生、研究者与从业者的 AI 智能体设计教材

作者

李学恒、林建浩、严翊歆

发布于

2026-05-11

场景如下:你维护一个均线交叉策略,当前主线版本运行稳定。现在想试验把短期均线从 5 日改为 10 日,同时调整止损阈值。试验如果效果不好,需要干净地回退到原版本。

项目目录

ma-crossover-strategy/
├── strategy/                    # 策略代码
│   ├── signal.py                # 信号生成(均线计算与交叉判定)
│   └── risk.py                  # 风控模块(止损与仓位管理)
├── backtest/                    # 回测脚本与结果
│   ├── run_backtest.py
│   └── results/
├── data/                        # 行情数据(写入 .gitignore)
│   └── hs300_daily.csv
└── CLAUDE.md

strategy/ 存放核心逻辑,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 maingit branch -D exp/ma10-stoploss,工作区恢复到试验前的状态。两次参数修改的提交记录随分支一起消失,主线历史保持干净。

分支隔离的价值

改动被隔离在独立分支上,主线代码始终可用。试验成功就合入,失败就丢弃,不需要手动撤销每一处修改。