feat: Wiki流程图解补全 - 新增风险管理完整流程和回测完整流程(含压力测试、过拟合检测、实盘路径)

这个提交包含在:
Manus Quant Agent
2026-03-05 23:41:14 -05:00
父节点 f75ec58e78
当前提交 97fba8d111
修改 2 个文件,包含 471 行新增0 行删除

查看文件

@@ -0,0 +1,234 @@
# 回测完整流程图解
> 返回:[流程图解目录](./README.md) | [Wiki 主索引](../README.md)
> 相关文档:[回测方法论与实践](../../07_回测框架/回测方法论与实践.md) | [回测名词解释](../名词解释/回测.md) | [tradehk 信号评分引擎](../tradehk/信号评分引擎.md)
---
## 一、回测总体流程
```
┌─────────────────────────────────────────────────────────────┐
│ 量化策略回测 7 步流程 │
└─────────────────────────────────────────────────────────────┘
第一步:数据准备
第二步:策略定义与参数设置
第三步:数据集分割(训练/验证/测试)
第四步:信号生成(严格避免前视偏差)
第五步:参数优化(在验证集上)
第六步:样本外测试(只执行一次)
第七步:结果分析与决策
```
---
## 二、第一步:数据准备流程
```
数据来源选择:
├─ Binance API推荐,数据质量最高
├─ CoinGecko备用,部分历史数据
└─ 本地数据库(已采集的历史数据)
数据质量检查:
├─ 检查缺失 K 线(时间戳连续性)
│ └─ 缺失 > 5%:重新获取或标记为不可用
├─ 检查异常值(单根 K 线涨跌幅 > 50%
│ └─ 确认是否为真实行情或数据错误
├─ 检查成交量(成交量为 0 的 K 线)
│ └─ 标记为低流动性时段,回测时跳过
└─ 时区统一(统一转换为 UTC+8 北京时间)
数据格式标准化:
列名timestamp, open, high, low, close, volume
时间格式Unix 时间戳(毫秒)
价格精度:保留 8 位小数
存储格式Parquet推荐或 CSV
```
### 各品种推荐回测数据量
| 品种 | 最少数据量 | 推荐数据量 | 原因 |
|------|----------|----------|------|
| BTC | 6 个月 | 2 年 | 需覆盖牛熊周期 |
| ETH | 6 个月 | 2 年 | 同 BTC |
| SOL | 3 个月 | 1 年 | 历史数据较短 |
| BNB | 6 个月 | 2 年 | 需覆盖季度销毁 |
| DOGE | 3 个月 | 1 年 | 高度事件驱动 |
| XAUT | 6 个月 | 2 年 | 需覆盖多个宏观周期 |
---
## 三、第三步:数据集分割规则
```
时间顺序分割(不可随机分割!):
总数据时间范围T_start → T_end
├─ 训练集70%T_start → T_split1
│ 用途:策略开发和初步参数设置
├─ 验证集15%T_split1 → T_split2
│ 用途:参数优化和过拟合检测
└─ 测试集15%T_split2 → T_end
用途:最终策略评估(只能使用一次!)
示例2 年数据):
训练集2023-01 至 2024-0416 个月)
验证集2024-04 至 2024-106 个月)
测试集2024-10 至 2025-035 个月)
```
**重要原则**:测试集只能在策略完全确定后使用一次。如果在测试集上调整参数,则测试集实际上变成了验证集,需要重新收集新数据作为真正的测试集。
---
## 四、第四步:信号生成注意事项
### 前视偏差检查清单
```
□ 所有指标计算是否只使用已收线的 K 线数据?
□ EWO 转换信号是否在"已收线确认"后才触发?
□ 入场价格是否使用下一根 K 线的开盘价?
□ ATR 计算是否使用当根 K 线收盘后的数据?
□ 大周期偏向是否使用已完成的 4h K 线?
□ 止损价格是否在入场后才设置(不使用未来数据)?
```
### tradehk 信号系统的正确回测时序
```
时间 TK 线收盘):
→ 计算所有指标(使用 T 及之前的数据)
→ 判断 EWO 是否发生转换
→ 如果触发信号:记录信号,等待下一根 K 线
时间 T+1下一根 K 线开盘):
→ 以 T+1 开盘价执行入场
→ 设置止损价格
时间 T+1 至平仓:
→ 每根 K 线检查止损是否触发
→ 每根 K 线检查是否有反向信号(平仓条件)
```
---
## 五、第五步:参数优化流程
### 网格搜索(适合参数少的情况)
```
定义参数搜索空间:
EWO 幅度阈值:[5, 8, 10, 12, 15, 20]
阶段持续时间阈值:[10, 15, 20, 25, 30]
信号执行分数阈值:[4, 5, 6, 7]
对每个参数组合:
→ 在验证集上运行回测
→ 计算评估指标(夏普比率、卡尔玛比率)
→ 记录结果
选择最优参数:
→ 优先选择夏普比率 > 1.5 的参数组合
→ 在多个优秀组合中选择参数最稳健的(参数稍变化结果不大变)
```
### 过拟合检测
```
计算样本内外性能比IS/OOS Ratio
IS_Sharpe = 训练集夏普比率
OOS_Sharpe = 验证集夏普比率
IS/OOS Ratio = OOS_Sharpe ÷ IS_Sharpe
判断标准:
> 0.7:良好,过拟合风险低
0.5-0.7:一般,谨慎使用
< 0.5:严重过拟合,需要简化策略
```
---
## 六、第七步:结果分析标准
### 通过标准(全部满足才考虑实盘)
| 指标 | 最低要求 | 优秀标准 |
|------|---------|---------|
| 年化收益率 | > 20% | > 50% |
| 夏普比率 | > 1.0 | > 2.0 |
| 最大回撤 | < 25% | < 15% |
| 卡尔玛比率 | > 1.0 | > 2.5 |
| 胜率 | > 45% | > 55% |
| 盈亏比 | > 1.2 | > 2.0 |
| 交易次数 | > 100 | > 300 |
| IS/OOS 比率 | > 0.5 | > 0.7 |
### 压力测试
```
在以下极端场景下重新运行回测:
场景一2025 年 4 月关税战BTC -30%,3 天内)
→ 策略最大回撤是否可接受?
场景二2025 年 10 月黑色星期六($190 亿清算)
→ 策略是否触发连续亏损保护?
场景三:手续费提高 2 倍
→ 策略是否仍然盈利?
场景四:滑点提高 3 倍
→ 策略是否仍然盈利?
全部通过 → 可以考虑模拟盘验证
任一失败 → 需要改进策略后重新回测
```
---
## 七、从回测到实盘的路径
```
回测通过
模拟盘Paper Trading验证至少 1-3 个月
├─ 使用真实市场数据
├─ 不使用真实资金
└─ 记录每笔信号和执行情况
模拟盘结果评估:
├─ 模拟盘夏普比率 ≥ 回测夏普比率 × 0.7?
├─ 模拟盘最大回撤 ≤ 回测最大回撤 × 1.5?
└─ 信号触发频率与回测接近?
小资金实盘(账户 10% 资金):至少 1 个月
全资金实盘
```
---
## 八、相关文档
- [回测方法论与实践](../../07_回测框架/回测方法论与实践.md)
- [回测名词解释](../名词解释/回测.md)
- [夏普比率名词解释](../名词解释/夏普比率.md)
- [最大回撤名词解释](../名词解释/最大回撤.md)
- [tradehk 信号评分引擎](../tradehk/信号评分引擎.md)
- [数据采集与处理流程](./数据采集与处理流程.md)

