296 lines
7.9 KiB
Markdown
296 lines
7.9 KiB
Markdown
# 风险度量模型研究与评估
|
||
|
||
## 🎯 研究目标
|
||
|
||
评估各类风险度量模型在A股市场的适用性,选择适合的模型组合。
|
||
|
||
---
|
||
|
||
## 1. 传统风险度量模型
|
||
|
||
### 1.1 VaR(风险价值)
|
||
|
||
**定义**:在一定置信水平下,未来一定时间内预期最大损失。
|
||
|
||
**计算方法**:
|
||
| 方法 | 说明 | A股适用性 |
|
||
|------|------|-----------|
|
||
| **历史模拟法** | 用历史收益率分位数计算 | ✅ 推荐,不需要分布假设,适应尾部风险 |
|
||
| **参数法(方差-协方差)** | 假设正态分布计算 | ❌ 不推荐,A股尾部风险比正态分布大 |
|
||
| **蒙特卡洛模拟** | 随机模拟生成收益率 | ⚠️ 计算量大,适合机构,不适合个人量化 |
|
||
|
||
**优缺点**:
|
||
- ✅ 优点:简单直观,监管认可,容易理解
|
||
- ❌ 缺点:不考虑尾部风险,VaR不满足次可加性
|
||
|
||
**A股应用建议**:
|
||
- 使用历史模拟法计算VaR
|
||
- 置信水平95%或99%
|
||
- 时间窗口1年(252个交易日)
|
||
|
||
### 1.2 CVaR/ES(条件风险价值/期望短缺)
|
||
|
||
**定义**:损失超过VaR时的期望损失。
|
||
|
||
**优势**:
|
||
- ✅ 考虑了尾部风险
|
||
- ✅ 满足次可加性,理论性质更好
|
||
- ✅ 更保守,适合风控
|
||
|
||
**计算**:历史模拟法很容易扩展到CVaR
|
||
|
||
**A股应用建议**:
|
||
- VaR作为预警,CVaR作为实际风险控制
|
||
- 比VaR更保守,适合风控
|
||
|
||
### 1.3 最大回撤
|
||
|
||
**定义**:从最高点到最低点的最大跌幅。
|
||
|
||
**特点**:
|
||
- ✅ 交易者非常直观,容易理解
|
||
- ✅ 直接关系到账户存活率
|
||
- ✅ 非常适合策略风控
|
||
|
||
**分类**:
|
||
- **历史最大回撤**:整个回测过程最大回撤
|
||
- **当前回撤**:从历史最高点到当前的回撤
|
||
- **当日回撤**:当日相对于开盘的回撤
|
||
|
||
**A股应用建议**:
|
||
- ✅ 强烈推荐作为核心风控指标
|
||
- ✅ 必须设置最大回撤止损,触及强制清仓
|
||
- ✅ 实时监控当前回撤
|
||
|
||
### 1.4 波动率
|
||
|
||
**常见度量**:
|
||
- **历史波动率**:过去N天收益率标准差
|
||
- **GARCH波动率**:预测未来波动率,适应波动率聚类
|
||
- **已实现波动率**:日内高频数据计算
|
||
|
||
**A股应用建议**:
|
||
- ✅ 历史波动率足够日常使用
|
||
- ✅ GARCH适合预测,牛熊转换时更准确
|
||
- ✅ 波动率作为动态调整仓位依据,高波动降低仓位
|
||
|
||
---
|
||
|
||
## 2. 现代风险度量模型
|
||
|
||
### 2.1 风险贡献度
|
||
|
||
**定义**:每个资产对组合整体风险的贡献。
|
||
|
||
**公式**:RC_i = w_i * ∂(σ_p)/∂w_i
|
||
|
||
**应用**:
|
||
- 调整持仓让风险贡献更均匀
|
||
- 避免个别资产主导组合风险
|
||
- 适合多资产组合
|
||
|
||
**A股适用性**:✅ 推荐用于多策略组合
|
||
|
||
### 2.2 风险预算
|
||
|
||
**思想**:预先给每个资产分配风险预算,然后优化权重。
|
||
|
||
**优点**:
|
||
- ✅ 主动控制风险贡献
|
||
- ✅ 风险平价是风险预算的特例
|
||
- ✅ 比等权重更稳定
|
||
|
||
**A股适用性**:✅ 推荐用于多股票组合
|
||
|
||
### 2.3 下行风险度量
|
||
|
||
**指标**:
|
||
- 下半偏差(downside deviation):只计算下跌波动率
|
||
- 亏损频率:统计亏损频率
|
||
- 平均亏损:亏损发生时平均亏损幅度
|
||
|
||
**优势**:
|
||
- ✅ 只关心下跌,不惩罚上涨波动
|
||
- ✅ 更符合投资者实际感受
|
||
|
||
**A股适用性**:✅ 推荐,比标准差更合理
|
||
|
||
### 2.4 基于贝塔的风险度量
|
||
|
||
**定义**:β = Cov(Ri, Rm)/Var(Rm),衡量系统性风险。
|
||
|
||
**应用**:
|
||
- 计算组合系统性风险
|
||
- 风格风险分析
|
||
- 调整仓位降低系统性风险
|
||
|
||
**A股适用性**:⚠️ 可以用,但不是核心,因为A股系统性风险占比高
|
||
|
||
---
|
||
|
||
## 3. 动态风险度量
|
||
|
||
### 3.1 时变波动率模型
|
||
|
||
**GARCH家族**:
|
||
- GARCH(1,1) 足够用
|
||
- 捕捉波动率聚类(高波动之后更高波动)
|
||
- A股波动率聚类明显,适合GARCH
|
||
|
||
**EGARCH**:允许杠杆效应(下跌波动更大),A股更明显
|
||
|
||
**实现难度**:低,python arch包直接可用
|
||
|
||
**A股应用建议**:✅ 推荐用于动态风控
|
||
|
||
### 3.2 风险状态识别
|
||
|
||
**方法**:
|
||
- 波动率分位数分组:低/中/高波动状态
|
||
- 马尔可夫链识别:切换不同波动率状态
|
||
- 机器学习分类:识别市场风险状态
|
||
|
||
**应用**:根据不同风险状态调整仓位和风控参数
|
||
|
||
**A股适用性**:✅ 推荐,A股牛熊波动率差异大
|
||
|
||
### 3.3 风险预警指标
|
||
|
||
**核心预警指标**:
|
||
| 指标 | 预警逻辑 |
|
||
|------|---------|
|
||
| VIX指数 | 整体市场恐慌程度 |
|
||
| 涨跌停家数比 | 上涨停多还是跌停多 |
|
||
| 下跌家数比例 | 整体市场涨跌分布 |
|
||
| 平均跌幅 | 下跌股票平均跌幅 |
|
||
|
||
**应用**:多个指标综合判断市场整体风险水平
|
||
|
||
---
|
||
|
||
## 4. 模型比较与选择
|
||
|
||
### 4.1 模型比较表
|
||
|
||
| 模型 | 理论复杂度 | 实现难度 | A股适用性 | 推荐度 |
|
||
|------|------------|----------|-----------|--------|
|
||
| VaR(历史模拟) | 低 | 低 | ✅ 好 | ⭐⭐⭐⭐ |
|
||
| CVaR/ES | 低 | 低 | ✅ 好 | ⭐⭐⭐⭐⭐ |
|
||
| 最大回撤 | 极低 | 极低 | ✅ 很好 | ⭐⭐⭐⭐⭐ |
|
||
| 波动率 | 低 | 低 | ✅ 好 | ⭐⭐⭐⭐ |
|
||
| GARCH动态波动率 | 中 | 中 | ✅ 好 | ⭐⭐⭐⭐ |
|
||
| 风险贡献/风险预算 | 中 | 中 | ✅ 好 | ⭐⭐⭐⭐ |
|
||
| 下行偏差 | 低 | 低 | ✅ 好 | ⭐⭐⭐⭐ |
|
||
| 贝塔 | 低 | 低 | ⚠️ 一般 | ⭐⭐⭐ |
|
||
|
||
### 4.2 推荐模型组合
|
||
|
||
**核心推荐组合**:
|
||
|
||
```
|
||
[最大回撤监控]
|
||
+ [CVaR风险度量]
|
||
+ [动态GARCH波动率]
|
||
+ [风险预算配置]
|
||
```
|
||
|
||
**各模块作用**:
|
||
1. **最大回撤**:账户层面终极风控,触及强制止损
|
||
2. **CVaR**:组合层面风险度量,比VaR更保守
|
||
3. **GARCH波动率**:动态调整整体仓位,高波动降低仓位
|
||
4. **风险预算**:配置层面控制各股票风险贡献
|
||
|
||
**简化版(个人量化)**:
|
||
|
||
```
|
||
[最大回撤监控]
|
||
+ [VaR预警]
|
||
+ [历史波动率]
|
||
+ [单票/集中度仓位限制]
|
||
```
|
||
|
||
足够个人量化使用,实现简单效果好
|
||
|
||
---
|
||
|
||
## 5. 模型参数建议
|
||
|
||
### 5.1 窗口大小
|
||
|
||
| 指标 | 推荐窗口 | 说明 |
|
||
|------|---------|------|
|
||
| VaR/CVaR | 252交易日(1年) | 足够覆盖一个完整年度周期 |
|
||
| 波动率 | 20-60交易日 | 短窗口反应快,长窗口稳定 |
|
||
| GARCH | 用全部历史估计 | GARCH参数不需要频繁重估计 |
|
||
|
||
### 5.2 置信水平
|
||
|
||
| 置信水平 | 含义 | 推荐 |
|
||
|---------|------|------|
|
||
| 95% | 95%概率损失不超过VaR | ✅ 推荐 |
|
||
| 99% | 99%概率损失不超过VaR | 更保守,可以作为第二级预警 |
|
||
|
||
### 5.3 阈值建议
|
||
|
||
| 指标 | 警告阈值 | 临界阈值 |
|
||
|------|----------|----------|
|
||
| 单日回撤 | 3% | 5% |
|
||
| 累计回撤 | 8% | 12% |
|
||
| 最大回撤 | - | 15%(保守)/ 25%(进取) |
|
||
| 单票仓位 | 25% | 40% |
|
||
| VaR(95%)单日 | 2% | 3% |
|
||
| 波动率(年化) | 25% | 40% |
|
||
|
||
---
|
||
|
||
## 6. 模型实现建议
|
||
|
||
### 6.1 计算流程
|
||
|
||
```python
|
||
# 1. 获取历史收益率
|
||
returns = calculate_returns(prices)
|
||
|
||
# 2. 计算风险指标
|
||
var_95 = calculate_var_historical(returns, 0.95)
|
||
cvar_95 = calculate_cvar_historical(returns, 0.95)
|
||
volatility = calculate_rolling_volatility(returns, 20)
|
||
max_drawdown = calculate_current_max_drawdown(net_values)
|
||
|
||
# 3. 和阈值比较
|
||
check_thresholds(var_95, volatility, max_drawdown)
|
||
|
||
# 4. 触发预警
|
||
if any_threshold_triggered():
|
||
generate_alert()
|
||
trigger_emergency_action()
|
||
```
|
||
|
||
### 6.2 实时计算复杂度
|
||
|
||
- 单次计算:O(N) N是历史长度
|
||
- 对于N=252,非常快,27万次/秒(我们原型测试)
|
||
- 完全满足实时要求,即使全市场监控
|
||
|
||
---
|
||
|
||
## 7. 结论与建议
|
||
|
||
### 最终结论
|
||
|
||
1. **A股适合使用**:最大回撤 + CVaR + 动态波动率 + 风险预算组合
|
||
2. **个人量化简化版**:最大回撤 + VaR + 波动率 + 仓位限制足够用
|
||
3. **不要过度复杂**:简单模型稳定可靠,容易维护
|
||
4. **动态调整比静态模型好**:A股波动率变化大,必须动态调整
|
||
|
||
### 下一步实现
|
||
|
||
1. 实现基础风险计算模块
|
||
2. 回测不同参数在A股的表现
|
||
3. 比较不同模型风控效果
|
||
4. 选择最优参数
|
||
|
||
---
|
||
|
||
**本章完** ⚔️
|