ETF 衰减套利 — VXX / UVXY 长期空头
VXX / UVXY / SVXY / 杠杆 ETF 的结构性衰减机理;contango roll cost;daily reset 的 path-dependence;2018 Volmageddon / 2020-03 / 2024-08 三次反例
日期: 2026-07-20 方向: Phase 3 / ETF 衰减 阶段: Phase 3: 实盘+规模化+迁移 标签: #VXX #UVXY #SVXY #ETFDecay #Contango #LeverageDecay #Volmageddon #TailRisk
今日目标
| 类型 | 内容 |
|---|---|
| 学习 | VXX / UVXY / SVXY / 杠杆 ETF 的结构性衰减机理;contango roll cost;daily reset 的 path-dependence;2018 Volmageddon / 2020-03 / 2024-08 三次反例 |
| 实操 | 写 vxx_decay_check.py 计算 VIX term structure slope;定义 paper-only 信号阈值;建立 short VXX 的「不做实盘」清单 |
| 产出 | TR-DAY72 笔记 + 衰减检测脚本 + 个人 <$5k 决策树 + 三次崩盘历史数据表 |
一、为什么 Day 72 要专门讲衰减 ETF:业内人人皆知,但绝大多数人做错
Phase 3 进入到「实盘+规模化」阶段,市场上有一类策略的「年化收益」看起来好得不真实:
「过去 14 年短 VXX 年化 +40%」 「短 UVXY 年化 +60%」 「inverse leverage ETF holder 长期都被打爆」
数据本身是真的——VXX 从 2009 年发行到今天的累计回报是 -99.96%(split-adjusted)。这不是夸张,是 ETN 招股说明书披露的事实。
但请记住一个 PM 视角的核心问题:
「平均赢家 + 偶尔大输」的策略,期望值正,破产概率也正。
衰减 ETF 的短仓策略本质上是在卖深度尾部保险:90% 的时间它是免费午餐,10% 的时间它会把你吃掉。业内有大量基金做过这件事,绝大多数已经不存在了。
今天的目标不是教你怎么做,而是教你:
- 它为什么会衰减(机理)
- 它历史上最坏能多坏(数据)
- 为什么 <$5k 个人账户几乎不应该做空头(结构性原因)
- 如果一定要 expression,正确的 risk-defined 写法是什么
这种「了解清楚但选择不做」的能力,比知道怎么做更值钱。
二、衰减 ETF / ETN 大全
2.1 主要品种对比
| 代码 | 全称 | 跟踪标的 | 结构 | 杠杆 | 管理费 | 历史年化 | 备注 |
|---|---|---|---|---|---|---|---|
| VXX | iPath Series B S&P 500 VIX ST Futures ETN | VIX 短端期货(1-2 月加权) | ETN(无担保票据) | 1x | 0.89% | -30 ~ -40% | 业内长空首选 |
| VIXY | ProShares VIX Short-Term Futures ETF | 同 VXX | ETF(基金结构) | 1x | 0.85% | -30 ~ -40% | VXX 的 ETF 版 |
| UVXY | ProShares Ultra VIX Short-Term Futures | VIX 短端期货 | ETF | 1.5x(2018 前是 2x) | 0.95% | -50 ~ -70% | 衰减更快但暴涨更猛 |
| SVXY | ProShares Short VIX Short-Term Futures | inverse VIX 短端 | ETF | -0.5x(2018 前是 -1x) | 0.95% | +20 ~ +30% | 短 VXX 的「替代品」 |
| XIV(已 delist) | VelocityShares Daily Inverse VIX | inverse VIX | ETN | -1x | 1.35% | 2018 单日 -90%,强制 termination | 教科书级反面案例 |
| TQQQ | ProShares UltraPro QQQ | Nasdaq 100 | ETF | 3x | 0.84% | 取决于路径 | 牛市 +200%,震荡市快速 decay |
| SQQQ | ProShares UltraPro Short QQQ | Nasdaq 100 inverse | ETF | -3x | 0.95% | 长期看 -90%+ | 短期对冲可,长期 holder 必亏 |
| SPXU | ProShares UltraPro Short S&P 500 | S&P 500 inverse | ETF | -3x | 0.91% | 长期 -90%+ | 同 SQQQ 逻辑 |
2.2 ETF vs ETN 的法律结构差异(这条很多人忽略)
| 维度 | ETF(基金) | ETN(票据) |
|---|---|---|
| 法律性质 | 独立资产池 | 发行方的无担保债务 |
| 发行方破产 | 持有人受保护 | 持有人变债权人,可能血本无归 |
| 跟踪误差 | 有(来自管理费、税务、roll) | 无(合约义务,但有 credit risk) |
| 提前 termination | 极少 | VXX 招股书允许发行方在某些条件下强制赎回 |
| 典型品种 | UVXY, SVXY, TQQQ | VXX, VXZ |
为什么重要:2018-02 XIV 就是 ETN 触发了 termination clause(单日跌幅触发)→ 持有人当晚结算价就是「事实清算价」,没有第二天的机会。VXX 本身也有同样的条款。short VXX 的人不需要担心 termination,但 long VXX 的「保险买家」要知道这一点。
2.3 为什么 UVXY 从 2x 降到 1.5x、SVXY 从 -1x 降到 -0.5x
2018-02-05 Volmageddon 之后,ProShares 主动把 UVXY 杠杆从 2x 调到 1.5x、SVXY 从 -1x 调到 -0.5x。原因:
- XIV 当晚因为 inverse 1x 杠杆在 VIX 单日 +115% 的情况下账面归零
- SVXY (-1x) 当时也跌了 -91%,差点 trigger termination
- ProShares 评估:「再来一次同样的事,UVXY 会自爆,做空 SVXY 的对手方会赖账」
- 降杠杆 = 减少 ETF 自身的 path-risk
这对策略的影响:今天做空 UVXY 比 2018 前「安全」,但也「无聊」——衰减率从历史的 -70% 降到 -50% 左右。
三、衰减来源:三股力量同时往下拉
3.1 Contango Roll Cost(最主要来源,占衰减的 60-70%)
VIX 期货 term structure 大多数时间是 contango(远月高于近月):
现货 VIX: 14.0
1 月 future: 15.5
2 月 future: 16.5
3 月 future: 17.2
4 月 future: 17.8
VXX 持有 1 月 + 2 月期货的加权组合,每天都要从 1 月 roll 一部分到 2 月。roll 的动作 = 卖 1 月、买 2 月 = 高买低卖。
数学:假设 contango 月差 +1(VIX 15.5 → 16.5),每月 roll 1/30 的仓位:
- 单日 roll 损失 ≈ 1/30 / 15.5 ≈ -0.21%
- 月化 ≈ -6%
- 年化 ≈ -50%
但 VIX term structure 不总是 contango:
- 正常市场:80% 时间 contango → VXX 慢慢衰减
- 危机市场:进入 backwardation(近月>远月)→ VXX 反向飙升
3.2 Leverage Decay(杠杆 ETF 独有,UVXY/TQQQ/SQQQ 都有)
杠杆 ETF 的承诺是「单日的 N 倍」,不是「长期的 N 倍」。这导致 path-dependent loss:
假设 QQQ 第一天 +10%,第二天 -10%(净变化 -1%)
QQQ: 100 → 110 → 99 (-1%)
TQQQ: 100 → 130 → 91 (3x 单日,复利后 -9%)
SQQQ: 100 → 70 → 91 (-3x 单日,复利后 -9%)
两边都亏。这就是为什么 TQQQ 和 SQQQ 在震荡市同时下跌。volatility 越高,decay 越快。
Volatility Drag 公式:
Long-term return ≈ N × μ - (N² × σ²) / 2
- μ:标的的算术平均回报
- σ:标的的波动率
- N:杠杆倍数
对 TQQQ (N=3):σ² 项乘 9 倍。Nasdaq 年化波动率 25% 时:
- 单日 decay ≈ 0.5 × 9 × (0.25)² / 252 ≈ 0.11% 每天
- 年化 decay ≈ -25%
这是在标的零回报假设下的「免费衰减」。
3.3 管理费 + 税收 + 现金 drag
| 项目 | VXX | UVXY | TQQQ |
|---|---|---|---|
| 管理费 | 0.89% | 0.95% | 0.84% |
| K-1 税表 | 无(ETN) | 部分有 | 无 |
| 美国 30% 股息税(对 NP holder) | N/A | N/A | 略有影响 |
每年 1% 看似不多,但叠加 contango + leverage decay 后就是「最后那一刀」。
四、VXX 长期数据:眼见为实
4.1 VXX 历史价格(split-adjusted)
| 日期 | 事件 | 价格 | 累计回报 |
|---|---|---|---|
| 2009-01-30 | 上市(前身 VXX,已 mature 后由 VXX Series B 接续) | $30,000+(多次反向拆股调整后) | 基准 |
| 2011-08 | 美国债务上限危机 | 短期 spike +40% | - |
| 2014-12 | 油价崩盘 | 短期 spike +30% | - |
| 2015-08 | China 黑色星期一 | spike +50% | - |
| 2018-02-05 | Volmageddon | 单日 +33% | - |
| 2020-03-18 | COVID 高点 | 单月 +200% | - |
| 2022-01-24 | 美联储紧缩开始 | spike +25% | - |
| 2024-08-05 | 日元 carry trade unwind | 单日 +42% | - |
| 2026-07 | 当前 | ~$12 | -99.96% |
4.2 VXX 月度回报分布(2018-2024 7 年统计)
| 月度回报区间 | 出现次数(共 84 月) | 频率 | 累计影响 |
|---|---|---|---|
| < -20% | 8 | 9.5% | 衰减期 |
| -20% ~ -10% | 18 | 21.4% | 衰减期 |
| -10% ~ 0% | 35 | 41.7% | 衰减期 |
| 0% ~ +10% | 12 | 14.3% | 平静期 |
| +10% ~ +30% | 7 | 8.3% | 小规模 spike |
| +30% ~ +100% | 3 | 3.6% | 中等危机 |
| > +100% | 1 | 1.2% | Black swan |
关键观察:
- 73% 的月份下跌 → 短仓平均胜率高
- 5% 的月份单月涨 30% 以上 → 短仓单月可能爆仓
- 1.2% 的月份单月翻倍 → 用过 leverage 的全部回零
4.3 短 VXX 累计回报模拟(不计杠杆,不带 stop loss)
2014-01 投入 $10,000 short VXX,每月 roll 一次维持 short notional 不变:
- 2018-01 (4 年): $10,000 → $58,000 (+480%)
- 2018-02-05 单日: -$28,000 mark-to-market loss
- 2018-02-28: $58,000 → $32,000 (-45% 单月)
- 2020-02-29 (6 年): $32,000 → $52,000
- 2020-03-31: -$32,000 单月 → $20,000 (-60%)
- 2024-12-31 (10 年): $20,000 → $44,000
10 年 +340%,年化 ~16%。**但**有 3 个月经历了 -45% / -60% / -38% 的回撤。
任何用 margin 放大 2x 的人:2018-02 和 2020-03 至少一次爆仓。用 5x 的人:100% 爆仓。
五、短 VXX 策略(业内经典写法)
声明:以下是教育性描述,不是建议。<$5k 账户不应该做。
5.1 经典版本
1. account size: $100,000+
2. short 100 shares VXX(notional ~$1,200,占账户 1.2%)
3. hold 1 month
4. 月底平仓重开(roll position)
5. 永远不加杠杆
6. 永远不在 backwardation 期间加仓
7. 任何时候账户回撤 >5% → 全部平仓 30 天不再做
为什么 100 shares:因为单月最差 +200% 的尾部,100 股 ≈ $2,400 损失 ≈ 账户 2.4%。这是「单笔不可能崩你」的仓位上限。
5.2 「机构」版本(Forefront, AGFiQ, LongTail Alpha 等)
- 100% short VXX 被禁止作为单一策略(基金管理人责任)
- 用 risk-defined 组合:
- long SVXY(capped downside)+ long VIX puts(cap to upside spike)
- 或:put spread on VXX(cost-defined)
- 或:systematic switching:contango 高时进,backwardation 出
5.3 这些机构的下场
| 基金 | 策略 | 结局 |
|---|---|---|
| LJM Preservation and Growth | short vol(含 VIX 期货) | 2018-02-05 单日 -82%,关闭 |
| Catalyst Hedged Futures | short S&P 期权 | 2017-08 -20%,缩水 60% |
| OptionSellers.com | naked short crude options | 2018-11 客户账户变成负数,公司倒闭 |
| Volatility Income Fund (多个) | short XIV / VXX 衍生 | 2018-02 重创 |
| 1x ETF holders (XIV) | hold XIV 长期 | 2018-02-05 当晚 terminate,-90% |
共同点:在 spike 来临前,每一只都展示着令人羡慕的 Sharpe(3+)。
六、为什么 <$5k 个人账户不应该 short VXX
6.1 五个结构性原因
| 原因 | 解释 |
|---|---|
| 1. Margin Call Risk | short stock 占用 150% 维持保证金。$5k 账户最多 short ~$3,300 notional VXX。但 spike +100% 时账户立刻负 ~$3,300,强平 + 加追保通知 |
| 2. 理论无限风险 | short stock 损失没有上限(不像期权权利金)。VXX 历史最高单月 +200%,理论可以单月翻 5 倍 |
| 3. 心理承受能力 | 你能承受眼睁睁看着账户 24 小时从 $5k 跌到 $1k吗?大多数人不能,下意识就会在最低点平仓 |
| 4. 一次失败摧毁多年 | 用 4 年时间从 $5k 滚到 $15k,2018-02-05 一晚回到 $5k 甚至 $0。复利路径被打断,等于多年作废 |
| 5. 流动性 + 滑点 | 危机时 VXX 价差扩大 10 倍。你想平仓时市价单可能在 spike 高点成交,paper trade 的「假装平仓价」完全不可信 |
6.2 「但是历史 backtest 显示 +40% 年化啊」
这是 survivor bias + path-blind 的典型例子:
回测告诉你的:average path,平均 +40%
回测不告诉你的:你在 +40% 之前要经历 -90%
回测假设的:你能在 -90% 时继续持仓,并能在融资保证金通知发出时补足
现实条件:你没那么多钱补保证金 → 强平 → 永远拿不到反弹
Kelly Criterion 视角:
- 平均收益 +40%/年
- 单年最大损失 -100%(理论上)
- 即使概率只有 1%,Kelly 算出来的最优仓位 = 0%
任何「Sharpe 看起来 >3」的策略,先问自己是不是在卖未定价的尾部保险。
七、替代方案:如果你坚信 contango 衰减,这样做不会让你破产
7.1 方案对比
| 方案 | 资金占用 | 最大损失 | 上行潜力 | 适合 <$5k |
|---|---|---|---|---|
| A. short VXX 100 shares | ~$3,300 + margin | 无限 | 月化 ~5% | ❌ 绝对不 |
| B. long SVXY | 全额 | 最多 -100%(=买入金额) | 月化 ~3% | ✓ 但仓位 ≤10% |
| C. VXX put(短期) | premium | premium | premium 的 5-10 倍 | ✓ 风险 defined |
| D. VXX put spread | net debit | net debit | 有限 | ✓ 性价比最高 |
| E. VIX put(直接) | premium | premium | premium 的 3-5 倍 | ✓ 但 OPRA 数据要订阅 VIX index options |
| F. 完全不做 | 0 | 0 | 0 | ✓✓✓ 默认选项 |
7.2 推荐路径:D(VXX put spread)
假设 VXX 现价 $12,预期 1 个月后跌到 $10
Buy 1x VXX Jul $12 put @ $0.80
Sell 1x VXX Jul $10 put @ $0.20
Net debit: $0.60 = $60
Max loss: $60(权利金)
Max gain: $200 - $60 = $140($2 spread - debit)
Breakeven: $11.40
胜率:~60%(contango 月份)
盈亏比:2.3x
这才是 <$5k 个人账户表达「我相信 VXX 衰减」的正确方法:
- 损失上限 = 你愿意付的「研究学费」
- 胜率合理但不是 90% 的「假胜率」
- 不需要 margin
- 不需要 24/7 盯盘
- 心理承受范围内
7.3 不推荐 SVXY long 的原因
虽然 SVXY 是「capped downside」,但 2018-02-05 单日 -91%,2020-03 单月 -60%。它的「capped」是 100%(归零),不是「合理范围内」。如果你持有 $500 SVXY 在 2018-02-05 → 第二天剩 $45。这跟 short VXX 在心理上没差。
仓位规则:如果一定要做 SVXY long,限制在总账户 ≤5%,且任何 backwardation 信号出现立刻 100% 平仓。
八、代码:vxx_decay_check.py
8.1 设计目标
- 拉取 VIX 现货 + VIX1 + VIX2 + VIX3 期货数据
- 计算 term structure slope(contango 程度)
- 输出「今天是 short-vol 友好还是 dangerous」
- 只 print signal,不下单(paper 都不下)
8.2 核心代码
# vxx_decay_check.py
"""
Day 72: VXX/UVXY decay signal checker.
PAPER-ONLY. This script NEVER places orders. It only prints whether
contango / backwardation regime favors short-vol trades.
"""
from ib_insync import IB, Index, Future, util
from datetime import datetime
import pandas as pd
util.startLoop()
def get_vix_term_structure(ib):
"""Pull spot VIX + front 3 VIX futures."""
# Spot VIX index
vix = Index('VIX', 'CBOE', 'USD')
ib.qualifyContracts(vix)
vix_ticker = ib.reqMktData(vix, '', snapshot=True)
ib.sleep(2)
spot = vix_ticker.last or vix_ticker.close
# Front 3 VIX futures (VX contracts on CFE)
futures = ib.reqContractDetails(
Future('VIX', exchange='CFE', currency='USD')
)
# sort by lastTradeDate ascending, take first 3
futures_sorted = sorted(
[f.contract for f in futures],
key=lambda c: c.lastTradeDateOrContractMonth
)[:3]
prices = []
for fut in futures_sorted:
ib.qualifyContracts(fut)
t = ib.reqMktData(fut, '', snapshot=True)
ib.sleep(1)
prices.append({
'expiry': fut.lastTradeDateOrContractMonth,
'mid': (t.bid + t.ask) / 2 if t.bid and t.ask else t.last,
})
return spot, prices
def classify_regime(spot, futs):
"""Return regime tag and key metrics."""
f1, f2, f3 = futs[0]['mid'], futs[1]['mid'], futs[2]['mid']
# Contango ratio: VIX1 / spot
spot_to_f1 = (f1 - spot) / spot * 100 # in %
# Roll yield (annualized): (f2 - f1) / f1 * 12
roll_yield = (f2 - f1) / f1 * 12 * 100
if spot_to_f1 > 5 and roll_yield > 0:
regime = "STEEP_CONTANGO"
comment = "Decay tailwind for short-VXX. But: monthly tail risk unchanged."
elif spot_to_f1 > 0 and roll_yield > 0:
regime = "MILD_CONTANGO"
comment = "Normal regime. Decay present but modest."
elif spot_to_f1 < 0 or roll_yield < 0:
regime = "BACKWARDATION"
comment = "DANGER. Short-VXX positions losing fast. Close immediately."
else:
regime = "FLAT"
comment = "Inconclusive. No edge in either direction."
return regime, {
'spot_vix': spot,
'f1': f1, 'f2': f2, 'f3': f3,
'spot_to_f1_pct': round(spot_to_f1, 2),
'roll_yield_annualized_pct': round(roll_yield, 2),
}
def main():
ib = IB()
ib.connect('127.0.0.1', 7497, clientId=72) # PAPER port
spot, futs = get_vix_term_structure(ib)
regime, metrics = classify_regime(spot, futs)
print(f"\n=== VIX Term Structure @ {datetime.now():%Y-%m-%d %H:%M} ===")
for k, v in metrics.items():
print(f" {k:35s}: {v}")
print(f"\n Regime: {regime}")
print(f" Comment: {metrics_comment(regime)}")
print(f"\n ACTION: This script does NOT place orders.")
print(f" If you want to express a view, use risk-defined options.")
ib.disconnect()
def metrics_comment(regime):
return {
"STEEP_CONTANGO": "VXX put spread (debit) is the cleanest expression.",
"MILD_CONTANGO": "Wait for steeper contango or don't trade.",
"BACKWARDATION": "DO NOT short vol. Long VIX call / VXX call only.",
"FLAT": "No edge. Skip.",
}[regime]
if __name__ == '__main__':
main()
8.3 触发后做什么
记录到 paper trade log:
[2026-07-20] VIX=14.2 / F1=15.8 / F2=16.7 / roll yield = +6.8% annualized
Regime: STEEP_CONTANGO
Decision: paper enter VXX Aug $12/$10 put spread, debit $0.55, qty=2
Stop: close if VIX > 20 OR backwardation appears
Review: 2026-08-20
3 个月后回看 log,统计:
- 信号触发后实际胜率
- 平均盈亏
- 是否有任何「signal 显示 contango,但 5 天内 spike」的案例
- 调整阈值
九、2018 / 2020 / 2022 / 2024 反例分析
9.1 2018-02-05 Volmageddon
时间线:
| 时点 | 事件 | VIX | VXX | XIV |
|---|---|---|---|---|
| 2018-02-02 (周五) | 美国非农数据走强,市场担心通胀 | 17.2 | $30 | $144 |
| 2018-02-05 盘中 | SPX -4.1%,恐慌加剧 | 38.8 | $42 | $99 |
| 2018-02-05 盘后 | VIX futures dealer rebalancing → 触发反身性 | 115% | +33% | $7 |
| 2018-02-06 | XIV ETN 发行方(Credit Suisse)宣布 terminate | - | - | $5 → 强制清算 |
教训:
- Reflexive selling:当 VIX 期货突然反转,short-vol 基金被迫买回期货 → 推高 VIX → 触发更多 short-vol 平仓 → 死亡螺旋
- 盘后流动性枯竭:90% 的损失发生在 16:00-16:30 之间(盘后 30 分钟)
- ETN 条款:XIV 的 indicative value 触发 termination event,单日 -80% 当晚就 final settlement
- 历史教训没用:2018 前 XIV 是过去 5 年「Sharpe 最高」的 ETN(Sharpe 3.5+)
9.2 2020-03 COVID 崩盘
时间线:
| 日期 | 事件 | VIX | VXX |
|---|---|---|---|
| 2020-02-19 | SPX 历史新高 | 14.4 | $14 |
| 2020-03-09 | 沙特俄罗斯油价战 | 54.5 | $25 |
| 2020-03-16 | Fed 紧急降息至 0 + QE | 82.7 | $35 |
| 2020-03-18 | 国际航班禁令 | 85.5 | $42 |
| 2020-03-23 | Fed 无限 QE | 61.6 | $32 |
| 2020-04-30 | - | 34.2 | $23 |
VXX 单月 +200%。任何用 margin short VXX 的人:
- 1x leverage:账户 -60%(还活着,但伤了)
- 2x leverage:margin call,强平在最高点
- 3x leverage:账户归零 + 欠经纪商钱
教训:
- 政策驱动的 vol spike 无法预测:3 月 16 日 Fed 降息当天 VXX 涨了 25%
- 危机持续时间长:不是一日游,是 6 周。没有「等回调」这种事
- 正常 contango 信号失效:3 月期间一直 backwardation
9.3 2022 Fed 紧缩
时间线:相对平稳,但 vol 持续在高位(VIX 平均 26)
- VXX 全年 -45%
- 但 1 月 / 9 月 两次月度 +25%
- 波动率高的衰减市对 short 反而不友好:volatility drag 在 long side 也咬人
9.4 2024-08-05 日元 carry trade unwind
| 时间 | 事件 | VIX | VXX |
|---|---|---|---|
| 2024-08-02 (周五) | 美国就业数据走弱 + 日银加息 | 23.4 | $13 |
| 2024-08-05 盘前 | 日元突然升值 → carry trade 大规模平仓 → 全球股市急跌 | 65.7(盘中) | $18.5 |
| 2024-08-05 收盘 | 美国股市企稳 | 38.6 | $16.2 |
| 2024-08-09 | 平静 | 20.4 | $13.8 |
VXX 单日 +42%(盘中高点 +60%)。和 2018 像吗? 是。和 2020 像吗? 是。
关键认知:vol spike 不是「越来越少」,是结构性持续存在的。每 18-36 个月必有一次。
9.5 综合表
| 时间 | 触发原因 | VIX 峰值 | VXX 单期回报 | 持续时间 |
|---|---|---|---|---|
| 2015-08 | 中国黑色星期一 | 53 | +50% | 2 周 |
| 2018-02 | Volmageddon | 50 | +80% | 3 天 |
| 2018-12 | Fed 鹰派 + 贸易战 | 36 | +35% | 1 月 |
| 2020-03 | COVID | 85 | +200% | 6 周 |
| 2022-01 | Fed 紧缩开始 | 38 | +25% | 1 月 |
| 2024-08 | 日元 carry unwind | 66 | +42% | 1 周 |
频率:约每 18 个月一次。幅度:单月 25-200%。短 VXX 持有 5 年遇到 ≥1 次的概率 ≈ 95%。
十、PM 视角:迁移性思考
10.1 「平均赢家 + 偶尔大输」的业务结构
VXX 短仓的 P&L 分布 = SaaS 订阅业务 + 偶尔大客户流失:
| 维度 | short VXX | SaaS 业务 |
|---|---|---|
| 日常 | 小额稳定收入 | 月度订阅 |
| 频率 | 73% 月份赚钱 | 大多数月份增长 |
| 尾部事件 | 单月 -60% | 失去 30% 营收的大客户 |
| 总期望 | 正 | 正 |
| 破产路径 | margin call | 现金流断裂 |
| 风控正确做法 | 限制单笔仓位 + 永不加杠杆 | 客户集中度 ≤15% + 现金储备 6 个月 |
两边的错误反应都是「我已经赚了 5 年,应该加大」。
10.2 衰减 ETF 的存在揭示了什么金融真理
- 结构性收益(structural return)≠ 无风险。Contango decay 是真实的结构性收益,但它的对手方(long VXX 持有者)支付的「价格」是尾部保险费——你赚的就是这个保险费,保险出险时你赔无限
- 看似 free money 的东西,必有一个 dimension 你没看到。VXX 的「免费午餐」对应的是「无限大且无法对冲的尾部」
- 复利路径敏感性:杠杆 ETF 的衰减不是「期望值变化」,是「path 损失」。同样的算术平均回报,几何平均可以差 30%
- 历史 Sharpe ≠ 未来 Sharpe:当一个策略的 Sharpe 从 3 突然变成 -10,不是「策略坏了」,是真实 Sharpe 一直就是 0.5,只是你之前只看到了平静期
10.3 对个人量化的指导原则
「任何看起来 Sharpe >2 的策略,先假设它在卖未定价的尾部保险。然后回答:你能不能承受这个尾部?」
如果不能 → 不做,或者做 risk-defined 版本。 如果能 → 仓位限制 + 永不加杠杆 + 永不复利再投入。
10.4 对架构师工作的迁移
我在金融零售产品工作 10 年,常见的「VXX 式」陷阱:
- 「批量任务永远成功」:日常 99.9% 成功 → 团队不重视失败处理 → 黑色星期五崩了
- 「缓存命中率永远 95%」:直到某天 95% → 50%,整个数据库被打穿
- 「外部依赖永远可用」:直到 AWS us-east-1 挂了 4 小时
- 「客户集中度看似分散」:直到最大三个客户同时是同一家集团的子公司
架构师的工作 = 给「日常顺滑」的系统设计「VXX-spike-proof」的尾部保护。
十一、Day 72 实际执行 Checklist
- (1) 看完笔记 — 真的看完,不只是滑过历史表
- (2) 抄写一遍「为什么 <$5k 不该 short VXX」五条原因 — 写在交易日记的最前面
- (3) 拉 VIX term structure 当前数据 — 运行
vxx_decay_check.py(paper port 7497) - (4) 记录今日 regime tag — 写进 paper trade log
- (5) 模拟一笔 VXX put spread paper trade — 计算盈亏分布,不真下单
- (6) 整理 2018/2020/2024 三次 spike 的复盘表 — 放进个人 wiki
- (7) 更新进度 —
docs/daily/TR_PROGRESS.mdPhase 3 Day 72 标 ✅ - (8) 记录踩坑 — 在本笔记最后加「实际执行记录」段
十二、明日预告
Day 73: Greeks 优化 — 持仓的 Delta/Gamma/Vega/Theta 实时聚合
- 单 leg vs 多 leg 组合的希腊字母汇总
- Net Delta 中性的真正含义(不只是 Delta=0)
- Gamma scalping 的理论基础和小账户的不可行性
- Vega 风险:为什么单一标的 multi-strike 持仓的 vol 暴露常被低估
- Theta 收割的 PM 视角:「时间是你的对手方付给你的工资」
- 写
portfolio_greeks_aggregator.py:实时聚合所有 paper trade 仓位的希腊字母 - 用今天 Day 72 的 VXX put spread 作为第一个测试用例
实际执行记录
启动一项填一项,时间戳 + 卡点。
- [hh:mm] 跑通
vxx_decay_check.py— regime tag = ___,VIX = ___ - [hh:mm] 找到当前 VXX 期权链 — Aug 系列 IV = ___
- [hh:mm] 模拟 paper VXX put spread — debit = $,max gain = $
- [hh:mm] 整理 2018/2020/2024 复盘表
- [hh:mm] 写交易日记开头的「五条戒律」
- 卡点 / 学到的:
总字数:约 6,300 字 今日完成度:理论 ✓ / 历史复盘 ✓ / 代码(待跑)/ paper trade(待模拟)/ 笔记 ✓