Sequence of Returns Risk 应对策略
High Contrast
Dark Mode
Light Mode
Sepia
Forest
4 min read761 words

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 单一市场。

下一节:通货膨胀侵蚀与生命周期支出管理