1
关注
190
关注者
短纤-PTA-乙二醇 三腿配对统计套利策略 v1.0
策略概述
本策略基于协整回归 + 残差 z-score 框架,对短纤(PF)、PTA(TA)、乙二醇(EG)三腿商品期货进行相对价值统计套利。通过捕捉短纤产品价格相对其原料隐含公允值的错位,建立 beta 中性仓位,以加工利润相对估值变化为唯一风险敞口。
标的池配置
- 目标腿:PF(短纤·产成品)
- 对冲腿:TA(PTA·原料1)、EG(乙二醇·原料2)
核心策略逻辑
1. 协整回归模型
ln(PF) = c + β₁·ln(TA) + β₂·ln(EG) + ε
对历史 K 线数据(默认 240 根)进行对数空间的 OLS 回归,得到:
- 截距 c:长期均衡关系
- 回归系数 β₁、β₂:短纤价格对两种原料的弹性系数
- 残差 ε:原料端系统性因子解释不了的部分,包含真实加工利润 + 短纤自身供需错配 + 基差噪音
2. 残差 z-score 信号
计算滚动窗口内残差的标准分数:
z = (ε_latest - mean(ε)) / std(ε)
z > ENTRY_Z:短纤相对原料过贵,加工利润过高 → 建立空头仓位(空短纤/多原料)z < -ENTRY_Z:短纤相对原料过便宜,加工利润被压缩 → 建立多头仓位(多短纤/空原料)|z| < EXIT_Z:信号收敛,平仓
3. Beta 中性对冲权重
对数回归微分得收益率关系:
r_PF = β₁·r_TA + β₂·r_EG + dε
要消除原料端系统性风险,令:
N_TA = -β₁·N_PF
N_EG = -β₂·N_PF
由此建立的三腿仓位只暴露于加工利润相对估值变化,而非原料价格的单边方向性波动。
4. 整数手约束与质量检验
- 取整误差检验:将名义金额换算为整数手时,误差超过
MAX_HEDGE_ERR(25%) 则放弃开仓 - 数据质量检验:
- 对冲腿价格在窗口内变化幅度 <
MIN_REF_LOGRANGE→ 拒绝(停板/休市) - K 线跳变 >
MAX_BAR_JUMP(15%) → 拒绝(疑似换月跳空) - 残差标准差 <
MIN_RESID_STD→ 拒绝(回归不可靠) - |z| >
Z_SANITY_CAP(15) → 视为计算故障
- 对冲腿价格在窗口内变化幅度 <
风险管理
持仓约束
| 参数 | 说明 | 默认值 |
|---|---|---|
LEVERAGE | 三腿合计名义 / 权益 | 2x |
GROSS_EXPOSURE | 敞口占用比例上限 | 70% |
MAX_HOLD_HOURS | 最大持仓时长 | 240h(10天) |
DRIFT_THRESHOLD | β漂移重新对冲阈值 | 20% |
紧急风控
- 单根 K 线风险触发:任一腿单向不利变动 ≥
EMERGENCY_DROP(4%) → 自动减仓EMERGENCY_REDUCE(50%) - 模拟盘保证金缩放:现金不足时,三腿同比例缩放(宁可不做,不做歪对冲)
- 合约换月处理:主力合约切换时先全平再重新判断
与传统差价策略的区别
| 维度 | 传统方法 | 本策略 |
|---|---|---|
| 系数来源 | 物耗配方(0.855/0.335·吨耗) | 数据回归(动态β系数) |
| 阈值设定 | 绝对数(元/吨)·固定 | 相对标准差·自适应 |
| 中长期失效 | 能源中枢变化整条线失效 | β和z标准差动态调整 |
| 对冲精度 | 物质守恒约束 | 整数手精确对冲 |
关键优势:物耗配方和绝对阈值虽然描述的是物质约束和历史规律,但无法自动适应产业链成本结构演变和市场微观结构变化。本策略将这两个问题通过回归和 z-score 一体解决,同时保留物耗理论作为关系健康度监控的参照物。
交易执行
实盘模式 (TRADE_MODE = "live")
- 使用商品期货 CTP 原生接口
- 下单规则(按 SetDirection + Buy/Sell 配对):
- 开多 →
SetDirection("buy")+exchange.Buy() - 开空 →
SetDirection("sell")+exchange.Sell() - 平多 →
SetDirection("closebuy")+exchange.Sell() - 平空 →
SetDirection("closesell")+exchange.Buy()
- 开多 →
- 支持上期所/能源中心的平今仓优先逻辑(
LEG_SPLIT_TODAY)
模拟盘模式 (TRADE_MODE = "paper")
- 完整现金 + 保证金预算模拟
- 修复了"现金=0 时被 falsy 陷阱重置"的经典 bug
- 持仓登记、浮盈/已实现盈亏分离
- 支持与实盘同步的风控和调仓逻辑
监控指标
信号面板
- 当前 z 值及进场/离场阈值
- 残差均值、标准差(稳定性参考)
- 实测 β 系数 vs 理论物耗 β(关系健康度告警)
- 有效对冲比例(整数手后的实际 β)
账户面板
- 权益、总盈亏、收益率
- 可用现金、浮盈、已实现利润
- 运行次数、紧急风控触发次数
- 最近 10 笔成交记录
关键参数表
| 参数 | 说明 | 默认值 | 调整建议 |
|---|---|---|---|
LOOKBACK | 回归 + z-score 窗口(根K线) | 240 | 越长越稳定,但反应越滞后 |
ENTRY_Z | 进场阈值 | 1.5 | 越低越容易开仓但假信号多 |
EXIT_Z | 离场阈值 | 0.5 | 必须 < ENTRY_Z |
THEORY_C1/C2 | 物耗配方(吨/吨) | 0.855/0.335 | 监控用,不影响交易 |
THEORY_GAP_WARN | β偏离理论告警比例 | 35% | 超过则打印告警 |
MARGIN_RATE | 保证金率(含期货公司加收) | 12% | 用于现金预算 |
MAX_HEDGE_ERR | 整数手取整误差容忍度 | 25% | 超过则放弃开仓 |
重要风险声明
-
协整关系可能阶段性失效
装置检修、新产能投放、出口退税调整、反倾销、单边逼仓等均可导致残差长期不回归甚至持续放大 -
跨月价差未单独建模
三腿交割月不一致时,回归会将跨月成分吸收入关系,换月前后波动会明显扩大 -
整数手是硬约束
资金规模不足时,对冲比例会严重失真,策略宁可拒绝开仓也不勉强凑合 -
模拟 vs 实盘偏差
滑点、流动性、手续费、保证金比例等因素会显著影响实盘收益
文件架构
- 协整回归:高斯消元求解 OLS 系数
- 状态机:FLAT → LONG_SPREAD/SHORT_SPREAD → FLAT
- 调仓引擎:支持实盘/模拟两套独立下单路径
- 风控模块:紧急减仓、现金缩放、主力合约换月处理
- 仪表板:实时账户、信号、持仓、成交记录
使用说明
模拟测试
javascript
TRADE_MODE = "paper"; // 模拟盘模式
INIT_CAPITAL = 100000; // 初始资金
实盘交易(谨慎切换)
javascript
TRADE_MODE = "live"; // 实盘模式
// 务必手动验证风险后再改成 "live"
快捷命令
切换模式— 在实盘/模拟间切换全部平仓— 立即平仓所有持仓立即检查信号— 强制重新计算信号重置模拟账户— 将模拟账户恢复到初始资金
交易所:期货_CTP · 商品期货
运行周期:1 小时 K 线
策略源码
/*backtest
start: 2023-06-01 09:00:00
end: 2024-07-01 15:00:00
period: 1h
basePeriod: 1m
exchanges: [{"eid":"Futures_CTP","currency":"FUTURES","depthDeep":20}]
*/
/*
* ============================================================================
* 短纤(PF) - PTA(TA) - 乙二醇(EG) 三腿配对统计套利策略 v1.0(模拟盘测试版)
* 发明者量化(FMZ) JS API · 商品期货CTP · 全部原生接口,无交易类库依赖相关策略
评论
全部评论 (0)
暂无数据
- 1