返回 Expert 笔记
Expert Day 95

Week 14 复习 — 完整 Alpha 研究报告

Alpha 研究方法论、从 Hypothesis 到 Production 的完整 pipeline

2026-08-04
Phase 2 - 统计套利与Alpha Research (Day 89-102)
量化策略复习AlphaResearch方法论

日期: 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 生成

好假设的特征

  1. 经济直觉:基于行为偏差、市场微观结构、信息不对称
  2. 可验证:能明确 yes/no
  3. 可证伪:知道什么样的数据会推翻
  4. 未被套利:足够 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 APIUTC 对齐、survivorship 处理
链上The Graph / Dune块时间 vs 实时
衍生品Coinglass / Deribitfunding 不同合约规则
流动性DefiLlama / CoinmarketcapTVL 是 lagging indicator
替代数据Twitter, Github噪声大需清洗

1.4 Signal 设计原则

  1. 简单优于复杂:3 参数 > 30 参数(容量大、过拟合小)
  2. 多 lookback 集成:避免 magic number
  3. Z-score 标准化:跨资产可比
  4. 频率适配:决策频率 < 信号衰减速度
  5. 执行可行:考虑 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

PeriodSRAnn ReturnVolMaxDDCalmar
2020-08 to 2021-12 (IS)1.8538%21%-14%2.71
2022-01 to 2022-12 (IS)0.9212%13%-16%0.75
2023-01 to 2024-12 (OOS)1.4222%16%-18%1.22
Combined1.4527%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

阶段资金时长目标
Paper030d验证执行
Pilot$500K60d实盘小规模
Phase 1$5M90dSharpe ≥ 0.8
Phase 2$25M90d维持 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

  1. 协整 > 相关:配对交易必须用协整,不是简单相关性
  2. Vol Targeting 是 free lunch:30-50% Sharpe 提升
  3. Walk-forward + DSR:避免过拟合的最低门槛
  4. Multi-factor 框架:把策略拆解到 factor exposure 才能真 alpha
  5. Tail risk dominates:加密 fat tail 让 Sharpe 美化的策略实盘崩溃

五、CEX vs DEX 复盘

策略CEX 优势DEX 优势
Pairs Trading低成本、高频LST/LRT 协整对
Mean Reversiontick-level OUPendle PT 折价
Momentum100+ asset universe链上活跃度 momentum
Factor标准化 universe链上原生因子(TVL, revenue)
Backtest干净数据链上不可变历史
Risk流动性深协议风险量化

六、面试题(综合)

Q1:你怎么从 0 到 1 做一个策略?

(用 Day 89-94 框架):

  1. Hypothesis:基于经济直觉 / 微观结构提出可证伪假设
  2. Data:拿数据,做 sanity check(survivorship、point-in-time)
  3. Signal:简单实现,多 lookback 集成
  4. Backtest:严格 walk-forward + DSR > 0.95
  5. Risk:VaR/ES、stress test、capacity 估计
  6. Production:paper → pilot → scale,每月监控
  7. Iterate:失效则查信号衰减、参数稳定性、market regime

Q2:评价一个策略的 5 个关键指标?

  1. Sharpe(不只看一个,要看滚动一致性)
  2. MaxDD + Recovery time(回撤路径,不只数字)
  3. Tail risk(VaR/ES、偏度、峰度)
  4. Capacity(可投资规模)
  5. 与现有组合的相关性(分散化 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、跨链套利。从今天的统计套利转到无风险套利(理论无风险,实际有执行风险)。