Files

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

全自动完成:

  1. 同步你本地最新策略代码到 NAS
  2. 重启 Docker 容器
  3. 自动运行回测
  4. 自动保存结果
  5. 输出回测统计结果

全程不用你管,等着看结果就行! 🎉


🚀 使用方法(给姜维)

🔧 你修改了 vnpy 框架/修复了 bug/新增了功能,需要重建环境:

# 只有姜维能用这个命令!
cd management/cicd
./sanguo_nas_ci_cd.sh

全自动完成:

  1. 同步本地最新完整代码(包括 vnpy 框架)到 NAS
  2. 停止旧容器
  3. 完全重新构建 Docker 镜像(包含所有修改)
  4. 启动新容器
  5. 运行回测验证
  6. 保存结果

🛟 特殊情况:rsync 同步有权限问题

cd management/cicd
./sync_with_tar.sh

📊 回测结果在哪里

结果自动保存到两个地方

  1. 全局汇总

    • NAS: /volume1/stock/sanguo_vnpy/backtest_results/
    • 本地: ./backtest_results/
  2. 和策略放在一起(便于查看)

    • ./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
维护负责人: 姜维