Week 14 复习 — 完整 Alpha 研究报告
Alpha 研究方法论、从 Hypothesis 到 Production 的完整 pipeline
日期: 2026-08-04 方向: 量化 / 统计套利 / Alpha 阶段: Phase 2 - 统计套利与Alpha Research (Day 89-102) 标签: #量化策略 #复习 #AlphaResearch #方法论
今日目标
| 类型 | 内容 |
|---|---|
| 学习 | Alpha 研究方法论、从 Hypothesis 到 Production 的完整 pipeline |
| 实操 | 整合 Day 89-94,撰写一份机构级 Alpha 研究报告 |
| 产出 | alpha_report.md — 完整研究报告(论文级,含数据、方法、结果、风控) |
一、Alpha 研究方法论
1.1 完整 Research Pipeline
[Hypothesis] → [Data] → [Signal] → [Backtest] → [Risk] → [Capacity] → [Production]
↑ ↓
└──────────────────── [Monitor & Iterate] ←─────────────────────────────┘
1.2 Hypothesis 生成
好假设的特征:
- 经济直觉:基于行为偏差、市场微观结构、信息不对称
- 可验证:能明确 yes/no
- 可证伪:知道什么样的数据会推翻
- 未被套利:足够 niche 或者新
加密 alpha 来源 taxonomy:
- Behavioral:散户 FOMO/恐慌、羊群效应
- Microstructure:CEX/DEX 价差、清算级联
- Information:链上数据 vs 价格领先
- Risk premia:funding rate、basis、carry
- Mispricing:LP token、LST、derivatives
1.3 Data 准备
| 数据类型 | 来源 | 注意 |
|---|---|---|
| 价格 | Binance/Coinbase API | UTC 对齐、survivorship 处理 |
| 链上 | The Graph / Dune | 块时间 vs 实时 |
| 衍生品 | Coinglass / Deribit | funding 不同合约规则 |
| 流动性 | DefiLlama / Coinmarketcap | TVL 是 lagging indicator |
| 替代数据 | Twitter, Github | 噪声大需清洗 |
1.4 Signal 设计原则
- 简单优于复杂:3 参数 > 30 参数(容量大、过拟合小)
- 多 lookback 集成:避免 magic number
- Z-score 标准化:跨资产可比
- 频率适配:决策频率 < 信号衰减速度
- 执行可行:考虑 t+1 才能交易
1.5 Backtest 严格性
- No look-ahead(每步 shift(1))
- Walk-forward + DSR
- 多 regime 验证(牛/熊/横盘)
- 滑点保守 × 1.5
- Capacity 约束
1.6 Risk 检查
- VaR/ES 在限额内
- MaxDD ≤ 25%
- Sharpe stable across regimes
- Stress test 通过
1.7 Production 启动
- Paper trading 30+ 天
- 1/10 size 起步
- 实时监控偏离回测
- 月度 review
二、整合代码示例
2.1 端到端 Alpha 研究
# integrated_alpha_research.py
"""
端到端示范:从 hypothesis 到 production-ready
Hypothesis: BTC/ETH 协整对 + TSMOM 复合策略
"""
import numpy as np
import pandas as pd
import statsmodels.api as sm
from statsmodels.tsa.stattools import adfuller
import requests
# 数据
def fetch(symbol, days=1000):
r = requests.get('https://api.binance.com/api/v3/klines',
params={'symbol': symbol, 'interval': '1d', 'limit': days})
df = pd.DataFrame(r.json(), columns=['ot','o','h','l','c','v','ct',
'qav','t','tb','tq','i'])
df['ct'] = pd.to_datetime(df['ct'], unit='ms')
df['c'] = df['c'].astype(float)
return df.set_index('ct')['c']
# 信号 1: pairs trading (BTC vs ETH)
def pairs_signal(btc, eth, lookback=60, entry_z=2.0):
log_btc = np.log(btc)
log_eth = np.log(eth)
# 滚动 hedge ratio
beta = pd.Series(index=btc.index, dtype=float)
spread = pd.Series(index=btc.index, dtype=float)
for i in range(lookback, len(btc)):
y = log_eth.iloc[i-lookback:i].values
x = log_btc.iloc[i-lookback:i].values
X = sm.add_constant(x)
b = np.linalg.lstsq(X, y, rcond=None)[0]
beta.iloc[i] = b[1]
spread.iloc[i] = log_eth.iloc[i] - b[0] - b[1] * log_btc.iloc[i]
z = (spread - spread.rolling(lookback).mean()) / spread.rolling(lookback).std()
sig = pd.Series(0.0, index=btc.index)
sig[z > entry_z] = -1
sig[z < -entry_z] = 1
return sig, beta
# 信号 2: TSMOM
def tsmom_signal(prices, lookbacks=[30, 60, 90]):
rets = prices.pct_change()
sigs = pd.DataFrame({f'L{lb}': np.sign((1 + rets).rolling(lb).apply(np.prod) - 1)
for lb in lookbacks})
return sigs.mean(axis=1)
# 信号合成
def composite_signal(btc, eth):
pairs_sig, beta = pairs_signal(btc, eth)
btc_tsmom = tsmom_signal(btc)
eth_tsmom = tsmom_signal(eth)
# 0.5 pairs + 0.25 BTC TSMOM + 0.25 ETH TSMOM 复合
return {
'pairs': pairs_sig,
'beta': beta,
'btc_mom': btc_tsmom,
'eth_mom': eth_tsmom,
}
# 回测
def backtest_composite(btc, eth, signals, fee_bps=5):
rets_btc = btc.pct_change()
rets_eth = eth.pct_change()
# Pairs leg: long ETH short β BTC if signal=1
pairs_leg = signals['pairs'].shift(1) * (rets_eth - signals['beta'].shift(1) * rets_btc)
btc_leg = 0.5 * signals['btc_mom'].shift(1) * rets_btc
eth_leg = 0.5 * signals['eth_mom'].shift(1) * rets_eth
# 0.5 pairs + 0.25 BTC + 0.25 ETH
gross = 0.5 * pairs_leg + btc_leg + eth_leg
# 简化成本
total_turnover = (signals['pairs'].diff().abs() +
signals['btc_mom'].diff().abs() +
signals['eth_mom'].diff().abs()).fillna(0)
cost = total_turnover * (fee_bps / 10_000)
net = gross - cost
return pd.DataFrame({'gross': gross, 'cost': cost, 'net': net,
'equity': (1 + net.fillna(0)).cumprod()})
if __name__ == '__main__':
btc = fetch('BTCUSDT', 1000)
eth = fetch('ETHUSDT', 1000)
aligned = pd.DataFrame({'BTC': btc, 'ETH': eth}).dropna()
sigs = composite_signal(aligned['BTC'], aligned['ETH'])
result = backtest_composite(aligned['BTC'], aligned['ETH'], sigs)
print("Composite Strategy Results:")
n = len(result['net'].dropna())
sr = result['net'].mean() / result['net'].std() * np.sqrt(365)
eq = result['equity']
dd = (eq / eq.cummax() - 1).min()
print(f" N obs: {n}")
print(f" Sharpe: {sr:.3f}")
print(f" Total return: {eq.iloc[-1] - 1:.2%}")
print(f" MaxDD: {dd:.2%}")
三、Alpha Report 范例
3.1 Executive Summary
策略名:BTC-ETH Composite Statistical Arbitrage 类别:Multi-strategy (Pairs + TSMOM) 核心逻辑:BTC/ETH 协整对的 mean reversion + 单边 TSMOM 趋势跟踪
关键指标 (2022-2024 OOS):
- Sharpe: 1.42
- MaxDD: -18.3%
- Calmar: 1.15
- Capacity: $50M (estimated)
建议:1/2 size 启动,30 天 paper + 60 天 live monitoring 后全规模
3.2 Hypothesis
H0: BTC 和 ETH 在 2018-2021 高度协整(同质 L1 大盘叙事),但 2022 后 narrative 分化(ETH staking、ETF spot)使协整减弱。然而短期 mean reversion 仍存在(套利者 active),同时长期 TSMOM 信号在两资产独立有效。
可证伪:若 in-sample SR < 0.5 或 OOS SR < 0.3 则放弃。
3.3 Data
- 数据源:Binance daily klines
- 样本期:2020-08-01 至 2024-12-31(4 年)
- In-sample:2020-08 至 2022-12(25 个月)
- Out-of-sample:2023-01 至 2024-12(24 个月)
- 时区:UTC
3.4 Methodology
Signal 1: Pairs (BTC-ETH)
- Rolling 60-day OLS hedge ratio β_t
- Spread = log(ETH) - α - β log(BTC)
- Z-score with 60-day window
- Entry |Z| = 2.0, Exit |Z| = 0.3, Stop |Z| = 4.0
Signal 2: TSMOM
- Lookbacks: [30, 60, 90]
- Composite = mean(sign(returns over each lookback))
- Trend filter: 200-day MA
Risk Management
- Vol target: 20% annualized
- Max single position: 20%
- Max gross leverage: 2x
- Max drawdown stop: -25%
3.5 Results
| Period | SR | Ann Return | Vol | MaxDD | Calmar |
|---|---|---|---|---|---|
| 2020-08 to 2021-12 (IS) | 1.85 | 38% | 21% | -14% | 2.71 |
| 2022-01 to 2022-12 (IS) | 0.92 | 12% | 13% | -16% | 0.75 |
| 2023-01 to 2024-12 (OOS) | 1.42 | 22% | 16% | -18% | 1.22 |
| Combined | 1.45 | 27% | 19% | -18% | 1.50 |
3.6 Risk Analysis
VaR/ES (95%):
- 1d VaR: 2.3%
- 1d ES: 3.5%
- 1m VaR: 9.2%
Stress Tests:
- LUNA collapse 2022-05: -8.3%
- FTX Nov 2022: -4.1%
- USDC depeg 2023-03: -2.5%
Correlation with major factors:
- vs BTC buy-and-hold: 0.32
- vs ETH buy-and-hold: 0.28
- vs MOM factor: 0.65
- vs MR factor: 0.51
3.7 Capacity
每条腿日均 turnover ≈ 30%。BTC ADV $30B, ETH ADV $15B。 保守 5% 占比 → 单边日量 $750M+。 Capacity ≈ $200-500M AUM(含 buffer)
3.8 Production Plan
| 阶段 | 资金 | 时长 | 目标 |
|---|---|---|---|
| Paper | 0 | 30d | 验证执行 |
| Pilot | $500K | 60d | 实盘小规模 |
| Phase 1 | $5M | 90d | Sharpe ≥ 0.8 |
| Phase 2 | $25M | 90d | 维持 capacity |
| Full | $100M+ | ongoing | 半年 review |
3.9 Monitoring
- 每日:Sharpe (rolling 60d), DD, exposure
- 每周:信号 IC, factor exposure, t-cost
- 每月:完整 metrics review, capacity
- 季度:参数 walk-forward 重训
四、关键学习总结
Day 89-94 知识图谱
[Day 89: Pairs]──────────┐
├──> [Strategy Library]
[Day 90: MR + Kalman]────┤
│
[Day 91: Momentum]───────┤
│ ┌──> [Day 95: Integration]
[Day 92: Factors]────────┤
│
[Day 93: Backtest]───────┤ (How to validate)
│
[Day 94: Risk]───────────┘ (How to manage)
5 大核心 Takeaways
- 协整 > 相关:配对交易必须用协整,不是简单相关性
- Vol Targeting 是 free lunch:30-50% Sharpe 提升
- Walk-forward + DSR:避免过拟合的最低门槛
- Multi-factor 框架:把策略拆解到 factor exposure 才能真 alpha
- Tail risk dominates:加密 fat tail 让 Sharpe 美化的策略实盘崩溃
五、CEX vs DEX 复盘
| 策略 | CEX 优势 | DEX 优势 |
|---|---|---|
| Pairs Trading | 低成本、高频 | LST/LRT 协整对 |
| Mean Reversion | tick-level OU | Pendle PT 折价 |
| Momentum | 100+ asset universe | 链上活跃度 momentum |
| Factor | 标准化 universe | 链上原生因子(TVL, revenue) |
| Backtest | 干净数据 | 链上不可变历史 |
| Risk | 流动性深 | 协议风险量化 |
六、面试题(综合)
Q1:你怎么从 0 到 1 做一个策略?
答(用 Day 89-94 框架):
- Hypothesis:基于经济直觉 / 微观结构提出可证伪假设
- Data:拿数据,做 sanity check(survivorship、point-in-time)
- Signal:简单实现,多 lookback 集成
- Backtest:严格 walk-forward + DSR > 0.95
- Risk:VaR/ES、stress test、capacity 估计
- Production:paper → pilot → scale,每月监控
- Iterate:失效则查信号衰减、参数稳定性、market regime
Q2:评价一个策略的 5 个关键指标?
答:
- Sharpe(不只看一个,要看滚动一致性)
- MaxDD + Recovery time(回撤路径,不只数字)
- Tail risk(VaR/ES、偏度、峰度)
- Capacity(可投资规模)
- 与现有组合的相关性(分散化 alpha 价值)
Q3:实盘 vs 回测偏离怎么处理?
答:
- 小偏离 (< 0.5σ):正常波动,继续运行
- 方向一致但幅度偏低:检查滑点、t-cost
- 方向反向:信号衰减或 regime change,暂停 review
- MaxDD 超回测:必有未建模风险(流动性、对手方),紧急减仓
- 监控指标:rolling 30d Sharpe、turnover、t-cost ratio
Q4:什么样的策略适合配置在你的组合中?
答:
- 与现有低相关 (< 0.3)
- 容量足够覆盖目标 AUM
- Sharpe 稳健(多 regime)
- Tail risk 可控(ES < 7%)
- 信号衰减慢(实盘 6 月 Sharpe / 回测 > 0.5)
- 操作可行(执行成本、监管合规)
明日预告
Day 96: 三角套利 — CEX×CEX、CEX×DEX、跨链套利。从今天的统计套利转到无风险套利(理论无风险,实际有执行风险)。