风险预算:整章唯一一个答案不来自数据的参数
能承受 20% 回撤,沪深300 最多放 10%、ERC 能放 60%;而"仓位减半回撤也减半"是错的,实测差 15 个百分点
P5 前九节的参数都来自数据:均线长度、因子权重、协方差、成本假设、停机线……
这一节的参数不来自数据,来自你自己。
流程是整章唯一一次从后往前推:
① 你先说一个数:这笔钱最多能亏多少(可承受回撤 L)
② 生成 5000 条路径 → 得到满仓时的最大回撤**分布**
③ 反推:让「回撤超过 L」的概率不高于 5% 的仓位上限
④ 剩下的钱不进这个策略
实测结果(可承受回撤 20%):
沪深300 买入持有 仓位上限 10%
ERC 风险平价 仓位上限 60% —— 相差 6 倍
这就是 p5.9 那 347 万差价买到的东西:同样的风险预算下,低回撤的对象允许你放更多本金。
顺带纠正一个几乎人人都会想当然的近似:"仓位减半,回撤也减半"是错的。
装修预算不是"这个沙发多少钱",而是"我一共能花多少"。
先定总额,再分配。
没人会先看中一套家具再回头问自己拿不拿得出钱——但几乎所有人在投资上都是这么做的:先看中一个策略,再决定放多少钱。
一、先要一个分布,不是一个点
用分块自助(块长 21 日)生成 5000 条路径,得到满仓时的最大回撤分布:
| 对象 | 中位 | 95 分位 | 99 分位 | 实测 |
|---|---|---|---|---|
| 沪深300 买入持有 | -58.5% | -82.3% | -88.7% | -46.7% |
| ERC 风险平价(p5.9) | -19.2% | -30.1% | -35.9% | -19.5% |
回撤是负数,所以"95 分位"取的是分布的第 5 百分位——更坏的那一端。
沪深300 的实测回撤 -46.7%,比分布的中位数(-58.5%)还要浅。
用一个点估计去定仓位,等于假设历史正好演了最典型的一遍。而本例里它甚至演得比典型情况更温和。
二、"仓位减半,回撤也减半"是错的
| 对象 | 仓位 | 实测 95 分位 | 线性 w·D | 误差 | 复利 1-(1-D)^w | 误差 |
|---|---|---|---|---|---|---|
| 沪深300 | 1.00 | -83.1% | -82.3% | -0.8 | -82.3% | -0.8 |
| 0.50 | -56.4% | -41.2% | -15.3 | -58.0% | +1.5 | |
| 0.25 | -32.9% | -20.6% | -12.3 | -35.2% | +2.3 | |
| ERC | 1.00 | -30.3% | -30.1% | -0.3 | -30.1% | -0.3 |
| 0.50 | -16.2% | -15.0% | -1.2 | -16.4% | +0.1 | |
| 0.25 | -8.4% | -7.5% | -0.9 | -8.6% | +0.2 |
正确的关系在复利里,不在比例里。
回撤定义为"期末比例相对峰值下跌多少",而期末比例随仓位取幂:
回撤 ≈ 1 − (1 − D)^w
- 回撤小的时候两者差不多:ERC 半仓,线性 -15.0%、复利 -16.4%、实测 -16.2%
- 回撤大的时候差得离谱:沪深300 半仓,线性 -41.2%、复利 -58.0%、实测 -56.4%
线性近似会让你低估 15 个百分点——而那正是你最需要它准的时候。
直觉解释:满仓亏 82% 意味着剩下 0.177。半仓不是"亏 41%",而是大致
0.177^0.5 = 0.42,即亏 58%。复利在赚钱那边是朋友,在亏钱这边是敌人——它对两边一视同仁。
三、风险预算表
让"回撤超过 L"的概率 ≤ 5% 的仓位上限:
| 对象 | L=10% | L=20% | L=30% | L=40% |
|---|---|---|---|---|
| 沪深300 买入持有 | 0% | 10% | 20% | 30% |
| ERC 风险平价 | 20% | 60% | 90% | 100% |
读法:如果你最多能接受 20% 的回撤,那么放进沪深300 的钱不应超过总资金的 10%。
其余的 90% 不是浪费,是前提。
它是"你能在 -46% 的时候不卖掉"这件事的成本——而 p4.8 已经证明,错过那几个月,策略就失效了(最好的 1 个月贡献 48.7%)。
🔧 动手做:让"你能承受多少"决定"你该放多少"(6 分钟)
这一节反过来:先说你最多能亏多少(L),再反推仓位上限。跑 python risk_budget.py,然后改 L_GRID 试不同的 L(0.10 / 0.20 / 0.30)。
你会看到(实测):满仓时沪深300 买入持有,历史实测回撤是 -46.7%,而 5000 条分块自助路径的 95 分位是 -82.3%——分布比历史演过的那一遍坏得多。你能承受的回撤(L)越小,反推出的满仓比例上限就越低。
想明白:P5 前九节的参数都来自数据,这一节的参数来自你自己。剩下不进场的钱不是浪费,是你能扛过回撤、不在最低点割肉的前提。仓位不该由"我想赚多少"定,该由"我能亏多少还睡得着"定。
四、同一笔钱分给谁,差多少
| 可承受回撤 | 沪深300 仓位上限 | ERC 仓位上限 | 相差 |
|---|---|---|---|
| 20% | 10% | 60% | 6.0 倍 |
| 30% | 20% | 90% | 4.5 倍 |
这就是 p5.9 那 347 万差价买到的东西。
p5.9 里 ERC 的年化比纯美股低 3.6 个百分点,看起来是纯亏。但在同样的风险预算下,ERC 允许你放 6 倍的本金。
两者的最终结果不是简单的年化之差——你要比的是"年化 × 允许的仓位",而不是"年化"。
这也是为什么专业机构谈的是风险预算而不是收益目标:收益是结果,风险才是可分配的资源。
五、和停机线的关系(接 p5.8)
p5.8 的结论是:停机线不是"策略坏了的证据",是"我认赔的上限"。
风险预算做的是同一件事的事前版本:
| 停机线 | 事后触发的开关 |
| 风险预算 | 事前把仓位定到让它很少被触发 |
实测(仓位取自上面的预算表,L=30%):
沪深300 买入持有 仓位 20% 时,回撤超过 30% 的路径占比 2.6%
ERC 风险平价 仓位 90% 时,回撤超过 30% 的路径占比 3.0%
如果你的停机线经常被触发,问题多半不在策略,在仓位。
p5.8 实测过:-30% 的停机线在同一批收益下有 98% 的路径会触发。那不是策略的问题,是满仓的问题。
六、为什么这个参数必须由你来定
整章九节的参数都来自数据。只有"可承受回撤"这一个,数据里没有答案。
它取决于三件事,没有一件在行情里:
- 这笔钱多久之后要用
- 有没有可能被迫在低点动用
- 跌到什么程度你会睡不着——只有你知道
把这个数写进规格书的出场一栏(p5.1 第 ④ 类),然后不允许事后调整。
事后调整可承受回撤,和 p5.4 事后扩网格、p5.8 事后放宽停机线,是同一类操作:把约束变成了变量。
📌 免责:本课为技术教学,文中的可承受回撤取值与仓位上限均为演示假设,不构成任何投资建议或资产配置建议。
P5 章完结。这一节的四件事:
- 先要分布,不要点估计。沪深300 满仓的回撤分布:中位 -58.5%、95 分位 -82.3%,而实测只有 -46.7%——历史演得比典型情况还温和。用点估计定仓位,等于假设历史正好演了最典型的一遍
- "仓位减半回撤也减半"是错的。正确关系是
1-(1-D)^w:沪深300 半仓,线性预测 -41.2%、实测 -56.4%,低估 15 个百分点;回撤越大,线性近似错得越离谱 - 风险预算表:可承受 20% 时,沪深300 仓位上限 10%、ERC 60%,相差 6 倍。这就是 p5.9 那 347 万差价买到的东西——要比的是"年化 × 允许的仓位",不是"年化"
- 风险预算是停机线的事前版本。按预算定仓位后,回撤超过 30% 的路径只占 2.6%~3.0%。如果你的停机线经常被触发,问题多半不在策略,在仓位
整章唯一一个答案不来自数据的参数,就是"可承受回撤"。它取决于这笔钱多久要用、会不会被迫动用、以及跌到什么程度你会睡不着——写进规格书,不允许事后调整。
P5 十节回顾:规格书 → 族谱 → 多因子 → 参数平原 → 滚动前推 → 蒙特卡洛 → 容量 → 停机线 → 风险平价 → 风险预算。
一条贯穿始终的线索:这十节里,没有一节的结论是"我找到了一个能赚钱的策略"。它们回答的全是另一个问题——在你相信任何一个结论之前,应该先排除什么。
下一章 P6 转向基金与定投:定投到底解决了什么问题、场内场外的成本差、以及一个几乎所有人都算错的收益率口径。
🔎 来源与核验· 4 条,点开核对
