关于 algo-risk-var
用于估算投资组合风险价值(VaR)的金融分析技能,提供参数法、历史模拟和蒙特卡洛方法。它还涵盖回测,并说明 VaR 在风险管理和报告中的局限。
主要功能
- 01三种 VaR 计算方法
- 02投资组合下行风险估算
- 03通过超限次数进行回测
- 04提示尾部风险局限
适用场景
- 01评估投资组合下行风险
- 02制定交易限额和资本储备
- 03准备监管风险报告
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ asgard-ai-platform/ skills --skill algo-risk-var安装后在 Claude Code 中输入/algo-risk-var确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
examples/sample_scenario.mdreferences/backtesting.mdexpected-shortfall.md详细介绍
风险价值(VaR)
概述
VaR 用于估算投资组合在指定置信水平下、给定时间范围内可能遭受的最大损失。例如:“95% 置信水平下的 1 天 VaR 为 $1M”表示一天内损失超过 $1M 的概率为 5%。共有三种方法:参数法(正态分布)、历史模拟法和蒙特卡洛法。
适用场景
触发条件:
- 量化投资组合的下行风险,以进行风险管理
- 设置交易限额和资本储备
- 监管报告(Basel III 要求以 VaR 为基础计提资本)
不适用场景:
- 需要了解损失可能超过 VaR 多严重时(使用 CVaR/预期损失)
- 对于没有价格历史记录的非流动性资产(VaR 需要收益率数据)
算法
IRON LAW: VaR Does NOT Tell You How Bad It Gets BEYOND the Threshold
VaR says "95% of the time, losses won't exceed $X." It says NOTHING
about the 5% worst case. A portfolio can have low VaR but catastrophic
tail losses. Always supplement with Expected Shortfall (CVaR) which
measures the average loss in the tail.
阶段 1:输入验证
收集:投资组合持仓、历史收益率(计算 1 年期至少需要 250 天)、置信水平(通常为 95% 或 99%)、时间范围(1 天或 10 天)。 **关卡:**收益率历史数据充足,且持仓按当前市价估值。
阶段 2:核心算法
**参数法 VaR:**VaR = -μ + zα × σ(假设收益率服从正态分布)。对于投资组合:使用协方差矩阵计算投资组合的 σ。
**历史模拟法:**1. 根据历史收益率计算每日盈亏。2. 按盈亏升序排序。3. VaR = (1-α) 分位数对应的损失。
**蒙特卡洛法:**1. 拟合收益率分布(或使用历史数据)。2. 模拟 10,000+ 条投资组合路径。3. VaR = 模拟损失的 (1-α) 分位数。
阶段 3:验证
进行回测:统计过去一年中实际损失超过 VaR 的次数。置信水平为 95% 时,超越次数应约为 5%。使用 Kupiec 或 Christoffersen 检验。 **关卡:**回测超越率处于可接受范围内。
阶段 4:输出
返回 VaR 估算值及回测结果。
输出格式
{
"var": {"amount": 1250000, "confidence": 0.95, "horizon_days": 1, "currency": "TWD"},
"cvar": {"amount": 1800000},
"backtest": {"exceedances": 13, "expected": 12.5, "days_tested": 250, "pass": true},
"metadata": {"method": "historical_simulation", "portfolio_value": 50000000}
}
示例
输入/输出示例
**输入:**投资组合价值 = $1,000,000。最近 20 个按损失降序排列的每日收益率:
[-0.050, -0.040, -0.035, -0.030, -0.025, -0.020, -0.015, -0.010, -0.005, 0.000,
0.005, 0.010, 0.015, 0.020, 0.025, 0.030, 0.035, 0.040, 0.045, 0.050]
置信水平 = 95%,时间范围 = 1 天。
预期结果(历史模拟法):
- 第 5 百分位的索引 = floor(20 × 0.05) = 1 → return[1] = -0.040
- VaR = $1,000,000 × 0.040 = $40,000
- CVaR(预期损失)= 比 VaR 更差的收益率的均值 = (-0.050) × $1M = $50,000
验证:VaR ≤ CVaR 始终成立(尾部损失 ≥ 阈值损失)。损失超过 VaR 的次数应 ≤ 观测值的 5%(20 个观测值中为 1 个)。
边界情况
| 输入 | 预期结果 | 原因 |
|---|---|---|
| 正常市场状况 | VaR 看起来足够 | 但会遗漏尾部事件 |
| 历史数据中存在类似 2008 年的危机 | 历史法得出的 VaR 更高 | 如果历史窗口包含危机,则能捕捉肥尾 |
| 历史数据很短(30 天) | VaR 不可靠 | 尾部估算的数据不足 |
注意事项
- **正态性假设:**参数法 VaR 假设收益率服从正态分布。金融收益率具有肥尾特征——参数法 VaR 会低估尾部风险。
- **历史窗口:**历史模拟法的效果取决于历史数据。如果过去 250 天市场平静,即使危机即将到来,VaR 也会偏低。
- **时间缩放:**只有在独立性和正态性假设成立时,VaR 才会按 √T 缩放。对于波动较大或存在趋势的市场,这种近似效果较差。
- **分散化假象:**使用正常时期的相关性计算相关资产的 VaR,会低估风险。危机期间相关性会飙升(相关性失效)。
- **利用 VaR 规避监管:**交易员可以构建在 VaR 下看似安全、但尾部风险极其严重的持仓。因此,监管机构也要求进行压力测试。
参考资料
- 有关预期损失(CVaR)的计算,请参阅
references/expected-shortfall.md - 有关 VaR 回测方法,请参阅
references/backtesting.md