Skip to content

做什么(One-liner)

Canvas 上的"风险管理"节点 —— 从上游 price_factor 自动收 symbol,POST 到 /portfolio/risk-metrics route。完整风险指标计算在 route card 里(portfolio_risk_metrics)。

怎么用

Canvas 拖 risk_management_v1,上游接一个 price_factor_v1 节点(或填 params.symbol)。可选 benchmark(default SPY)+ period(default '1y')。输出完整风险 dict。

核心公式

本 graphlet 不做计算 —— 只是 Canvas wiring + 默认参数:

ts
// frontend/src/components/modern/unified-canvas/ExecutionRouter.ts:1913
upstream_syms = getUpstreamPFSymbols(node.id)
symbol = upstream_syms[0] || params.symbol || 'SPY'
POST /portfolio/risk-metrics {
  symbol: normalizeSymbol(symbol),
  benchmark: normalizeSymbol(params.benchmark || 'SPY'),
  period: params.period || '1y',
}

风险指标公式(VaR / CVaR / Beta / MaxDD / Sharpe)在 portfolio_risk_metrics card 完整记录。

假设与适用场景

假设:上游 price_factor 提供 symbol;/portfolio/risk-metrics route 可用;normalizeSymbol 别名映射正确。

适用:Canvas 策略图里给 portfolio 输出加 risk overlay;快速 historical VaR / CVaR / Beta 节点。

不适用:multi-asset aggregation;custom confidence_levels;非 Canvas 场景(直接调 route)。

输入 / 输出契约

Canvas params: {symbol?, benchmark?, period?} → 完整 route response + Canvas metadata(label, nodeId, executionTime, status, _source)。

已知局限

  1. Canvas wrapper 不暴露 custom confidence_levels / risk_free_rate
  2. 多上游 price_factor 时只取 [0]
  3. Route-level limitations 见 portfolio_risk_metrics card

参考文献

完整文献在 portfolio_risk_metrics card(Jorion 2006, Artzner et al. 1999 CVaR theory, etc.)。

Golden Test

本 graphlet 的 golden 和 portfolio_risk_metrics route 共用(同一 test suite 验证 wiring + route math)。1e-10 tolerance。6 tests 在 tests/golden/python/test_portfolio_risk_metrics_golden.py

Changelog

  • 1.0.0 (2026-04-20) — 首次 Active(points to real route after legacy cleanup 2026-04-20)

Verifiable intelligence for the decisions that demand scrutiny.