查看文件

@@ -0,0 +1,237 @@
# 风险管理完整流程图解
> 返回:[流程图解目录](./README.md) | [Wiki 主索引](../README.md)
> 相关文档:[风险管理体系](../../08_风险管理/风险管理体系.md) | [仓位管理](../名词解释/仓位管理.md) | [清算](../名词解释/清算.md) | [Kelly公式](../名词解释/Kelly公式.md)
---
## 一、风险管理总体框架
量化交易的风险管理分为四个层次,从宏观到微观依次管控:
```
┌─────────────────────────────────────────────────────────────┐
│ 风险管理四层架构 │
├─────────────────────────────────────────────────────────────┤
│ 第一层:账户级风险 │
│ ├─ 最大总仓位:账户资产的 50% │
│ ├─ 最大单品种仓位:账户资产的 20% │
│ └─ 最大同时持仓品种数3 个 │
├─────────────────────────────────────────────────────────────┤
│ 第二层:单笔交易风险 │
│ ├─ 单笔最大亏损:账户资产的 1-2% │
│ ├─ 止损方式ATR 动态止损 │
│ └─ 止盈方式ATR 动态止盈 或 信号反转平仓 │
├─────────────────────────────────────────────────────────────┤
│ 第三层:信号质量过滤 │
│ ├─ 信号强度阈值STRONG/MEDIUM/WEAK
│ ├─ EWO 幅度阈值(品种专项) │
│ └─ 大周期偏向过滤(不逆势操作) │
├─────────────────────────────────────────────────────────────┤
│ 第四层:市场环境过滤 │
│ ├─ 宏观事件日历FOMC、财报等
│ ├─ 极端波动过滤VIX > 40 时降低仓位) │
│ └─ 流动性检查(非交易时段屏蔽信号) │
└─────────────────────────────────────────────────────────────┘
```
---
## 二、单笔交易风险控制流程
### 2.1 入场前风险评估
```
收到信号通知
【第一关】信号强度检查
├─ STRONG≥6分→ 继续
├─ MEDIUM4-5分→ 降低仓位 50%,继续
└─ WEAK≤3分→ 拒绝入场,等待更强信号
【第二关】大周期偏向检查
├─ 顺势(信号方向与大周期一致)→ 继续
├─ 中性 → 仓位降低 50%,继续
└─ 逆势(信号方向与大周期相反)→ 拒绝入场
【第三关】账户风险检查
├─ 当前总仓位 < 50%?
│ ├─ 是 → 继续
│ └─ 否 → 拒绝入场(账户已满仓)
├─ 该品种当前仓位 = 0?
│ ├─ 是 → 继续
│ └─ 否 → 检查是否加仓(需更强信号)
└─ 同时持仓品种数 < 3?
├─ 是 → 继续
└─ 否 → 拒绝入场(品种数已满)
【第四关】市场环境检查
├─ 当前是否在宏观事件窗口期?
│ ├─ 是 → 拒绝入场或降低仓位
│ └─ 否 → 继续
└─ 是否在正常交易时段?(代币化美股专用)
├─ 是 → 继续
└─ 否 → 拒绝入场
通过所有检查 → 计算仓位大小 → 执行入场
```
### 2.2 仓位大小计算流程
```
输入账户总资产A、信号强度、当前 ATR(14)
第一步:确定基础风险金额
STRONG 信号:风险金额 = A × 2%
MEDIUM 信号:风险金额 = A × 1%
WEAK 信号:风险金额 = A × 0.5%
第二步:计算止损距离
止损距离 = ATR(14) × 止损倍数
止损倍数STRONG → 1.5,MEDIUM → 2.0,WEAK → 2.5
第三步:计算仓位大小
仓位大小(币数)= 风险金额 ÷ 止损距离
第四步:验证仓位上限
仓位金额 = 仓位大小 × 当前价格
如果仓位金额 > A × 20%
→ 仓位大小 = (A × 20%) ÷ 当前价格
第五步:应用杠杆
实际保证金 = 仓位金额 ÷ 杠杆倍数
确保实际保证金 ≤ A × 20%
```
---
## 三、止损管理流程
### 3.1 ATR 动态止损设置
```
入场后立即设置止损:
做多止损价格 = 入场价格 - ATR(14) × 止损倍数
做空止损价格 = 入场价格 + ATR(14) × 止损倍数
止损倍数对照表:
┌──────────┬──────────┬──────────┬──────────┐
│ 品种 │ STRONG │ MEDIUM │ WEAK │
├──────────┼──────────┼──────────┼──────────┤
│ BTC │ 1.5× │ 2.0× │ 2.5×
│ ETH │ 1.5× │ 2.0× │ 2.5×
│ SOL │ 2.0× │ 2.5× │ 3.0×
│ BNB │ 1.8× │ 2.2× │ 2.8×
│ DOGE │ 2.5× │ 3.0× │ 3.5×
│ XAUT │ 1.8× │ 2.2× │ 2.8×
└──────────┴──────────┴──────────┴──────────┘
```
### 3.2 移动止损Trailing Stop流程
```
持仓盈利达到 ATR × 1.5 后,启动移动止损:
每根新 K 线收盘后:
如果当前浮盈 > 历史最高浮盈:
→ 更新最高浮盈记录
→ 新止损价格 = 当前最高价 - ATR(14) × 1.0(做多)
→ 新止损价格 = 当前最低价 + ATR(14) × 1.0(做空)
如果价格触及移动止损:
→ 执行平仓
→ 记录盈利
```
---
## 四、账户级风险监控
### 4.1 每日风险检查清单
```
每日开盘前执行:
□ 账户总资产是否正常(无异常变动)?
□ 当前总仓位是否超过 50%?
□ 是否有持仓品种的大周期偏向已反转?
□ 今日是否有重大宏观事件FOMC、财报等
□ 各持仓品种的止损是否仍然有效?
□ 过去 7 天的连续亏损次数是否超过 3 次?
```
### 4.2 连续亏损保护机制
```
连续亏损计数器:
每次止损触发:计数器 +1
每次盈利平仓:计数器清零
连续亏损 3 次:
→ 所有仓位降低 50%
→ 信号执行阈值提高 1 分
→ 持续到连续盈利 2 次
连续亏损 5 次:
→ 暂停交易 24 小时
→ 复盘分析亏损原因
→ 手动确认后才能恢复
连续亏损 7 次:
→ 暂停交易 1 周
→ 全面回测检查策略是否失效
```
### 4.3 最大回撤保护
```
实时监控账户回撤:
当前回撤 = (账户峰值 - 当前账户价值) ÷ 账户峰值 × 100%
回撤 > 10%
→ 所有新信号仓位降低 50%
→ 发送警报通知
回撤 > 15%
→ 暂停新开仓
→ 仅允许平仓操作
→ 发送紧急警报
回撤 > 20%
→ 全部平仓
→ 暂停交易,等待人工审核
```
---
## 五、各品种风险参数速查表
| 品种 | 最大杠杆 | 最大单品种仓位 | 止损倍数STRONG| 特殊风险 |
|------|---------|-------------|----------------|---------|
| BTC | 5x | 20% | 1.5× ATR | 政策风险 |
| ETH | 5x | 20% | 1.5× ATR | 协议升级风险 |
| SOL | 3x | 15% | 2.0× ATR | 网络故障风险 |
| BNB | 3x | 15% | 1.8× ATR | 监管风险 |
| DOGE | 2x | 10% | 2.5× ATR | 推文风险 |
| XAUT | 3x | 20% | 1.8× ATR | 宏观事件风险 |
| xTSLA | 2x | 10% | 2.5× ATR | 财报+推文风险 |
| xAAPL | 3x | 15% | 2.0× ATR | 财报风险 |
---
## 六、相关文档
- [风险管理体系](../../08_风险管理/风险管理体系.md)
- [仓位管理名词解释](../名词解释/仓位管理.md)
- [清算名词解释](../名词解释/清算.md)
- [Kelly公式名词解释](../名词解释/Kelly公式.md)
- [信号系统完整流程图](./信号系统完整流程图.md)
- [tradehk 大周期偏向判定](../tradehk/大周期偏向判定.md)