claude_dev 3b3e42985e
CI/CD / test (push) Successful in 9s
CI/CD / nas-deploy (push) Successful in 24s
CI/CD / nas-verify (push) Successful in 3s
fix(datareader): read_index_daily 切 dbbardata(治 benchmark 读陈旧 vnpy DbBarData)
cta_engine benchmark 经 read_index_daily 读 vnpy DbBarData(方案A前陈旧源)。
切 dbbardata(指数点位已由 sina_index_eod 灌 exchange=SSE)。

- 数据源:vnpy get_database.load_bar_data → sqlite3 直连 dbbardata
- 消除覆写 vnpy SETTINGS 副作用(cta_engine.py:73/199)
- 回归坑1(000300读空):CODES 已加 000300 → dbbardata 有数据(本轮修复)
- 回归坑2(sz000905):默认 benchmark sh000300 不触发;中证指数用 sh 前缀
- 复用 provider 模式:substr(datetime,1,10) 比日期规避混合格式
- 测试:mock vnpy → 真实 tmp sqlite 库测 SQL 路径(2测重写)
- 验证:Mac 4+5 passed + VPS 真实库 sh000300 7月23行 close4588.197
2026-08-01 08:41:57 +08:00

Sanguo VeighNa 量化交易平台 v2.0

基于 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 部署

  1. 开启 SSH 服务
  2. 上传部署包到 NAS
  3. 运行部署脚本:
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/ 目录
S
Description
sanguo_vnpy_v2
Readme 24 MiB
Languages
Jupyter Notebook 91.2%
Python 7%
Vue 0.6%
JavaScript 0.4%
HTML 0.2%
Other 0.5%