5D Library › 非遍历性财富动力学、凯利准则与波动率税 · English

第五章 香农恶魔与再平衡溢价

一只不涨的股票

据庞德斯通的记述,克劳德·香农在二十世纪六十年代于麻省理工学院的一次讲座中提出过这样一个思想实验:一只股票每天要么涨一倍,要么跌一半,概率各一半,长期来看它不涨也不跌(几何平均为 √(2 × 0.5) = 1)。如果把一半资金放在这只股票上、一半放在现金里,并且每天收盘后重新调整回各一半,会怎样 (Poundstone 2005)?

答案是:组合每天乘以 1.5 或 0.75,几何平均为 √(1.5 × 0.75) ≈ 1.061,每天增长约 6%。一只长期不涨的资产,加上现金和机械的再平衡,变成了一个稳定增长的组合。这个结果后来被称为香农恶魔,吕恩伯格在教科书中称之为「波动率泵」(volatility pumping)(Luenberger 1998)。

推导

香农恶魔的精确值;小波动时的近似「再平衡溢价 ≈ 对数收益方差的八分之一」;以及加入交易成本、换成有趋势的资产时的模拟。

# Shannon's demon. An asset doubles or halves each period with equal probability: its
# typical (geometric) growth is zero, sqrt(2 * 0.5) = 1. Hold half in this asset and half
# in cash (zero interest), and rebalance back to 50/50 after every period.
import math, random, statistics

up, down = 2.0, 0.5
hold = math.sqrt(up * down)
r_up, r_down = 0.5 + 0.5 * up, 0.5 + 0.5 * down
reb = math.sqrt(r_up * r_down)
print(f"asset alone: {up} or {down}; geometric growth {100 * (hold - 1):+.2f} % a period")
print(f"50/50 rebalanced: {r_up} or {r_down};"
      f" geometric growth {100 * (reb - 1):+.2f} % a period")
# Small-volatility rule: with log-returns of variance v, a 50/50 mix rebalanced each
# period gains about v/8 a period in log growth over the average of its two parts.
for sd in (0.05, 0.10, 0.20):
    ex = 0.5 * math.log(0.5 + 0.5 * math.exp(sd)) + 0.5 * math.log(0.5 + 0.5 * math.exp(-sd))
    print(f"log-return +/-{sd:.2f}: bonus {ex:.5f} a period, v/8 = {sd ** 2 / 8:.5f}")

random.seed(9)
def path(n=200, cost=0.0, p_up=0.5):
    a = w = 1.0
    for _ in range(n):
        f = up if random.random() < p_up else down
        a *= f
        risky = 0.5 * w * f
        w = 0.5 * w + risky
        w -= cost * abs(risky - 0.5 * w)       # proportional cost on the amount traded back
    return a, w
print(f"\n2,000 paths of 200 periods: median final wealth")
print(f"{'case':>36} {'asset held':>11} {'rebalanced':>11}")
cases = (("fair coin, no costs", {}), ("fair coin, 1 % cost on trades", {"cost": 0.01}),
         ("fair coin, 5 % cost on trades", {"cost": 0.05}),
         ("trending asset (up 60 % of periods)", {"p_up": 0.6}))
for label, kw in cases:
    res = [path(**kw) for _ in range(2000)]
    ma = statistics.median(a for a, _ in res); mw = statistics.median(w for _, w in res)
    print(f"{label:>36} {ma:11.3g} {mw:11.3g}")
# asset alone: 2.0 or 0.5; geometric growth +0.00 % a period
# 50/50 rebalanced: 1.5 or 0.75; geometric growth +6.07 % a period
# log-return +/-0.05: bonus 0.00031 a period, v/8 = 0.00031
# log-return +/-0.10: bonus 0.00125 a period, v/8 = 0.00125
# log-return +/-0.20: bonus 0.00499 a period, v/8 = 0.00500
#
# 2,000 paths of 200 periods: median final wealth
#                                 case  asset held  rebalanced
#                  fair coin, no costs           1     1.3e+05
#        fair coin, 1 % cost on trades           1    9.34e+04
#        fair coin, 5 % cost on trades           1    2.45e+04
#  trending asset (up 60 % of periods)     1.1e+12    1.37e+11
一条路径上的香农恶魔:资产本身(金色)120 期后回到起点,各一半并每期再平衡的组合(蓝色)却增长了约一千倍。纵轴为对数刻度。

