Beta套利配对交易策略设计方案2
Beta套利配对交易策略设计方案
1. 概述
Beta套利是一种基于ETH/BTC下行联动性的配对交易策略。通过追踪ETH在下跌行情中相对于BTC的收益率比值(beta),识别ETH相对强势的时机,做多ETH同时做空BTC,捕获两者之间的相对价值回归。
核心假设:当ETH的下行beta较低且趋势收敛时,说明ETH在下跌中比BTC更抗跌,暗示短期相对强势,此时做多ETH/做空BTC存在正期望。
1.1 与现有策略的区别
| 维度 | 现有协整Z-Score策略 | Beta套利策略 |
|---|---|---|
| 信号来源 | 价差Z-score偏离与回归 | 下行beta收敛 |
| Beta估计 | IMM Kalman滤波器(全样本) | 仅负收益K线的收益率比值 |
| 过滤体系 | 4层动量过滤器 + 协整门控 | 无外部过滤,信号自包含 |
| 交易方向 | 双向(多/空ETH) | 单向(固定做多ETH/做空BTC) |
| 持仓周期 | 中等(数小时~数天) | 短周期(平均6小时) |
| 适用标的 | 多币种配对 | 专注ETH/BTC |
2. 数据源
2.1 WebSocket订阅
订阅ETH和BTC的1小时级别K线数据:
频道: candle
标的: ETH/USDC:USDC, BTC/USDC:USDC
周期: 1h
数据: time, open, high, low, close, volume, return_pct
2.2 数据对齐
ETH和BTC的K线按时间戳内连接(inner join),确保每个时间点两者数据完整。丢弃任一方缺失的时间点。
3. Beta计算算法
3.1 核心定义
Beta定义为ETH下跌时相对于BTC的收益率放大/缩小倍数:
beta_i = |ETH_return_i / BTC_return_i|
其中 ETH_return_i 为负值(仅取ETH下跌的K线)。
3.2 计算流程
输入: 当前时间点 t 之前的 ETH/BTC 对齐K线序列
输出: 长度为 N 的 beta 数据序列
步骤:
1. 从时间点 t-1 开始向前回溯(不含当前K线)
2. 筛选 ETH 收益率 < 0 的K线(负收益)
3. 对每个满足条件的K线,检查对应BTC收益率:
a. |BTC收益率| < MIN_BTC_RETURN(趋近于0)→ 剔除该数据点,不计入
b. BTC收益率 >= 0(非负值)→ 直接设定 beta = 3
c. BTC收益率 < 0 → 计算 beta = |ETH_return / BTC_return|
4. 收集 N 个有效 beta 值(默认 N = 10)
5. 回溯上限: MAX_LOOKBACK 根K线(默认 100),超出则放弃本次信号
6. 按时间正序排列 beta 序列
3.3 参数说明
| 参数 | 默认值 | 说明 |
|---|---|---|
NEGATIVE_RETURN_COUNT (N) |
10 | 需要收集的负收益K线数量 |
MIN_BTC_RETURN_ABS |
0.0005 (0.05%) | BTC收益率绝对值下限,过滤接近零的分母 |
MAX_LOOKBACK_BARS |
100 | 最大回溯K线数,限制采样窗口跨度 |
3.4 Beta含义解读
| Beta值 | 含义 | 举例 |
|---|---|---|
| beta = 3 | ETH跌但BTC未跌(惩罚值) | ETH跌1%, BTC涨0.5% → beta=3 |
| beta > 1 | ETH跌幅大于BTC | ETH跌2%, BTC跌1% → beta=2 |
| beta = 1 | ETH跌幅等于BTC | ETH跌1%, BTC跌1% → beta=1 |
| beta < 1 | ETH跌幅小于BTC | ETH跌0.5%, BTC跌1% → beta=0.5 |
4. 信号生成
4.1 指标计算
对N个beta数据点计算两个统计量:
EMA_beta = EWM(beta_series, span=EMA_SPAN).last() # 指数加权移动平均
Mean_beta = arithmetic_mean(beta_series) # 算术平均值
4.2 开仓条件
同时满足以下两个条件时触发开仓信号:
条件1: EMA_beta < BETA_EMA_THRESHOLD (EMA低于绝对阈值)
条件2: EMA_beta < Mean_beta (EMA低于算术均值,趋势收敛)
信号解读:
- 条件1确保下行beta处于较低水平(ETH抗跌性好)
- 条件2确保beta趋势在下降(近期ETH相对强势在增强)
- 两者结合表示:ETH的下行敏感度低且持续改善,是做多ETH的有利时机
4.3 参数说明
| 参数 | 默认值 | 说明 |
|---|---|---|
EMA_SPAN |
5 | EMA计算窗口,对N个beta点赋予近期更高权重 |
BETA_EMA_THRESHOLD |
1.5 | EMA绝对阈值上限 |
4.4 信号流程图
每根1h K线闭合
│
▼
计算beta序列(回溯N个ETH负收益K线)
│
├── 数据不足 → 跳过
│
▼
计算 EMA_beta 和 Mean_beta
│
├── EMA_beta >= 1.5 → 无信号
├── EMA_beta >= Mean_beta → 无信号
│
▼
开仓信号触发
│
▼
开仓比例 = Mean_beta(算术均值)
5. 仓位管理
5.1 开仓
| 腿 | 方向 | 名义持仓 | 杠杆 | 保证金 |
|---|---|---|---|---|
| ETH | 多 (Long) | 1 USD | 10x | 0.1 USD |
| BTC | 空 (Short) | Mean_beta USD | 10x | Mean_beta / 10 USD |
- 所有订单为市价单
- Beta(算术均值)作为对冲比例,确保风险中性
- 平均保证金 = (ETH保证金 + BTC保证金) / 2
5.2 仓位计算示例
假设 Mean_beta = 1.3:
ETH多单: 名义 1 USD, 保证金 = 1/10 = 0.1 USD
BTC空单: 名义 1.3 USD, 保证金 = 1.3/10 = 0.13 USD
平均保证金 = (0.1 + 0.13) / 2 = 0.115 USD
5.3 盈亏计算
ETH盈亏 = ETH名义持仓 × (ETH当前价 / ETH入场价 - 1)
BTC盈亏 = BTC名义持仓 × (1 - BTC当前价 / BTC入场价)
组合盈亏 = ETH盈亏 + BTC盈亏
收益率 = 组合盈亏 / 平均保证金
6. 风控与退出机制
6.1 移动止盈止损
阶段1 — 等待激活:
实时跟踪组合收益率
当收益率 > 0 且 > 5%(激活阈值)时,进入阶段2
阶段2 — 峰值追踪:
记录并持续更新盈利峰值(只升不降)
peak_pnl = max(peak_pnl, current_pnl)
阶段3 — 回撤触发:
当从峰值回落 0.5%(回撤金额/平均保证金)时,触发止盈
触发条件: current_pnl < peak_pnl - 0.5% × avg_margin
平仓操作:同时平掉ETH多单和BTC空单,均为市价单。
参数:
| 参数 | 默认值 | 说明 |
|---|---|---|
| 激活阈值 | 5% | 收益率达到此值后启动峰值追踪 |
| 回撤触发 | 0.5% | 从峰值回落此幅度触发平仓 |
6.2 冷却期
平仓后进入冷却期,默认 3 根K线(3小时)内不开新仓,避免反复开平。
6.3 建议补充的风控措施
| 措施 | 说明 | 建议值 |
|---|---|---|
| 最大持仓时间 | 超时强制平仓 | 48-72小时 |
| 单日最大亏损 | 当日累计亏损上限 | 可配置 |
| 回溯窗口告警 | N个负收益K线跨度过大时告警 | 当回溯超过50根K线 |
7. 实盘实现要点
7.1 数据流架构
WebSocket (1h candle)
├── ETH K线 ──┐
└── BTC K线 ──┤
▼
K线对齐缓冲区
│
▼
Beta序列计算引擎
(回溯10个ETH负收益K线)
│
▼
信号检测 (EMA < 阈值 && EMA < Mean)
│
┌───┴───┐
│ 无信号 │ 有信号
└───┬───┘ │
│ ▼
│ 开仓执行(ETH多 + BTC空,市价单)
│ │
▼ ▼
等待下根K线 实时P&L监控
│
┌────────┼────────┐
▼ ▼ ▼
止盈触发 止损触发 移动止盈触发
│ │ │
└────────┴────────┘
│
▼
平仓(两腿同时,市价单)
│
▼
冷却期 → 回到信号检测
7.2 关键实现注意事项
- 除零保护:BTC收益率绝对值 < 0.05% 时跳过该数据点
- 原子操作:ETH和BTC的开仓/平仓应尽量同时执行,减少单腿风险
- 实时监控:止盈止损应通过WebSocket实时价格推送触发,而非等待K线闭合
- 状态持久化:持仓状态、beta序列、峰值盈利等需持久化,支持断线恢复
- 最小下单量:确认Hyperliquid对ETH/BTC的最小下单量要求
7.3 配置项汇总
# Beta计算
BETA_ARB_NEGATIVE_RETURN_COUNT: 10
BETA_ARB_MIN_BTC_RETURN_ABS: 0.0005
BETA_ARB_MAX_LOOKBACK_BARS: 100
# 信号
BETA_ARB_EMA_SPAN: 5
BETA_ARB_EMA_THRESHOLD: 1.5
# 仓位
BETA_ARB_ETH_POSITION_USD: 1.0
BETA_ARB_LEVERAGE: 10
# 风控
BETA_ARB_TAKE_PROFIT_PCT: 0.05
BETA_ARB_STOP_LOSS_PCT: 0.03
BETA_ARB_TRAILING_ACTIVATION_PCT: 0.05
BETA_ARB_TRAILING_CALLBACK_PCT: 0.005
BETA_ARB_COOLDOWN_BARS: 3
BETA_ARB_MAX_HOLD_HOURS: 72