Files
sanguo_vnpy_v2/README.md
T
claude_dev 918bbed0fc fix: 修复登录500错误和移除明文密码提示
- 修复 deps.py 中 get_vn_service 的引用错误 (vn_service.vn_service -> vn_service)
- 移除登录页面上的明文密码提示
- 改进前端错误处理,避免数据加载失败导致登录显示错误
2026-07-02 12:23:55 +08:00

241 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 部署(推荐)
#### 本地开发
```bash
# 构建镜像
cd docker
docker-compose build
# 启动服务
docker-compose up -d
# 访问 Web 界面
open http://localhost:8000
```
#### Synology NAS 部署
1. 开启 SSH 服务
2. 上传部署包到 NAS
3. 运行部署脚本:
```bash
cd /volume1/docker/containers/sanguo_vnpy_v2/docker
sudo bash deploy-synology.sh
```
详细说明请参考 [Synology NAS 部署指南](docs/deployment/synology-nas.md)
### 方式 2: 本地开发
#### 环境要求
- Python 3.10+
- 推荐 Python 3.13
#### 安装步骤
```bash
# 创建虚拟环境
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 服务启动
```bash
# 开发模式(端口 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 连接
```javascript
// 连接 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);
};
```
## 测试
```bash
# 运行 API 测试
pytest tests/test_api.py -v
# 运行 WebSocket 测试
python tests/test_websocket.py
# 运行所有测试
pytest tests/ -v
```
## 开发指南
详细开发指南请查看:
- [开发文档](docs/development.md)
- [API 设计文档](docs/api/README.md)
- [部署文档](docs/deployment/README.md)
- [用户指南](docs/user_guide/README.md)
## 主要功能模块
### 1. 认证系统 (`/api/v1/auth`)
- 用户登录/登出
- Token 验证
- 用户信息获取
### 2. 网关管理 (`/api/v1/gateway`)
- 可用网关列表
- 网关连接/断开
- 网关配置管理
### 3. 行情数据 (`/api/v1/market`)
- 实时行情查询
- 行情订阅/取消订阅
- 合约信息查询
### 4. 交易功能 (`/api/v1/trading`)
- 账户信息查询
- 持仓查询
- 订单管理(下单、撤单)
- 成交记录查询
### 5. 策略管理 (`/api/v1/strategy`)
- 策略列表
- 策略启动/停止
- 策略参数配置
## 环境变量
主要环境变量(见 `docker/.env.example`):
```env
# 数据目录
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](CHANGELOG.md)
## 技术栈
- **后端框架**: FastAPI 0.100+
- **WebSocket**: websockets 12.0+
- **数据库**: SQLite (可扩展 PostgreSQL)
- **缓存**: Redis 7+
- **容器**: Docker + Docker Compose
- **认证**: JWT (python-jose)
- **测试**: pytest + httpx
## 许可证
MIT License
## 致谢
基于 [VeighNa](https://github.com/vnpy/vnpy) 框架开发
## 联系方式
- 问题反馈: GitHub Issues
- 文档: `docs/` 目录