钱从哪里来

再平衡溢价并不神秘。每一期,资产上涨之后,组合中资产的比例超过一半,再平衡就卖出一部分;资产下跌之后,再平衡就买入一部分。它机械地「涨了卖、跌了买」。在一只来回波动、长期不涨的资产上,这样做把波动转化为收益。

用第二章的语言:组合的期望收益是两部分的平均(资产的算术期望收益是每期 +25%,现金是 0,平均 12.5%),但组合的波动率只有资产的一半,于是波动率税只有资产的四分之一。资产本身:期望 +25%,波动率税把它吃光;组合:期望 +12.5%,波动率税只吃掉一部分。小波动时,各一半的组合的对数增长率比两部分对数增长率的平均高出约 σ2/8,其中 σ2 是资产对数收益的方差。

什么时候不灵

模拟同时显示了再平衡溢价的边界:

  • 交易成本会吃掉一部分溢价。在香农恶魔这种每期翻倍或腰斩的极端波动下,溢价很大,成本只是让它变小;在普通资产的小波动下,σ2/8 本身就很小(对数收益标准差 20% 时每期约 0.5%),频繁再平衡的成本与税负可能完全抵消它。
  • 持续的趋势下,买入并持有更好。如果资产六成的时间上涨,买入并持有的组合中资产比例会越来越高,充分享受上涨;再平衡则不断卖出赢家,结果明显落后。

两种风险资产之间的再平衡也一样。

推导

两种期望收益 6%、波动率 30% 的风险资产,比较不同相关系数下各一半连续再平衡的增长率,以及两者增长率相同或不同时,30 年后买入并持有与每月再平衡的中位数财富。

# Rebalancing between two risky assets. Each has mu = 6 % and sigma = 30 % a year, so each
# alone has typical growth g = 6 % - 4.5 % = 1.5 %. A 50/50 mix rebalanced continuously
# has the same mu but volatility sigma_p = sigma sqrt((1 + rho) / 2), so it grows at
# mu - sigma_p^2 / 2. The difference (the "diversification return") exists only while the
# two assets keep growing at similar rates; if one grows faster for good, buy-and-hold
# ends up concentrated in it.
import math, random, statistics

def g_rebalanced(mu, sigma, rho):
    return mu - 0.5 * sigma ** 2 * (1 + rho) / 2

print(f"{'correlation':>12} {'each alone g':>13} {'50/50 rebalanced g':>19}")
for rho in (1.0, 0.5, 0.0, -0.5):
    print(f"{rho:12.1f} {0.06 - 0.5 * 0.09:+13.4f} {g_rebalanced(0.06, 0.30, rho):+19.4f}")

def step(mu, sigma, dt):
    return math.exp((mu - sigma ** 2 / 2) * dt + sigma * math.sqrt(dt) * random.gauss(0, 1))

def sim(mu1, mu2, sigma=0.30, years=30, n=1500, seed=10):
    random.seed(seed)
    dt = 1 / 12; out = []
    for _ in range(n):
        a = b = w = 1.0
        for _ in range(int(years / dt)):
            r1, r2 = step(mu1, sigma, dt), step(mu2, sigma, dt)
            a *= r1; b *= r2
            w *= 0.5 * r1 + 0.5 * r2           # rebalanced monthly
        out.append(((a + b) / 2, w))           # buy-and-hold starts 50/50, never trades
    return out
