「配对交易在 MT5 里的落地前提」
「配对交易在 MT5 里的落地前提」
配对交易(Pairs Trading)依赖两只高相关性品种的价格偏离回归,在 MT5 上做这类策略,第一步是确认相关性是否稳定,而不是只看历史散点图。 外汇与贵金属品种受宏观事件冲击时,相关性会瞬间断裂,属于高风险操作,实盘前必须用历史数据做滚动窗口检验。 一个可验证的基准:取 EURUSD 与 GBPUSD 的 2023 年日线,60 日 Pearson 相关系数均值约 0.87,但 2023 年 3 月瑞信事件周该值跌到 0.52,说明常态相关不等于危机相关。 打开 MT5 的「文件→打开数据文件夹→MQL5→Files」,把导出的两根品种收盘价丢进脚本算滚动相关,比肉眼看图表更靠谱。
◍ 配对交易为什么被当成低风险解
把盈利压到最小但稳定,逻辑上就得先压风险。配对交易属于统计套利的一个分支,由 Jerry Bamberger 在 1980 年代提出,核心假设是:两个有统计关联的工具短期偏离后,特征会回归历史均值。 具体落地就三步:先算出两品种统计关系上的差值,再双向开仓,等特性回到均值附近平掉。策略本身市场中立,理论上几乎不挑行情环境。 但外汇和贵金属市场的高风险不会因为「中性」二字消失。统计关系会随结构变化而漂移,一次小概率的价差扩张就可能吃掉多次小利。真要跑这套,必须硬守仓位比例与止损线,而不是靠历史相关性睡觉。
用相关系数挑负相关货币对开仓
配对交易的核心假设是两种工具存在统计关联。正相关时两者同方向走,负相关时反着走;做外汇或贵金属配对,负相关的组合更有操作空间,比如 EURUSD 与 USDCHF 长期就呈现这种反向节奏,但杠杆品种波动剧烈,实盘前务必清楚这类品种的高风险属性。 最常用的是 Pearson 相关系数,不过它在小样本里估计有偏,和真实值可能差很远。可用 Olkin-Pratt 调整做修正,但即便如此,Pearson 只认线性关系、还要求序列近似正态,遇到尖峰或曲线关系就失灵——安斯库姆四重奏里第二组(非线性)和第四组(单点造伪相关)就是典型反例。 实际写 EA 时,先挑历史上平均相关为负的 pair,越负越好;收集样本统计后设触发水平,可直接写 -0.95、-0.9,也可取历史相关值升序排、拿最低 10% 当阈值。开仓前看价格相对均线位置:低于均线买、高于均线卖,且两边头寸方向必须多向互补,否则禁开。 仓位不能乱给。设点值 PointValue 为存款货币中一个点的价值,则两边交易量要满足 PointValue1*Volume1 = PointValue2*Volume2,这样同点数跳动两边盈亏大体对冲。我在 EA 里加了两条线:浮盈达 33% 转盈亏平衡,达 67%(不超零)全平;改这两数会明显改变绩效。2021.01.01–2023.06.30 跑 EURUSD/USDCHF,曲线不算差,但换 Spearman 同参数更好。 Spearman 秩相关不挑分布、能抓非线性。算法是把两序列价格连同原柱索引排升序,只留索引差 D,再用 1-6*ΣD²/(n(n²-1)) 得出。短相关窗口偏剥头皮,长窗口偏趋势,选段直接决定风格。
「用协整差值为跨币种对冲找信号」
协整关系成立的前提是两个序列本身是整合(integrated)的:即由常数加上随机增量构成,随机项服从某种分布。单纯均匀分布的随机游走看起来不像价格;换成正态分布更接近走势,但还缺跳空特征。把正态分布与柯西分布相加作为随机项,能模拟出黑天鹅式的缺口,这样的整合序列在形态上才贴近真实报价。 若两个整合序列的随机增量服从同一类分布、仅参数不同,二者相减后随机分量会倾向相互抵消,残差围绕零轴波动——这就是协整。实践中监测货币对可用 d[i] = k*SeriesA[i] - m*SeriesB[i],k、m 用最小二乘估算,目标是让 d[i] 尽量少偏离零。 以 USDCHF 与 USDCAD 为例,二者差值在历史上围绕零轴来回穿越、符号变换越频繁,协整属性越强;若差值单边发散则不适合该思路。外汇与贵金属杠杆高、滑点跳空频繁,协整关系可能阶段性断裂,实盘前需在 MT5 用多年数据复核。 交易逻辑类似相关性策略:当 d[i] 触及历史极值(上方最大或下方最小)时,双向开仓 USDCHF 与 USDCAD;差值回归零附近即平仓。某 EA 在 2021.01.01–2023.06.30 跑这两个品种,余额曲线呈现震荡上行,但样本仅两年半,不构成收益承诺。提升鲁棒性可沿用相关性 EA 的过滤建议:加波动率门槛、避开重大数据发布。
◍ 记住这一条就够了
配对交易不是装上指标就能跑的套路,原文里那套工具链已经拆得很细:sPearson 脚本用 iPeriod 相关周期数扫一遍市场观察里所有品种的历史相关系数,结果写进 Files 文件夹;iPearson 指标则实时显示当前 Pearson 值,SecSymbol 填第二个品种就行。Spearman 和协整各有脚本加指标,EA_Correlation.mq5 体积 21.48 KB,EA_Cointegration.mq5 19.21 KB,都是直接能拖进 MT5 验证的实物。 外汇和贵金属的价差回归经常受流动性断层干扰,协整关系说断就断,实盘前务必用历史数据跑一遍 sCointegration 看 p 值稳不稳。真要上线,先把 iCointegration 加载到 EURUSD 和 USDCHF 图表上,盯两周差值再决定手数。 下面这段是原文评论区有人补的订单填充写法,IOC 模式在部分经纪商报错时能用上: request.type_filling=ORDER_FILLING_IOC; 这一行直接塞进你的下单请求结构,能避开某些平台拒绝市价单的坑。
request.type_filling=ORDER_FILLING_IOC;