sanguo_quant_live CI/CD 自动化回测
📋 概述
这是 sanguo_quant_live 全自动化回测 CI/CD 流程,全程零干预,一条命令搞定。
👥 明确职责分工
| 角色 | 你是谁 | 你需要做什么 | 你永远不需要做什么 |
|---|---|---|---|
| 各位将军 | 策略开发者 | 写策略 / 改策略 → 一条命令触发回测 → 看结果 | 永远不要碰 vnpy 框架,永远不要执行 sanguo_nas_ci_cd.sh |
| 姜维 | CI/CD 负责人 / vnpy 维护者 | 维护 vnpy 框架 / 修复 bug / 新增功能 → 触发完整重建 | 不需要写策略 |
💡 记住:
- 如果你是将军写策略,你永远只用
./sync_and_redeploy.sh- 如果你是姜维维护框架,你才用
./sanguo_nas_ci_cd.sh
🚀 使用方法(给各位将军)
📝 你写完策略/改完策略,要回测了:
# 记住!你只用这个命令!
cd management/cicd
./sync_and_redeploy.sh
全自动完成:
- ✅ 同步你本地最新策略代码到 NAS
- ✅ 重启 Docker 容器
- ✅ 自动运行回测
- ✅ 自动保存结果
- ✅ 输出回测统计结果
全程不用你管,等着看结果就行! 🎉
🚀 使用方法(给姜维)
🔧 你修改了 vnpy 框架/修复了 bug/新增了功能,需要重建环境:
# 只有姜维能用这个命令!
cd management/cicd
./sanguo_nas_ci_cd.sh
全自动完成:
- ✅ 同步本地最新完整代码(包括 vnpy 框架)到 NAS
- ✅ 停止旧容器
- ✅ 完全重新构建 Docker 镜像(包含所有修改)
- ✅ 启动新容器
- ✅ 运行回测验证
- ✅ 保存结果
🛟 特殊情况:rsync 同步有权限问题
cd management/cicd
./sync_with_tar.sh
📊 回测结果在哪里
结果自动保存到两个地方:
-
全局汇总:
- NAS:
/volume1/stock/sanguo_vnpy/backtest_results/ - 本地:
./backtest_results/
- NAS:
-
和策略放在一起(便于查看):
./strategies/{your_strategy}/backtest_results/- 结果和策略代码放在一起,找起来方便!
每个回测生成两个文件:
{strategy}_{YYYYMMDD_HHMMSS}.txt- 回测统计结果(年化收益、夏普比率、最大回撤、胜率等){strategy}_{YYYYMMDD_HHMMSS}.png- 资金曲线图
🔄 完整工作流
1. 各位将军开发
↓
✍️ 在本地 sanguo_quant_live 写策略 / 改策略
↓
🚀 触发回测(记住只用这个):
cd management/cicd
./sync_and_redeploy.sh
↓
🔄 自动化执行
✓ 同步最新策略到 NAS
✓ 重启容器
✓ 运行回测
✓ 保存结果(全局一份 + 策略目录一份)
↓
👀 各位将军看结果
去你的策略目录下 backtest_results/ 看结果
🛠️ 维护流程(给姜维)
1. 发现 vnpy 框架有 bug / 需要新增功能
↓
🔧 在本地 sanguo_vnpy 修改代码
↓
🚀 触发完整重建:
cd management/cicd
./sanguo_nas_ci_cd.sh
↓
🔄 自动化执行
✓ 同步完整代码到 NAS
✓ 重建 Docker 镜像
✓ 启动新容器
↓
✅ 完成,各位将军继续用
📝 配置信息
- NAS 地址:
192.168.2.154 - NAS 目标目录:
/volume1/stock/sanguo_vnpy/ - 本地项目根目录:
/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/
✨ 方案特点
- 🤖 全程零干预 - 你触发后全自动,不需要任何手动操作
- ⚡ 增量更新 - 策略修改不用重建 Docker,更快出结果
- 🔒 职责隔离 - 将军只管策略,姜维只管框架,互不干扰
- 📂 结果好查找 - 结果同时保存到全局和策略目录,方便查看
- 📊 结果自动保存 - 统计结果 + 资金曲线图都自动保存
- 🎯 分工清晰 - 每个人只干自己擅长的,命令记一个就行
版本: 1.0
最后更新: 2026-03-28
维护负责人: 姜维