print("\nmedian wealth after 30 years, uncorrelated assets, monthly rebalancing (start = 1)")
print(f"{'asset drifts':>16} {'buy and hold':>13} {'rebalanced':>11}")
for mu1, mu2 in ((0.06, 0.06), (0.10, 0.02), (0.14, -0.02)):
    res = sim(mu1, mu2)
    h = statistics.median(x for x, _ in res); w = statistics.median(y for _, y in res)
    print(f"{f'{mu1:.0%} and {mu2:.0%}':>16} {h:13.2f} {w:11.2f}")
#  correlation  each alone g  50/50 rebalanced g
#          1.0       +0.0150             +0.0150
#          0.5       +0.0150             +0.0262
#          0.0       +0.0150             +0.0375
#         -0.5       +0.0150             +0.0488
#
# median wealth after 30 years, uncorrelated assets, monthly rebalancing (start = 1)
#     asset drifts  buy and hold  rebalanced
#        6% and 6%          2.40        3.12
#       10% and 2%          3.52        3.12
#      14% and -2%          8.87        3.14

两种资产单独持有的长期增长率都只有 1.5%(6% 减去 4.5% 的波动率税);不相关时,各一半再平衡的增长率是 3.75%,相关性越低越高。这个差额叫作分散化收益,费恩霍尔兹与谢伊在随机投资组合理论中给出了它的一般形式 (Fernholz and Shay 1982)。但当两种资产的漂移不同(10% 与 2%,或 14% 与 −2%)时,买入并持有的组合逐渐集中到较强的资产上,最终超过再平衡的组合。

证据

简单的再平衡并不差。 德米格尔、加拉皮与乌帕尔比较了 1/N 等权重(定期再平衡)组合与十几种基于估计参数的「最优」组合,在多个数据集上,没有一种优化方法能稳定地在样本外胜过简单的等权重组合,主要原因是估计误差 (DeMiguel et al. 2009)。这与第三章的结论呼应:参数估计得越不准,越不应该相信精细的最优化。

注

再平衡溢价不是免费的午餐。 它的前提是:组合中的几部分长期增长率相近,而且在它们之间来回波动。如果你不知道哪一部分会长期更强,再平衡是一种在不确定中保持分散的纪律;如果你确实知道(或者市场正处于一个持续的趋势中),它会让你不断卖出赢家。本章的结果不支持「再平衡总能提高收益」的说法,只支持「在增长率相近、波动较大的资产之间,再平衡把一部分波动转化为增长」。

本章小结

香农恶魔说明,一只长期不涨的高波动资产,加上现金和机械的再平衡,可以组成一个稳定增长的组合。溢价来自「涨了卖、跌了买」,在数学上是组合波动率下降使波动率税减少,小波动时约为方差的八分之一。它的边界同样清楚:交易成本与税负会吃掉它,持续的趋势会让买入并持有更好;两种风险资产之间的分散化收益也只在它们增长率相近时存在。下一章讨论另一种更危险的波动:分布尾部的极端事件。

参考文献

DeMiguel, Victor, Lorenzo Garlappi, and Raman Uppal. 2009. “Optimal Versus Naive Diversification: How Inefficient Is the 1/n Portfolio Strategy?” Review of Financial Studies 22 (5): 1915–53.
Fernholz, Robert, and Brian Shay. 1982. “Stochastic Portfolio Theory and Stock Market Equilibrium.” Journal of Finance 37 (2): 615–24.
Luenberger, David G. 1998. Investment Science. Oxford University Press.
Poundstone, William. 2005. Fortune’s Formula: The Untold Story of the Scientific Betting System That Beat the Casinos and Wall Street. Hill; Wang.

Fan, Y. (2026). Non-Ergodic Wealth Dynamics, the Kelly Criterion and Volatility Drag: From Itô's Lemma on Geometric Brownian Motion and Ruin Barriers to Barbell Portfolios, Read Beside the Shiji's 'Biographies of the Money-Makers' [非遍历性财富动力学、凯利准则与波动率税] (Version 1.0.0). 5D Library. https://doi.org/10.5281/zenodo.23754709 · Licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0).