Sequence of Returns Risk(回报序列风险)应对策略
一个被大多数 FIRE 计划忽视的风险:退休后的前 5–10 年,市场表现决定你 FIRE 是否成功——即使长期平均回报相同。这就是"回报序列风险"(Sequence of Returns Risk, SORR)。
什么是 SORR?
graph TD
Example["两个人:\n相同资产 RM 1,500,000\n相同提取 RM 60,000/年\n相同长期平均回报 7%"] --> PersonA["甲:前10年遇到牛市\n→ FIRE 成功,资产持续增长"]
Example --> PersonB["乙:前10年遇到熊市\n→ FIRE 失败,资产在市场低点持续缩水"]
PersonA --> PA["第30年剩余资产:RM 2,800,000 ✅"]
PersonB --> PB["第15年资产耗尽:破产 ❌"]
PA --> Insight["关键洞见:不是平均回报决定 FIRE 成败\n而是退休初期的回报顺序"]
PB --> Insight
style Insight fill:#ff5722,color:#fff
SORR 的数学原理
def sorr_simulation(
initial_assets: float,
annual_withdrawal: float,
returns_good_first: list, # 好年在前
returns_bad_first: list # 坏年在前
):
"""
模拟相同平均回报但不同顺序的资产轨迹差异
"""
import statistics
assert abs(statistics.mean(returns_good_first) - statistics.mean(returns_bad_first)) < 0.001, \
"两个序列平均回报差值太大"
def simulate(assets, withdrawal, returns):
trajectory = [assets]
for r in returns:
# 年初提取,然后剩余资产增值
assets = (assets - withdrawal) * (1 + r)
trajectory.append(max(assets, 0))
if assets <= 0:
# 补足剩余年份为 0
trajectory.extend([0] * (len(returns) - returns.index(r) - 1))
break
return trajectory
good_first = simulate(initial_assets, annual_withdrawal, returns_good_first)
bad_first = simulate(initial_assets, annual_withdrawal, returns_bad_first)
print("=== SORR 序列风险模拟 ===\n")
print(f"初始资产: RM {initial_assets:,.0f}")
print(f"年提取额: RM {annual_withdrawal:,.0f}")
print(f"平均回报: {statistics.mean(returns_good_first):.1%}\n")
years = [5, 10, 15, 20, 25, 30]
print(f"{'年份':<6} {'好年在前(RM)':<20} {'坏年在前(RM)':<20}")
print("-" * 50)
for y in years:
if y < len(good_first) and y < len(bad_first):
print(f"{y:<6} {good_first[y]:>18,.0f} {bad_first[y]:>18,.0f}")
return good_first, bad_first
# 示例:相同平均回报 7%,但顺序不同
import random
# 好年在前:前10年 15% 平均,后20年 2.5% 平均
good_returns = [0.15, 0.15, 0.12, 0.15, 0.18, 0.10, 0.14, 0.13, 0.16, 0.12] + \
[0.02, 0.03, 0.01, -0.05, 0.04, 0.025, 0.015, -0.03, 0.05, 0.02] * 1
# 坏年在前:前10年 -1% 平均,后20年 11.5% 平均
bad_returns = [-0.10, -0.20, 0.05, -0.15, -0.05, 0.10, -0.08, 0.08, 0.05, 0.00] + \
[0.15, 0.18, 0.12, 0.20, 0.16, 0.14, 0.13, 0.18, 0.15, 0.12] * 1
sorr_simulation(1_500_000, 60_000, good_returns[:20], bad_returns[:20])
SORR 三大应对策略
策略一:现金缓冲桶(Cash Buffer Strategy)
graph TD
Bucket["三桶策略(Bucket Strategy)"] --> B1["桶1:现金/货币市场\n1–2年支出 = RM 72,000–144,000\n不投资,用于每月提取"]
Bucket --> B2["桶2:保守投资(债券/REITs)\n3–7年支出\n低波动,每年补充桶1"]
Bucket --> B3["桶3:全球 ETF(股票)\n7年以上\n高增长,应对通胀"]
B1 -- "桶1用完" --> B2
B2 -- "每年补充桶1" --> B1
B3 -- "牛市时补充桶2" --> B2
Bear["熊市时"] --> Protect["桶1撑2年\n桶2撑5年\n不动桶3,等市场复苏"]
马来西亚 FIRE 族的三桶配置规划:
| 桶 | 资产类型 | 金额(月支出RM5,000 × 12年) | 工具 |
|---|---|---|---|
| 第一桶(1–2年) | 活期/货币基金 | RM 60,000–120,000 | Maybank iSAVVY / CIMB eSaver |
| 第二桶(3–7年) | 债券 ETF / REITs / GIC | RM 180,000–360,000 | AGGU / 债券基金 |
| 第三桶(7年+) | 全球股票 ETF | RM 600,000–1,000,000+ | VWRA / IWDA |
策略二:动态提取规则(Guardrails Strategy)
不固定每年提取固定金额,根据市场表现动态调整:
| 市场状况 | 提取规则 | 行动 |
|---|---|---|
| 组合增值 >20%(牛市顶部) | 年提取额 +10% | 享受市场好年 |
| 组合正常(±10%) | 维持上年提取额 | 稳定不变 |
| 组合下跌 10–20% | 削减提取额 10% | 暂时收紧预算 |
| 组合下跌 >20% | 削减提取额 20%,启用现金桶 | 严格节流 |
策略三:Barista FIRE 作为缓冲
FIRE 后第一个 3–5 年保留轻度兼职,覆盖 30–50% 支出,让投资组合在最脆弱的 SORR 窗口期继续增值而不被过度提取。
马来西亚历史熊市验证
| 熊市事件 | KLCI 跌幅 | 持续时间 | 全球 ETF 跌幅(MSCI World) |
|---|---|---|---|
| 1997–1998 亚洲金融风暴 | -77% | 18个月 | -30% |
| 2000–2002 科网泡沫 | -35% | 30个月 | -49% |
| 2008–2009 金融海啸 | -40% | 16个月 | -54% |
| 2020 COVID 挤压 | -28% | 2个月 | -33% |
| 2022 利率上升 | -12% | 12个月 | -19% |
⚠️ 马来西亚特有风险:全球 ETF(IWDA/VWRA)比纯马来西亚股票更分散,历史跌幅相对较小。但在汇率大幅波动时(如 1997),MYR 计价资产遭受双重打击(资产跌 + 汇率贬)。分散全球持有是减少此风险的最好方式。
SORR 快速诊断表
| 危险信号 | 安全指标 |
|---|---|
| ❌ 提取率 >5%(FIRE 第一年) | ✅ 提取率 <3.5% |
| ❌ 无现金缓冲,100% 股票 | ✅ 持有 1–2 年现金/债券缓冲 |
| ❌ 退休后立即遇到 -20% 熊市 | ✅ Barista FIRE 对冲前 3 年 |
| ❌ 固定提取不调整 | ✅ 动态 Guardrails 提取策略 |
| ❌ 高集中度(只投 KLSE 或单一市场) | ✅ 全球分散(VWRA/IWDA) |
本节小结
SORR 是 FIRE 最被低估的风险。三大防线:现金缓冲桶(短期流动性)、动态提取规则(灵活调整)、Barista FIRE 前三年(初期风险缓冲)。马来西亚 FIRE 族还应将全球 ETF 作为核心持仓,避免过度集中于 MYR 单一市场。
下一节:通货膨胀侵蚀与生命周期支出管理