mcpField
A
algo-risk-var

algo-risk-var

github.com/asgard-ai-platform数据与数据库24336 次安装21 周前更新
代码仓库

关于 algo-risk-var

用于估算投资组合风险价值(VaR)的金融分析技能,提供参数法、历史模拟和蒙特卡洛方法。它还涵盖回测,并说明 VaR 在风险管理和报告中的局限。

主要功能

  1. 01三种 VaR 计算方法
  2. 02投资组合下行风险估算
  3. 03通过超限次数进行回测
  4. 04提示尾部风险局限

适用场景

  1. 01评估投资组合下行风险
  2. 02制定交易限额和资本储备
  3. 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.md
references/
backtesting.md
expected-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

评论

支持 Markdown