b7ce364b1164a26ff4b58e0d4aaa3839202892e9
10-04 首班起挂 NAS 月度批评链第四段(run_factor_monthly_standalone.sh): - 15 截面增量前置: 12 quant 源+size_log+在位者 composite_quant12_v2a_szneul +挑战者 composite_quant12_szneul, 各跑 daily_section 220 历日短窗幂等 merge——NAS 截面无每日班(09-25/26 手动快照起点), 批前必然新鲜 - as_of(自然月末)撞周末/节假日: latest_bar_date 归一 ≤as_of 最近日线 bar 日(000001 走 symbol 索引秒回), 防 daily_section sanity raise - 归因双跑同窗同参(全窗锚 2021-07-01 与首跑件一致, 挑战者受其截面 自然窗限制; 挑战者落工作区 challenger/ 子目录=端点 glob 非递归防顶掉) - cp 双投递生效位(--effective-dir): 在位者件→data/attribution/ 根 glob 取最新; 挑战者件→challenger/attribution_<end>_<因子名>.json 带因子名防顶掉; #69 影子 A/B 四周对照的归因侧供给 - fail loud: 截面断供/归因挂/投递缺任一→容器非零→班次 final=1 (静默旧件=红线); 生效位目录容器挂 rw /effective-data, 代码卷恒 :ro - 档随码走: 因子档归因行拆两行(独立 CLI+归因批)+runbook 三段链→四段 (VPS 侧批评三段不镜像 stage4, 归因双跑落 NAS, VPS 归因件=infra 偏差日报链另行供给) - 测试 428→438(归一日/编排序/同窗断言/挑战者子目录/双投递文件名/ fail loud/CLI 冒烟共 10 件) Co-Authored-By: Claude Code <noreply@anthropic.com>
docs:
9eb5883 收尾——CLAUDE.md CI 覆盖句同步 tests/api 第四目录(描述与 ci-cd.yml 实跑面一致,防后续 session 误判盲区仍在) [nas] [no-doc]
fix(data): 审计验收 R1——ak-weekly wrapper 类型调序落 repo(share_capital 挪最后, 防其熔断连坐 fa/top_holders; 验收挂起条件=10-03 班前 repo 含新序, 防只改 VPS 被下次 promote 静默回滚); 与
b34ee53 形状类豁免双层纵深; runbook §7.4 防漂移纪律 [vps]
Sanguo VeighNa 量化交易平台 v2.0
⚠️ 本 README 内容截至 2026-07,架构已大幅迁移(Web 入口=sanguo_api 单进程 8000+Vue 前端、三环境部署、因子体系/流水线/监控均已上线)。当前权威文档:
- 部署/运维:
docs/deployment/vps-production-runbook.md- 发布/晋升:
docs/three-env-code-promote.md- Agent 工作入口:
.claude/CLAUDE.md下方内容仅作历史参考,按其操作(端口/凭据/安装步骤)会失败。
基于 VeighNa 4.4.0 的二次开发量化交易平台,支持 Web 界面和 Docker 容器化部署。
特性
- 🚀 基于 VeighNa 4.4.0 - 最新稳定版本
- 🌐 Web 界面 - FastAPI + WebSocket 实时数据推送
- 🐳 Docker 部署 - 支持 Synology NAS 等容器环境
- 📊 完整功能 - 行情订阅、交易下单、策略管理
- 🔐 安全认证 - JWT Token 认证机制
- 📡 实时推送 - WebSocket 行情、成交、持仓实时更新
项目结构
sanguo_vnpy_v2/
├── vnpy_v4.4.0/ # VeighNa 上游源码
├── sanguo_trader/ # 核心交易模块
├── sanguo_research/ # 量化投研模块
├── sanguo_data/ # 数据管理模块
├── sanguo_common/ # 公共模块
├── sanguo_web/ # Web 服务模块
│ ├── api/ # REST API
│ ├── websocket/ # WebSocket 服务
│ └── services/ # 业务服务
├── docker/ # Docker 配置
│ ├── Dockerfile # 镜像构建
│ ├── docker-compose.yml # 容器编排
│ ├── entrypoint.sh # 启动脚本
│ └── deploy-synology.sh # NAS 部署脚本
├── tests/ # 测试代码
├── docs/ # 文档
└── examples/ # 示例代码
快速开始
方式 1: Docker 部署(推荐)
本地开发
# 构建镜像
cd docker
docker-compose build
# 启动服务
docker-compose up -d
# 访问 Web 界面
open http://localhost:8000
Synology NAS 部署
- 开启 SSH 服务
- 上传部署包到 NAS
- 运行部署脚本:
cd /volume1/docker/containers/sanguo_vnpy_v2/docker
sudo bash deploy-synology.sh
详细说明请参考 Synology NAS 部署指南
方式 2: 本地开发
环境要求
- Python 3.10+
- 推荐 Python 3.13
安装步骤
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# 安装依赖
pip install -r requirements/base.txt
# 启动 Web 服务
python run_web.py
Web 服务启动
# 开发模式(端口 8002)
python run_web.py
# 生产模式
uvicorn sanguo_web.api:app --host 0.0.0.0 --port 8000 --workers 2
API 文档
启动服务后访问:
- Swagger UI:
http://localhost:8000/docs - ReDoc:
http://localhost:8000/redoc
认证
默认登录凭据:
- 用户名:
admin - 密码:
admin123
⚠️ 重要: 首次登录后请立即修改密码!
WebSocket 连接
// 连接 WebSocket
const ws = new WebSocket('ws://localhost:8080');
// 订阅行情
ws.send(JSON.stringify({
type: 'subscribe',
data: { subscription: ['tick', 'order', 'trade'] }
}));
// 接收消息
ws.onmessage = (event) => {
const message = JSON.parse(event.data);
console.log('Received:', message);
};
测试
# 运行 API 测试
pytest tests/test_api.py -v
# 运行 WebSocket 测试
python tests/test_websocket.py
# 运行所有测试
pytest tests/ -v
开发指南
详细开发指南请查看:
主要功能模块
1. 认证系统 (/api/v1/auth)
- 用户登录/登出
- Token 验证
- 用户信息获取
2. 网关管理 (/api/v1/gateway)
- 可用网关列表
- 网关连接/断开
- 网关配置管理
3. 行情数据 (/api/v1/market)
- 实时行情查询
- 行情订阅/取消订阅
- 合约信息查询
4. 交易功能 (/api/v1/trading)
- 账户信息查询
- 持仓查询
- 订单管理(下单、撤单)
- 成交记录查询
5. 策略管理 (/api/v1/strategy)
- 策略列表
- 策略启动/停止
- 策略参数配置
环境变量
主要环境变量(见 docker/.env.example):
# 数据目录
DATA_DIR=/volume1/docker/stock/sanguo_vnpy
# 端口配置
HTTP_PORT=8000
WS_PORT=8080
# 时区
TZ=Asia/Shanghai
# JWT 密钥
JWT_SECRET_KEY=your-secret-key-here
# 数据库
DB_TYPE=sqlite
DB_PATH=/app/data/vnpy.db
分支策略
master- 主分支,保持稳定可部署develop- 开发分支,日常开发合并feature/*- 功能分支hotfix/*- 热修复分支
版本历史
查看 CHANGELOG.md
技术栈
- 后端框架: FastAPI 0.100+
- WebSocket: websockets 12.0+
- 数据库: SQLite (可扩展 PostgreSQL)
- 缓存: Redis 7+
- 容器: Docker + Docker Compose
- 认证: JWT (python-jose)
- 测试: pytest + httpx
许可证
MIT License
致谢
基于 VeighNa 框架开发
联系方式
- 问题反馈: GitHub Issues
- 文档:
docs/目录
Description
Languages
Jupyter Notebook
82.9%
Python
13.9%
Vue
1.5%
TypeScript
0.5%
JavaScript
0.4%
Other
0.7%