☰
AI Market Maker风险管理台拆解:仓位规模与波动率控制的实现原理
2026/10/8 18:25:43 网站建设 项目流程

AI Market Maker风险管理台拆解:仓位规模与波动率控制的实现原理

【免费下载链接】ai-market-makerAgentic AI Hedge Fund OS (AIMM)项目地址: https://gitcode.com/gh_mirrors/ai/ai-market-maker

AI Market Maker(AIMM)是一个 Agentic AI 对冲基金操作系统,让多个 AI 交易 Agent 像真实投研团队一样协作交易。它的风险管理台由两个核心 Agent 组成:风险管理台(Risk Desk)负责按波动率计算每个标的的仓位规模与止损价,风险守卫(Risk Guard)则在最后一道环节行使一票否决权。本文拆解这两者如何实现"波动率控制仓位、回撤控制生死"的风控闭环。

风险管理台的双角色:建议仓位 + 一票否决

在 AIMM 的 Agent 编排流水线中,风险管理台位于两个关键位置:

  1. 风险顾问(建议层):在所有 9 个 Tier-0 分析 Agent(宏观、新闻、技术、情绪等)完成分析之后、桌面辩论(Desk Debate)开始之前运行,为下游组合节点输出"建议仓位 + 波动率画像"。它只有建议权,没有否决权。
  2. 风险守卫(治理层):位于组合执行提案之后、真实下单之前,是唯一拥有Veto Power(一票否决)的治理节点,风险评分超过阈值时直接否决整个提案。

这套"建议在前、否决在后"的设计,对应两个源码文件:

  • 风险管理台:src/agents/risk_management.py
  • 风险守卫:src/agents/governance/risk_guard.py

两者的角色分工与数据契约在 docs/personas/10_risk_desk.md 中完整定义。

波动率怎么算:20 根 K 线的相对波动率

风险管理台不需要复杂的风险模型。它对每个标的取最近最多 20 根 K 线的收盘价,计算标准差并除以均价,得到一个"相对波动率":

  • 均价 = 近 20 根收盘价的算术平均
  • 波动率 = 收盘价标准差 / 均价
  • 数据不足 2 根时退化为固定 0.02(2%)的保守估计

实现在 src/agents/risk_management.py#L27-L36。

这个设计有两个优点:短窗口能紧跟市场 regime 变化(行情变野时仓位自动缩小);数据不足时给默认值保证回测第一根 K 线就能正常出仓位。

波动率仓位公式:cap / (1 + volatility)

拿到波动率后,仓位规模用一条非常直观的公式控制:

position_size = min(上限, 上限 / (1 + 波动率)) × 风险乘数

其中"上限"来自基金策略文件的risk_position_cap_usd(默认2800 美元),即任何单一标的的建议仓位不会超过这个值。核心逻辑在 src/agents/risk_management.py#L42:

波动率计算效果含义
0.05(较平稳)上限 × 约 0.95接近满额度建仓
0.20(波动较大)上限 × 约 0.83明显降杠杆
1.00(极端波动)上限 × 0.5仓位自动腰斩

波动率每翻一倍,仓位就按 1/(1+波动率) 递减——这是典型的波动率倒数加权思路,保证组合承担的风险暴露与市场实际波动匹配。

止损与估值修正:什么时候仓位再减半?

除波动率外,风险管理台还做两件防御动作:

  • 止损价:按策略文件的stop_loss_pct(默认 2.5%)计算,止损价 = 现价 × (1 − 止损比例),见 src/agents/risk_management.py#L43-L44。
  • 估值修正:如果估值 Agent 给出的公允价格低于当前市价(即"市场价偏贵"),风险乘数直接取0.5,仓位再砍一半;估值合理或偏低时乘数为 1.0。

这样,波动率和估值两个维度会叠加收缩仓位——市场又贵又野时,单标的仓位可能只有上限的 40% 左右。

风险守卫否决机制:回撤、杠杆、急停三重闸门

风险守卫RiskGuardAgent对每份执行提案计算一个0~1 的风险评分,评分 >0.8 直接 VETO(否决),见 src/agents/governance/risk_guard.py#L40-L55。评分由三类闸门驱动:

1️⃣ 回撤熔断(Drawdown Stop)

用组合净值与其历史峰值计算回撤比例:dd = 1 − 净值 / 峰值。一旦达到策略里的risk_max_drawdown_stop(默认12%),风险评分直接置 1.0,必然触发否决——这是组合级的"断路器",见 src/agents/governance/risk_guard.py#L116-L129。

2️⃣ 杠杆/敞口软闸门

用总敞口 / 净值 计算实际杠杆,与策略的max_leverage(默认 2 倍)比较:

  • 杠杆超过上限102%:评分至少 0.95,接近必否决;
  • 杠杆接近上限90%以上:评分至少 0.75,进入高危区。

这是"软闸门"——不是硬性拒单,而是通过抬高风险评分影响下游决策。

3️⃣ 急停开关(Kill Switch)

只要设置了环境变量AIMM_KILL_SWITCH或AIMM_RISK_GUARD_KILL_SWITCH,所有执行提案无条件否决,评分锁定 1.0。这是留给运维人员的"物理急停按钮",见 src/agents/governance/risk_guard.py#L28-L38。

此外还有一个兜底:如果拿不到足够的组合快照无法计算,评分默认给0.35并标注"信息不足、默认谨慎"——宁可保守,不误放行,见 src/agents/governance/risk_guard.py#L144-L146。

策略配置:一份 JSON 管住所有风控参数

上述所有阈值都不是写死在代码里的,而是集中在单一策略文件中作为"单一事实来源",由 src/config/policy_loader.py 严格加载并做边界校验:

  • 默认策略:config/policy.default.json
  • 参数含义:docs/policy-schema.md
  • 参数类型定义:src/config/policy_types.py

与风控直接相关的核心参数速查(以 config/policy.default.json#L17-L19 为例):

参数默认值作用
risk_position_cap_usd2800单标的仓位上限(美元)
stop_loss_pct0.025止损比例(2.5%)
max_leverage2组合最大杠杆
risk_max_drawdown_stop0.12回撤熔断线(12%)
risk_kill_switch_cooldown_bars120熔断后冷却 K 线数

项目还内置了针对不同风格的策略预设(如 config/policy.buffett.json、config/policy.daytrade.json):价值型(Buffett 风格)回撤线更紧(12%、冷却 240 根 K 线),而日内/剥头皮风格放宽到 20%~22% 并缩短冷却期——风格不同,风控松紧不同。

小结:三层防线如何构成风控闭环

AIMM 的风险管理台可以概括为三道递进的防线:

  1. 仓位层(风险管理台):波动率倒数加权 + 估值修正 + 固定上限,从源头控制每笔交易的规模;
  2. 熔断层(策略参数):回撤达 12% 触发组合级断路器并进入冷却期,防止情绪化追单;
  3. 否决层(风险守卫):杠杆越界、回撤触线或急停开关生效时,一票否决所有执行提案。

对新手而言,这套架构最值得借鉴的正是它的分层思想:风控不靠单一指标,而是"仓位收缩 → 熔断冷却 → 最终否决"层层递进。如果你希望深入了解每个风控 Agent 的输入输出契约与 SOP,建议阅读 docs/personas/10_risk_desk.md 和风险守卫的技能说明 src/agents/governance/risk_guard/SKILL.md。

【免费下载链接】ai-market-makerAgentic AI Hedge Fund OS (AIMM)项目地址: https://gitcode.com/gh_mirrors/ai/ai-market-maker

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询