docs: 建立完整的项目文档体系
- 创建6大文档分类:需求/设计/API/用户指南/运维/研究 - 添加各目录的 README 和模板说明 - 定义文档命名规范和编写规范 - 建立文档与代码的对应关系 文档目录结构: ├── requirements/ - 业务需求、功能需求、非功能需求 ├── design/ - 架构设计、数据库设计、UI设计、集成设计 ├── api/ - REST API、事件定义、内部接口 ├── user_guide/ - 快速开始、教程、FAQ ├── operations/ - 部署、监控、故障排查 └── research/ - 因子研究、策略研究、回测报告 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+109
@@ -0,0 +1,109 @@
|
||||
# Sanguo VeighNa 文档中心
|
||||
|
||||
本目录包含项目的完整文档体系。
|
||||
|
||||
## 📚 文档目录
|
||||
|
||||
### 1. 需求文档 (`requirements/`)
|
||||
业务需求、功能需求和非功能需求的存放位置。
|
||||
|
||||
- **business/** - 业务需求文档 (BRD)
|
||||
- **functional/** - 功能需求文档和用户故事
|
||||
- **non_functional/** - 非功能需求(性能、安全等)
|
||||
|
||||
**查看详情**: [requirements/README.md](requirements/README.md)
|
||||
|
||||
---
|
||||
|
||||
### 2. 设计文档 (`design/`)
|
||||
技术架构和详细设计文档。
|
||||
|
||||
- **architecture/** - 系统架构设计
|
||||
- **database/** - 数据库设计
|
||||
- **ui/** - 界面设计和原型
|
||||
- **integration/** - 接口和集成设计
|
||||
|
||||
**查看详情**: [design/README.md](design/README.md)
|
||||
|
||||
---
|
||||
|
||||
### 3. API 文档 (`api/`)
|
||||
接口定义和 API 规范。
|
||||
|
||||
- **rest/** - REST API 文档
|
||||
- **event/** - 事件定义和说明
|
||||
- **internal/** - 内部接口定义
|
||||
|
||||
**查看详情**: [api/README.md](api/README.md)
|
||||
|
||||
---
|
||||
|
||||
### 4. 用户指南 (`user_guide/`)
|
||||
面向终端用户的使用文档。
|
||||
|
||||
- **quick_start/** - 快速开始指南
|
||||
- **tutorials/** - 详细教程
|
||||
- **faq/** - 常见问题
|
||||
|
||||
**查看详情**: [user_guide/README.md](user_guide/README.md)
|
||||
|
||||
---
|
||||
|
||||
### 5. 运维文档 (`operations/`)
|
||||
系统部署、监控和故障排查。
|
||||
|
||||
- **deployment/** - 部署文档
|
||||
- **monitoring/** - 监控指标和告警
|
||||
- **troubleshooting/** - 故障排查手册
|
||||
|
||||
**查看详情**: [operations/README.md](operations/README.md)
|
||||
|
||||
---
|
||||
|
||||
### 6. 量化研究 (`research/`)
|
||||
因子、策略和回测报告。
|
||||
|
||||
- **factors/** - 因子研究文档
|
||||
- **strategies/** - 策略说明文档
|
||||
- **backtests/** - 回测报告
|
||||
|
||||
**查看详情**: [research/README.md](research/README.md)
|
||||
|
||||
---
|
||||
|
||||
## 📝 文档规范
|
||||
|
||||
### 命名规范
|
||||
|
||||
| 类型 | 格式 | 示例 |
|
||||
|-----|------|------|
|
||||
| 业务需求 | `brd-XXX.md` | `brd-001-平台概述.md` |
|
||||
| 功能需求 | `feature-XXX-模块-功能.md` | `feature-001-gateway-ctp.md` |
|
||||
| 设计文档 | `system-名称.md` | `system-交易核心.md` |
|
||||
| API 文档 | `gateway-接口名.md` | `gateway-ctp-api.md` |
|
||||
| 用户文档 | `主题.md` | `installation.md` |
|
||||
|
||||
### 编写规范
|
||||
|
||||
1. 使用 Markdown 格式
|
||||
2. 代码块指定语言
|
||||
3. 添加必要的图表和示例
|
||||
4. 保持与代码同步更新
|
||||
5. 使用中文编写,技术术语保留英文
|
||||
|
||||
---
|
||||
|
||||
## 🔗 快速链接
|
||||
|
||||
- [开发指南](development.md)
|
||||
- [项目 README](../README.md)
|
||||
- [变更日志](../CHANGELOG.md)
|
||||
- [Gitea 仓库](http://192.168.2.154:3000/sanguo/sanguo_vnpy_v2)
|
||||
|
||||
---
|
||||
|
||||
## 📋 文档更新记录
|
||||
|
||||
| 日期 | 文档 | 变更说明 |
|
||||
|-----|------|---------|
|
||||
| 2025-07-01 | 全部 | 初始化文档体系 |
|
||||
@@ -0,0 +1,188 @@
|
||||
# API 文档目录
|
||||
|
||||
本目录用于存放项目的 API 设计文档。
|
||||
|
||||
## 目录结构
|
||||
|
||||
```
|
||||
api/
|
||||
├── rest/ # REST API
|
||||
│ ├── v1/ # API版本
|
||||
│ │ ├── trading.md
|
||||
│ │ └── data.md
|
||||
│ └── openapi.json # OpenAPI规范
|
||||
├── event/ # 事件定义
|
||||
│ ├── trading_events.md
|
||||
│ └── data_events.md
|
||||
└── internal/ # 内部接口
|
||||
├── gateway_interface.md
|
||||
└── engine_interface.md
|
||||
```
|
||||
|
||||
## 事件定义模板
|
||||
|
||||
### trading_events.md
|
||||
|
||||
```markdown
|
||||
# 交易事件定义
|
||||
|
||||
基于 VeighNa 事件系统,扩展自定义事件。
|
||||
|
||||
## 标准事件(来自 VeighNa)
|
||||
|
||||
| 事件名 | 类型 | 数据对象 | 触发时机 |
|
||||
|-------|------|---------|---------|
|
||||
| EVENT_TICK | eTick | TickData | 行情更新 |
|
||||
| EVENT_ORDER | eOrder | OrderData | 委托状态变化 |
|
||||
| EVENT_TRADE | eTrade | TradeData | 成交回报 |
|
||||
| EVENT_POSITION | ePosition | PositionData | 持仓变化 |
|
||||
| EVENT_ACCOUNT | eAccount | AccountData | 账户变化 |
|
||||
| EVENT_CONTRACT | eContract | ContractData | 合约信息 |
|
||||
| EVENT_LOG | eLog | LogData | 日志输出 |
|
||||
|
||||
## 自定义事件
|
||||
|
||||
### EVENT_RISK_ALERT
|
||||
|
||||
风险预警事件
|
||||
|
||||
```python
|
||||
from vnpy.event import Event
|
||||
|
||||
EVENT_RISK_ALERT = "eRiskAlert"
|
||||
|
||||
class RiskAlertData:
|
||||
"""风险预警数据"""
|
||||
def __init__(
|
||||
self,
|
||||
alert_type: str,
|
||||
level: str,
|
||||
message: str,
|
||||
vt_symbol: str = "",
|
||||
) -> None:
|
||||
self.alert_type = alert_type # 预警类型
|
||||
self.level = level # 预警级别
|
||||
self.message = message # 预警信息
|
||||
self.vt_symbol = vt_symbol # 合约标识
|
||||
```
|
||||
|
||||
## 事件处理示例
|
||||
|
||||
```python
|
||||
from vnpy.event import EventEngine
|
||||
from vnpy.trader.engine import MainEngine
|
||||
|
||||
def on_tick(event: Event) -> None:
|
||||
"""处理行情事件"""
|
||||
tick: TickData = event.data
|
||||
# 处理逻辑
|
||||
pass
|
||||
|
||||
event_engine: EventEngine = ...
|
||||
event_engine.register(EVENT_TICK, on_tick)
|
||||
```
|
||||
```
|
||||
|
||||
## REST API 模板
|
||||
|
||||
### trading.md
|
||||
|
||||
```markdown
|
||||
# 交易 REST API
|
||||
|
||||
## 基础信息
|
||||
|
||||
- Base URL: `http://localhost:8000/api/v1`
|
||||
- 认证方式: Bearer Token
|
||||
- 数据格式: JSON
|
||||
|
||||
## 接口列表
|
||||
|
||||
### 1. 发单
|
||||
|
||||
**POST** `/orders`
|
||||
|
||||
```json
|
||||
{
|
||||
"symbol": "IF2412",
|
||||
"exchange": "CFFEX",
|
||||
"direction": "LONG",
|
||||
"offset": "OPEN",
|
||||
"price": 3500.0,
|
||||
"volume": 1,
|
||||
"price_type": "LIMIT"
|
||||
}
|
||||
```
|
||||
|
||||
**响应**
|
||||
```json
|
||||
{
|
||||
"status": "success",
|
||||
"data": {
|
||||
"order_id": "ORDER123456",
|
||||
"vt_orderid": "CTP.ORDER123456"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 2. 撤单
|
||||
|
||||
**DELETE** `/orders/{order_id}`
|
||||
|
||||
### 3. 查询持仓
|
||||
|
||||
**GET** `/positions`
|
||||
|
||||
## 错误码
|
||||
|
||||
| 错误码 | 说明 |
|
||||
|-------|------|
|
||||
| 400 | 参数错误 |
|
||||
| 401 | 未授权 |
|
||||
| 500 | 服务器错误 |
|
||||
```
|
||||
|
||||
## 内部接口模板
|
||||
|
||||
### gateway_interface.md
|
||||
|
||||
```markdown
|
||||
# Gateway 接口定义
|
||||
|
||||
自定义交易接口需要实现的标准接口。
|
||||
|
||||
## 必须实现的方法
|
||||
|
||||
```python
|
||||
from abc import ABC, abstractmethod
|
||||
from vnpy.trader.gateway import BaseGateway
|
||||
from vnpy.trader.object import (
|
||||
OrderRequest,
|
||||
CancelRequest,
|
||||
SubscribeRequest,
|
||||
)
|
||||
|
||||
class CustomGateway(BaseGateway):
|
||||
default_name: str = "CUSTOM"
|
||||
|
||||
def connect(self, setting: dict) -> None:
|
||||
"""连接接口"""
|
||||
pass
|
||||
|
||||
def close(self) -> None:
|
||||
"""关闭连接"""
|
||||
pass
|
||||
|
||||
def subscribe(self, req: SubscribeRequest) -> None:
|
||||
"""订阅行情"""
|
||||
pass
|
||||
|
||||
def send_order(self, req: OrderRequest) -> str:
|
||||
"""发单"""
|
||||
pass
|
||||
|
||||
def cancel_order(self, req: CancelRequest) -> None:
|
||||
"""撤单"""
|
||||
pass
|
||||
```
|
||||
```
|
||||
@@ -0,0 +1,145 @@
|
||||
# 设计文档目录
|
||||
|
||||
本目录用于存放项目的技术设计文档。
|
||||
|
||||
## 目录结构
|
||||
|
||||
```
|
||||
design/
|
||||
├── architecture/ # 架构设计
|
||||
│ ├── system-*.md # 系统架构
|
||||
│ ├── module-*.md # 模块设计
|
||||
│ └── sequence-*.md # 时序图
|
||||
├── database/ # 数据库设计
|
||||
│ ├── schema-*.md # 数据表结构
|
||||
│ └── erd-*.md # ER图
|
||||
├── ui/ # 界面设计
|
||||
│ ├── mockup-*.md # 界面原型
|
||||
│ └── workflow-*.md # 交互流程
|
||||
└── integration/ # 集成设计
|
||||
├── gateway-*.md # 接口集成
|
||||
└── protocol-*.md # 协议定义
|
||||
```
|
||||
|
||||
## 文档命名规范
|
||||
|
||||
| 类型 | 命名格式 | 示例 |
|
||||
|-----|---------|------|
|
||||
| 系统架构 | `system-名称.md` | `system-交易核心.md` |
|
||||
| 模块设计 | `module-模块名.md` | `module-order-engine.md` |
|
||||
| 数据表 | `schema-表名.md` | `schema-orders.md` |
|
||||
| 原型设计 | `mockup-页面名.md` | `mockup-交易面板.md` |
|
||||
| 接口设计 | `gateway-接口名.md` | `gateway-ctp-api.md` |
|
||||
|
||||
## 设计文档模板
|
||||
|
||||
### 系统架构设计模板
|
||||
|
||||
```markdown
|
||||
# [系统名称] 架构设计
|
||||
|
||||
## 1. 概述
|
||||
<!-- 系统定位和目标 -->
|
||||
|
||||
## 2. 架构原则
|
||||
<!-- 设计原则 -->
|
||||
|
||||
## 3. 分层架构
|
||||
```mermaid
|
||||
graph TB
|
||||
A[表现层] --> B[业务层]
|
||||
B --> C[数据层]
|
||||
```
|
||||
|
||||
## 4. 核心组件
|
||||
### 4.1 组件A
|
||||
- 职责
|
||||
- 接口
|
||||
- 依赖
|
||||
|
||||
## 5. 数据流
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
A->>B: 请求
|
||||
B->>C: 处理
|
||||
```
|
||||
|
||||
## 6. 扩展点
|
||||
<!-- 可扩展的设计点 -->
|
||||
|
||||
## 7. 技术选型
|
||||
| 技术 | 用途 | 理由 |
|
||||
|-----|------|------|
|
||||
| Python | 核心语言 | VeighNa基础 |
|
||||
```
|
||||
|
||||
### 模块设计模板
|
||||
|
||||
```markdown
|
||||
# [模块名称] 模块设计
|
||||
|
||||
## 1. 模块职责
|
||||
<!-- 单一职责描述 -->
|
||||
|
||||
## 2. 类设计
|
||||
### 2.1 ClassA
|
||||
```python
|
||||
class ClassA:
|
||||
"""类说明"""
|
||||
def method1(self) -> None:
|
||||
"""方法说明"""
|
||||
pass
|
||||
```
|
||||
|
||||
## 3. 状态机
|
||||
```mermaid
|
||||
stateDiagram-v2
|
||||
[*] --> Created
|
||||
Created --> Active
|
||||
Active --> Closed
|
||||
```
|
||||
|
||||
## 4. 接口定义
|
||||
```python
|
||||
from abc import ABC, abstractmethod
|
||||
|
||||
class InterfaceA(ABC):
|
||||
@abstractmethod
|
||||
def method(self) -> None:
|
||||
pass
|
||||
```
|
||||
|
||||
## 5. 异常处理
|
||||
| 异常 | 触发条件 | 处理方式 |
|
||||
|-----|---------|---------|
|
||||
| ExceptionA | 条件A | 方式A |
|
||||
|
||||
## 6. 性能考虑
|
||||
<!-- 性能指标和优化策略 -->
|
||||
```
|
||||
|
||||
## 设计评审流程
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
A[设计草稿] --> B[团队评审]
|
||||
B --> C{通过?}
|
||||
C -->|否| A
|
||||
C -->|是| D[设计定稿]
|
||||
D --> E[开发实施]
|
||||
```
|
||||
|
||||
## 设计原则
|
||||
|
||||
1. **SOLID 原则**
|
||||
- 单一职责
|
||||
- 开闭原则
|
||||
- 里氏替换
|
||||
- 接口隔离
|
||||
- 依赖倒置
|
||||
|
||||
2. **量化平台特有原则**
|
||||
- 数据一致性优先
|
||||
- 低延迟要求
|
||||
- 高可用保障
|
||||
- 风险控制内置
|
||||
@@ -0,0 +1,204 @@
|
||||
# 运维文档目录
|
||||
|
||||
本目录用于存放系统运维相关的文档。
|
||||
|
||||
## 目录结构
|
||||
|
||||
```
|
||||
operations/
|
||||
├── deployment/ # 部署文档
|
||||
│ ├── local.md
|
||||
│ ├── server.md
|
||||
│ └── docker.md
|
||||
├── monitoring/ # 监控文档
|
||||
│ ├── metrics.md
|
||||
│ ├── alerts.md
|
||||
│ └── logging.md
|
||||
└── troubleshooting/ # 故障排查
|
||||
├── common.md
|
||||
├── critical.md
|
||||
└── recovery.md
|
||||
```
|
||||
|
||||
## 文档命名规范
|
||||
|
||||
| 类型 | 命名格式 | 示例 |
|
||||
|-----|---------|------|
|
||||
| 部署文档 | `deployment/环境.md` | `deployment/server.md` |
|
||||
| 监控文档 | `monitoring/类型.md` | `monitoring/metrics.md` |
|
||||
| 故障排查 | `troubleshooting/级别-主题.md` | `troubleshooting/critical-order.md` |
|
||||
|
||||
## 部署文档模板
|
||||
|
||||
### deployment/server.md
|
||||
|
||||
```markdown
|
||||
# 服务器部署指南
|
||||
|
||||
## 环境准备
|
||||
|
||||
### 硬件要求
|
||||
- CPU: 4核+
|
||||
- 内存: 8GB+
|
||||
- 磁盘: 100GB+
|
||||
|
||||
### 软件要求
|
||||
- OS: Ubuntu 22.04 LTS+
|
||||
- Python: 3.10+
|
||||
- 数据库: PostgreSQL 14+
|
||||
|
||||
## 部署步骤
|
||||
|
||||
### 1. 安装依赖
|
||||
|
||||
\`\`\`bash
|
||||
sudo apt update
|
||||
sudo apt install python3.11 python3.11-venv postgresql
|
||||
\`\`\`
|
||||
|
||||
### 2. 配置数据库
|
||||
|
||||
\`\`\`bash
|
||||
sudo -u postgres createdb sanguo_trading
|
||||
sudo -u postgres psql -c "CREATE USER sanguo WITH PASSWORD 'xxx';"
|
||||
sudo -u postgres psql -c "GRANT ALL ON DATABASE sanguo_trading TO sanguo;"
|
||||
\`\`\`
|
||||
|
||||
### 3. 部署应用
|
||||
|
||||
\`\`\`bash
|
||||
git clone http://192.168.2.154:3000/sanguo/sanguo_vnpy_v2
|
||||
cd sanguo_vnpy_v2
|
||||
python3.11 -m venv venv
|
||||
source venv/bin/activate
|
||||
pip install -r requirements/base.txt
|
||||
\`\`\`
|
||||
|
||||
### 4. 配置服务
|
||||
|
||||
创建 systemd 服务文件...
|
||||
|
||||
### 5. 启动服务
|
||||
|
||||
\`\`\`bash
|
||||
sudo systemctl start sanguo-trader
|
||||
sudo systemctl enable sanguo-trader
|
||||
\`\`\`
|
||||
|
||||
## 验证部署
|
||||
|
||||
\`\`\`bash
|
||||
curl http://localhost:8000/health
|
||||
\`\`\`
|
||||
```
|
||||
|
||||
## 监控文档模板
|
||||
|
||||
### monitoring/metrics.md
|
||||
|
||||
```markdown
|
||||
# 系统监控指标
|
||||
|
||||
## 核心指标
|
||||
|
||||
### 交易相关
|
||||
| 指标 | 说明 | 告警阈值 |
|
||||
|-----|------|---------|
|
||||
| order_latency | 订单延迟 | >100ms |
|
||||
| order_success_rate | 订单成功率 | <99% |
|
||||
| position_sync_rate | 持仓同步率 | <95% |
|
||||
| tick_delay | 行情延迟 | >500ms |
|
||||
|
||||
### 系统相关
|
||||
| 指标 | 说明 | 告警阈值 |
|
||||
|-----|------|---------|
|
||||
| cpu_usage | CPU使用率 | >80% |
|
||||
| memory_usage | 内存使用率 | >85% |
|
||||
| disk_io | 磁盘IO | >90% |
|
||||
|
||||
## 告警规则
|
||||
|
||||
\`\`\`yaml
|
||||
alerts:
|
||||
- name: OrderDelay
|
||||
condition: order_latency > 100
|
||||
action: send_alert
|
||||
severity: warning
|
||||
\`\`\`
|
||||
|
||||
## 监控工具
|
||||
|
||||
- Prometheus + Grafana
|
||||
- 日志分析
|
||||
```
|
||||
|
||||
## 故障排查模板
|
||||
|
||||
### troubleshooting/critical.md
|
||||
|
||||
```markdown
|
||||
# 紧急故障处理手册
|
||||
|
||||
## 故障分级
|
||||
|
||||
| 级别 | 描述 | 响应时间 |
|
||||
|-----|------|---------|
|
||||
| P0 | 系统不可用 | 15分钟 |
|
||||
| P1 | 核心功能异常 | 1小时 |
|
||||
| P2 | 部分功能异常 | 4小时 |
|
||||
| P3 | 轻微问题 | 1个工作日 |
|
||||
|
||||
## 常见紧急场景
|
||||
|
||||
### 场景1: 订单无法下发
|
||||
|
||||
**症状**
|
||||
- 订单一直处于提交中状态
|
||||
- 日志显示连接超时
|
||||
|
||||
**排查步骤**
|
||||
1. 检查网络连接
|
||||
2. 检查接口状态
|
||||
3. 查看错误日志
|
||||
|
||||
**解决方案**
|
||||
\`\`\`bash
|
||||
# 重启接口连接
|
||||
systemctl restart sanguo-gateway
|
||||
\`\`\`
|
||||
|
||||
### 场景2: 行情中断
|
||||
|
||||
**症状**
|
||||
- K线图不再更新
|
||||
- Tick 数据停止
|
||||
|
||||
**排查步骤**
|
||||
...
|
||||
|
||||
## 紧急联系人
|
||||
|
||||
| 角色 | 姓名 | 电话 |
|
||||
|-----|------|------|
|
||||
| 开发负责人 | xxx | xxx |
|
||||
| 运维负责人 | xxx | xxx |
|
||||
| 业务负责人 | xxx | xxx |
|
||||
```
|
||||
|
||||
## 运维检查清单
|
||||
|
||||
### 日常检查(每日)
|
||||
- [ ] 系统运行状态
|
||||
- [ ] 接口连接状态
|
||||
- [ ] 错误日志检查
|
||||
- [ ] 数据备份确认
|
||||
|
||||
### 周期检查(每周)
|
||||
- [ ] 磁盘空间检查
|
||||
- [ ] 性能指标分析
|
||||
- [ ] 安全补丁更新
|
||||
|
||||
### 月度检查(每月)
|
||||
- [ ] 备份恢复测试
|
||||
- [ ] 灾备演练
|
||||
- [ ] 容量规划评估
|
||||
@@ -0,0 +1,99 @@
|
||||
# 需求文档目录
|
||||
|
||||
本目录用于存放项目各阶段的需求文档。
|
||||
|
||||
## 目录结构
|
||||
|
||||
```
|
||||
requirements/
|
||||
├── business/ # 业务需求
|
||||
│ ├── brd-001.md # 业务需求文档
|
||||
│ └── market-*.md # 市场调研文档
|
||||
├── functional/ # 功能需求
|
||||
│ ├── epic-*.md # 史诗级需求
|
||||
│ ├── feature-*.md # 功能需求
|
||||
│ └── story-*.md # 用户故事
|
||||
└── non_functional/ # 非功能需求
|
||||
├── performance.md # 性能需求
|
||||
├── security.md # 安全需求
|
||||
└── reliability.md # 可靠性需求
|
||||
```
|
||||
|
||||
## 文档命名规范
|
||||
|
||||
| 类型 | 命名格式 | 示例 |
|
||||
|-----|---------|------|
|
||||
| 业务需求 | `brd-XXX.md` | `brd-001-平台概述.md` |
|
||||
| 功能史诗 | `epic-XXX.md` | `epic-001-交易模块.md` |
|
||||
| 功能需求 | `feature-XXX-模块-功能.md` | `feature-001-gateway-ctp.md` |
|
||||
| 用户故事 | `story-XXX.md` | `story-001-订单撤单.md` |
|
||||
| 接口需求 | `api-XXX.md` | `api-001-行情接口.md` |
|
||||
|
||||
## 文档模板
|
||||
|
||||
### 业务需求文档 (BRD) 模板
|
||||
|
||||
创建 `business/brd-template.md`:
|
||||
|
||||
```markdown
|
||||
# [项目名称] 业务需求文档
|
||||
|
||||
## 1. 项目背景
|
||||
<!-- 项目背景和市场环境 -->
|
||||
|
||||
## 2. 业务目标
|
||||
<!-- 量化的业务目标 -->
|
||||
|
||||
## 3. 目标用户
|
||||
<!-- 用户画像和需求分析 -->
|
||||
|
||||
## 4. 业务范围
|
||||
<!-- 在范围内/外 -->
|
||||
|
||||
## 5. 竞争分析
|
||||
<!-- 竞品分析 -->
|
||||
|
||||
## 6. 成功指标
|
||||
<!-- KPI定义 -->
|
||||
```
|
||||
|
||||
### 功能需求文档模板
|
||||
|
||||
创建 `functional/feature-template.md`:
|
||||
|
||||
```markdown
|
||||
# [功能名称] 需求文档
|
||||
|
||||
## 需求概述
|
||||
<!-- 一句话描述 -->
|
||||
|
||||
## 用户角色
|
||||
<!-- 谁会使用这个功能 -->
|
||||
|
||||
## 功能描述
|
||||
<!-- 详细功能说明 -->
|
||||
|
||||
## 验收标准
|
||||
- [ ] 标准1
|
||||
- [ ] 标准2
|
||||
|
||||
## 优先级
|
||||
P0 / P1 / P2 / P3
|
||||
|
||||
## 依赖关系
|
||||
<!-- 依赖的其他需求 -->
|
||||
|
||||
## 相关链接
|
||||
- Issue: #xxx
|
||||
- 设计文档: ../design/xxx.md
|
||||
```
|
||||
|
||||
## 工作流程
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
A[业务需求] --> B[功能分解]
|
||||
B --> C[技术评审]
|
||||
C --> D[排期开发]
|
||||
D --> E[验收测试]
|
||||
```
|
||||
@@ -0,0 +1,233 @@
|
||||
# 量化研究目录
|
||||
|
||||
本目录用于存放量化投研相关的文档和成果。
|
||||
|
||||
## 目录结构
|
||||
|
||||
```
|
||||
research/
|
||||
├── factors/ # 因子研究
|
||||
│ ├── alpha/ # Alpha因子
|
||||
│ ├── technical/ # 技术因子
|
||||
│ ├── fundamental/# 基本面因子
|
||||
│ └── risk/ # 风险因子
|
||||
├── strategies/ # 策略研究
|
||||
│ ├── cta/ # CTA策略
|
||||
│ ├── alpha/ # Alpha策略
|
||||
│ ├── arbitrage/ # 套利策略
|
||||
│ └── option/ # 期权策略
|
||||
└── backtests/ # 回测报告
|
||||
├── summary/ # 回测汇总
|
||||
├── detail/ # 详细报告
|
||||
└── analysis/ # 分析报告
|
||||
```
|
||||
|
||||
## 文档命名规范
|
||||
|
||||
| 类型 | 命名格式 | 示例 |
|
||||
|-----|---------|------|
|
||||
| 因子文档 | `factors/分类/因子名.md` | `factors/alpha/momentum.md` |
|
||||
| 策略文档 | `strategies/分类/策略名.md` | `strategies/cta/dual-thrust.md` |
|
||||
| 回测报告 | `backtests/detail/策略_日期.md` | `backtests/detail/dual-thrust_20240101.md` |
|
||||
|
||||
## 因子研究模板
|
||||
|
||||
### factors/alpha/momentum.md
|
||||
|
||||
```markdown
|
||||
# 动量因子研究
|
||||
|
||||
## 因子描述
|
||||
|
||||
动量因子捕捉价格趋势延续性。
|
||||
|
||||
## 计算公式
|
||||
|
||||
\`\`\`python
|
||||
def calculate_momentum(close_prices: pd.Series, period: int = 20) -> pd.Series:
|
||||
\"\"\"
|
||||
计算动量因子
|
||||
|
||||
Parameters
|
||||
----------
|
||||
close_prices : pd.Series
|
||||
收盘价序列
|
||||
period : int
|
||||
计算周期
|
||||
|
||||
Returns
|
||||
-------
|
||||
pd.Series
|
||||
动量因子值
|
||||
\"\"\"
|
||||
return close_prices / close_prices.shift(period) - 1
|
||||
\`\`\`
|
||||
|
||||
## 参数设置
|
||||
|
||||
| 参数 | 默认值 | 说明 |
|
||||
|-----|-------|------|
|
||||
| period | 20 | 计算周期 |
|
||||
|
||||
## 回测结果
|
||||
|
||||
| 指标 | 数值 |
|
||||
|-----|------|
|
||||
| 年化收益 | 8.5% |
|
||||
| 夏普比率 | 1.2 |
|
||||
| 最大回撤 | -12% |
|
||||
|
||||
## 分析结论
|
||||
|
||||
...
|
||||
|
||||
## 参考文献
|
||||
|
||||
- Jegadeesh, N., & Titman, S. (1993). Returns to Buying Winners and Selling Losers
|
||||
```
|
||||
|
||||
## 策略研究模板
|
||||
|
||||
### strategies/cta/dual-thrust.md
|
||||
|
||||
```markdown
|
||||
# Dual Thrust 策略
|
||||
|
||||
## 策略概述
|
||||
|
||||
Dual Thrust 是一种突破类策略,基于开盘价波动范围确定上下轨。
|
||||
|
||||
## 策略逻辑
|
||||
|
||||
\`\`\`python
|
||||
class DualThrustStrategy(CtaStrategyTemplate):
|
||||
\"\"\"Dual Thrust 策略\"\"\"
|
||||
|
||||
def __init__(self, cta_engine, strategy_name, vt_symbol, setting):
|
||||
super().__init__(cta_engine, strategy_name, vt_symbol, setting)
|
||||
|
||||
# 参数
|
||||
self.k1 = setting.get("k1", 0.5) # 上轨系数
|
||||
self.k2 = setting.get("k2", 0.5) # 下轨系数
|
||||
|
||||
def on_bar(self, bar):
|
||||
\"\"\"K线回调\"\"\"
|
||||
# 计算上下轨
|
||||
# 判断突破
|
||||
# 下单逻辑
|
||||
pass
|
||||
\`\`\`
|
||||
|
||||
## 参数优化
|
||||
|
||||
| 参数 | 范围 | 步长 |
|
||||
|-----|------|------|
|
||||
| k1 | 0.3-0.7 | 0.05 |
|
||||
| k2 | 0.3-0.7 | 0.05 |
|
||||
|
||||
## 回测表现
|
||||
|
||||
### 股指期货
|
||||
|
||||
| 品种 | 年化收益 | 夏普比率 | 最大回撤 |
|
||||
|-----|---------|---------|---------|
|
||||
| IF | 12% | 1.5 | -15% |
|
||||
| IH | 8% | 1.2 | -12% |
|
||||
| IC | 10% | 1.3 | -14% |
|
||||
|
||||
## 风险提示
|
||||
|
||||
- 趋势市场表现好,震荡市场亏损
|
||||
- 需要做好止损设置
|
||||
```
|
||||
|
||||
## 回测报告模板
|
||||
|
||||
### backtests/detail/report_template.md
|
||||
|
||||
```markdown
|
||||
# 策略回测报告
|
||||
|
||||
## 基本信息
|
||||
|
||||
| 项目 | 数值 |
|
||||
|-----|------|
|
||||
| 策略名称 | xxx |
|
||||
| 回测区间 | 2020-01-01 至 2023-12-31 |
|
||||
| 交易品种 | IF2412 |
|
||||
| 初始资金 | 100万 |
|
||||
|
||||
## 绩效指标
|
||||
|
||||
### 收益指标
|
||||
|
||||
| 指标 | 数值 |
|
||||
|-----|------|
|
||||
| 总收益率 | 50% |
|
||||
| 年化收益率 | 12.5% |
|
||||
| 基准收益率 | 8% |
|
||||
| 超额收益率 | 4.5% |
|
||||
|
||||
### 风险指标
|
||||
|
||||
| 指标 | 数值 |
|
||||
|-----|------|
|
||||
| 波动率 | 15% |
|
||||
| 夏普比率 | 1.25 |
|
||||
| 卡玛比率 | 0.83 |
|
||||
| 最大回撤 | -15% |
|
||||
|
||||
### 交易统计
|
||||
|
||||
| 指标 | 数值 |
|
||||
|-----|------|
|
||||
| 总交易次数 | 500 |
|
||||
| 盈利次数 | 280 |
|
||||
| 亏损次数 | 220 |
|
||||
| 胜率 | 56% |
|
||||
| 盈亏比 | 1.8 |
|
||||
|
||||
## 分析图表
|
||||
|
||||
### 资金曲线
|
||||
\`\`\`
|
||||
[图表]
|
||||
\`\`\`
|
||||
|
||||
### 回撤曲线
|
||||
\`\`\`
|
||||
[图表]
|
||||
\`\`\`
|
||||
|
||||
## 结论与建议
|
||||
|
||||
...
|
||||
```
|
||||
|
||||
## 研究工作流
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
A[因子发现] --> B[因子验证]
|
||||
B --> C[策略构建]
|
||||
C --> D[历史回测]
|
||||
D --> E{通过?}
|
||||
E -->|否| A
|
||||
E -->|是| F[模拟测试]
|
||||
F --> G{通过?}
|
||||
G -->|否| A
|
||||
G -->|是| H[实盘上线]
|
||||
```
|
||||
|
||||
## 数据管理
|
||||
|
||||
### 数据源
|
||||
- 历史行情: 数据库存储
|
||||
- 实时行情: 接口订阅
|
||||
- 基本面: 第三方数据源
|
||||
|
||||
### 数据更新
|
||||
- 日线数据: 每日盘后更新
|
||||
- 分钟数据: 实时更新
|
||||
- 财务数据: 每季度更新
|
||||
```
|
||||
@@ -0,0 +1,149 @@
|
||||
# 用户指南目录
|
||||
|
||||
本目录用于存放面向终端用户的文档。
|
||||
|
||||
## 目录结构
|
||||
|
||||
```
|
||||
user_guide/
|
||||
├── quick_start/ # 快速开始
|
||||
│ ├── installation.md
|
||||
│ ├── first_trade.md
|
||||
│ └── first_strategy.md
|
||||
├── tutorials/ # 教程
|
||||
│ ├── basic/ # 基础教程
|
||||
│ ├── advanced/ # 高级教程
|
||||
│ └── examples/ # 示例代码
|
||||
└── faq/ # 常见问题
|
||||
├── general.md
|
||||
├── trading.md
|
||||
└── strategy.md
|
||||
```
|
||||
|
||||
## 文档命名规范
|
||||
|
||||
| 类型 | 命名格式 | 示例 |
|
||||
|-----|---------|------|
|
||||
| 快速开始 | `quick_start/主题.md` | `quick_start/installation.md` |
|
||||
| 教程 | `tutorials/分类/主题.md` | `tutorials/basic/cta_strategy.md` |
|
||||
| FAQ | `faq/分类.md` | `faq/trading.md` |
|
||||
|
||||
## 快速开始模板
|
||||
|
||||
### installation.md
|
||||
|
||||
```markdown
|
||||
# 安装指南
|
||||
|
||||
## 环境要求
|
||||
|
||||
- Python 3.10+
|
||||
- 推荐使用 Python 3.13
|
||||
|
||||
## 安装步骤
|
||||
|
||||
### Windows
|
||||
|
||||
\`\`\`bash
|
||||
# 1. 下载安装包
|
||||
# 2. 运行安装程序
|
||||
# 3. 验证安装
|
||||
python -c "import sanguo_trader; print(sanguo_trader.__version__)"
|
||||
\`\`\`
|
||||
|
||||
### Linux/Mac
|
||||
|
||||
\`\`\`bash
|
||||
# 1. 克隆仓库
|
||||
git clone http://192.168.2.154:3000/sanguo/sanguo_vnpy_v2
|
||||
|
||||
# 2. 安装依赖
|
||||
cd sanguo_vnpy_v2
|
||||
pip install -r requirements/base.txt
|
||||
|
||||
# 3. 验证安装
|
||||
python -c "import sanguo_trader; print('OK')"
|
||||
\`\`\`
|
||||
|
||||
## 常见问题
|
||||
|
||||
### Q: 安装失败怎么办?
|
||||
A: 检查 Python 版本,使用虚拟环境
|
||||
```
|
||||
|
||||
## 教程模板
|
||||
|
||||
### tutorials/basic/cta_strategy.md
|
||||
|
||||
```markdown
|
||||
# CTA 策略开发教程
|
||||
|
||||
## 概述
|
||||
|
||||
本教程将带你创建一个简单的 CTA 策略。
|
||||
|
||||
## 前置知识
|
||||
|
||||
- Python 基础
|
||||
- 量化交易基本概念
|
||||
|
||||
## 步骤 1: 创建策略类
|
||||
|
||||
\`\`\`python
|
||||
from sanguo_trader.strategy import CtaStrategyTemplate
|
||||
|
||||
class MyStrategy(CtaStrategyTemplate):
|
||||
"""我的第一个策略"""
|
||||
|
||||
def __init__(self, cta_engine, strategy_name, vt_symbol, setting):
|
||||
super().__init__(cta_engine, strategy_name, vt_symbol, setting)
|
||||
|
||||
def on_tick(self, tick):
|
||||
"""行情回调"""
|
||||
pass
|
||||
|
||||
def on_order(self, order):
|
||||
"""委托回调"""
|
||||
pass
|
||||
\`\`\`
|
||||
|
||||
## 步骤 2: 编写交易逻辑
|
||||
|
||||
...
|
||||
|
||||
## 步骤 3: 回测验证
|
||||
|
||||
...
|
||||
|
||||
## 下一步
|
||||
|
||||
- 查看[高级教程](../advanced/)
|
||||
- 查看[策略库](../../research/strategies/)
|
||||
```
|
||||
|
||||
## FAQ 模板
|
||||
|
||||
### faq/trading.md
|
||||
|
||||
```markdown
|
||||
# 交易相关常见问题
|
||||
|
||||
## 委托问题
|
||||
|
||||
### Q: 为什么委托没有成交?
|
||||
A: 可能原因:
|
||||
1. 价格偏离市场价太远
|
||||
2. 市场流动性不足
|
||||
3. 触发了风控规则
|
||||
|
||||
### Q: 如何修改委托价格?
|
||||
A: ...
|
||||
```
|
||||
|
||||
## 文档风格指南
|
||||
|
||||
1. 使用清晰简洁的语言
|
||||
2. 提供可运行的代码示例
|
||||
3. 使用截图说明界面操作
|
||||
4. 保持文档与代码同步更新
|
||||
5. 添加必要的警告和注意事项
|
||||
Reference in New Issue
Block a user