输入/搜索内容

短纤(PF) - PTA(TA) - 乙二醇(EG) 三腿配对统计套利策略

通用策略
创建日期: 2026-08-13 17:32:25
最后修改: 5 天前
复制: 0
点击次数: 17
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%超过则放弃开仓

重要风险声明

  1. 协整关系可能阶段性失效
    装置检修、新产能投放、出口退税调整、反倾销、单边逼仓等均可导致残差长期不回归甚至持续放大

  2. 跨月价差未单独建模
    三腿交割月不一致时,回归会将跨月成分吸收入关系,换月前后波动会明显扩大

  3. 整数手是硬约束
    资金规模不足时,对冲比例会严重失真,策略宁可拒绝开仓也不勉强凑合

  4. 模拟 vs 实盘偏差
    滑点、流动性、手续费、保证金比例等因素会显著影响实盘收益


文件架构

  • 协整回归:高斯消元求解 OLS 系数
  • 状态机:FLAT → LONG_SPREAD/SHORT_SPREAD → FLAT
  • 调仓引擎:支持实盘/模拟两套独立下单路径
  • 风控模块:紧急减仓、现金缩放、主力合约换月处理
  • 仪表板:实时账户、信号、持仓、成交记录

使用说明

模拟测试

javascript
TRADE_MODE = "paper"; // 模拟盘模式 INIT_CAPITAL = 100000; // 初始资金

实盘交易(谨慎切换)

javascript
TRADE_MODE = "live"; // 实盘模式 // 务必手动验证风险后再改成 "live"

快捷命令

  • 切换模式 — 在实盘/模拟间切换
  • 全部平仓 — 立即平仓所有持仓
  • 立即检查信号 — 强制重新计算信号
  • 重置模拟账户 — 将模拟账户恢复到初始资金

交易所:期货_CTP · 商品期货
运行周期:1 小时 K 线

策略源码
JavaScript
/*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
社区
回测系统
APP 下载
iPhone 下载
© 2015 - ∞ YouQuant 豫ICP备19046564号