跨品种三角套利策略入门 直盘与交叉盘联动验证与回测方法
跨品种三角套利策略入门 直盘与交叉盘联动验证与回测方法
刚接触外汇那会儿,我一直以为三个货币对之间的关系是明摆着的。EUR/USD 涨,EUR/GBP 和 GBP/USD 肯定也得跟着动,不然就"不合理"。后来一个做市商出身的朋友跟我说了句话,我才算入门。他说,你看到的报价,很多时候不是"算出来"的,而是"报出来"的。这句话听着绕,但它是三角套利能不能做、值不值得做的分水岭。

直盘和交叉盘之间的联动,本质上是三边报价互相牵制。理论上 EUR/USD × GBP/EUR 应该等于 GBP/USD,但真实盘面里,这三条腿的报价来自不同的流动性池,更新速度也不一样。价差就藏在这些时间缝隙里。今天这篇不讲玄学,讲怎么用可复现的步骤去验证这种联动,以及新手最容易在哪一步翻车。
三边报价到底谁牵着谁走
很多人默认直盘是"主",交叉盘是"从"。这个直觉在流动性好的时段大致成立,但盘面一冷,关系就反过来了。比如亚洲早盘,EUR/USD 和 USD/JPY 的点差通常比 EUR/JPY 窄,这时候 EUR/JPY 的报价更可能是被两条直盘"推"出来的。到了伦敦午盘,EUR/JPY 自己的流动性上来了,它反而可能先动,然后直盘再跟上。
验证方法不复杂:取同一时间戳的三条腿买价和卖价,算一个"隐含交叉价",再和实际交叉盘报价比。举个虚拟例子,假设某时刻:
- EUR/USD 买价 1.0850,卖价 1.0852
- USD/JPY 买价 148.20,卖价 148.22
- EUR/JPY 实际买价 160.80,卖价 160.85
用 EUR/USD 买价乘 USD/JPY 买价,得到隐含 EUR/JPY 买价约 160.79。实际报价 160.80,差 1 个点。这种差距在零售平台上很常见,因为你的报价已经包含了平台加点。真正要看的不是绝对差值,而是这个差值在一天里的分布——它是不是稳定偏向一边。
我在测试时发现,如果只用收盘价做验证,隐含价和实际价的偏离几乎全被抹平了。必须用 tick 级或至少秒级数据,否则你看到的"套利机会"全是假的。默认参数下用分钟收盘价回测,盈利因子只有 0.8 左右,换成 tick 数据后同一套逻辑能到 1.5 上下。差别就在这。
入场条件别写得太"完美"
新手写策略最容易犯的错,是把入场条件写得像数学证明:隐含价和实际价偏离超过 X 点,同时三条腿点差都小于 Y,还要加上 RSI 不超买超卖。条件越多,历史回测越漂亮,实盘越做不出来。因为真实成交时,你看到的价和能拿到的价是两回事。
我自己的做法是只保留两个硬条件。第一,隐含价和实际交叉盘报价的偏离,超过三条腿总交易成本的一个倍数。这个倍数我一般设 1.5 到 2 倍,低于这个数不值得动手。第二,偏离持续时间超过 N 个 tick,过滤掉那些一闪而过的报价抖动。N 取多少要看品种,EUR/GBP 这种交叉盘我通常设 5 到 8 个 tick。
注意,这里说的"偏离"方向很重要。你要做的是买便宜的、卖贵的,而不是无脑跟着隐含价走。如果实际交叉盘比隐含价贵,你应该卖实际交叉盘,同时买两条直盘来对冲。反过来就反向操作。方向搞反了,套利变成单边赌,这是新手最常见的翻车点。
三条腿怎么下、下多少
三角套利不是三条腿等量下单。因为每条腿的合约规模和报价货币不同,你需要先统一到同一个计价货币,再算手数。步骤大概是:
- 确定基础交易量,比如以 EUR 为基准,先定 EUR/USD 下 1 标准手
- 根据 EUR/USD 手数和 GBP/USD 的报价,反推 GBP/USD 需要多少手来对冲 GBP 敞口
- 再用 EUR/GBP 的实际报价,算第三条腿的手数,让三边净敞口归零
听起来像小学数学,但实操里手数经常不是整数。零售平台最小 0.01 手,四舍五入之后会留下残余敞口。这个残余敞口在正常行情里无所谓,遇到跳空就可能放大成亏损。我的习惯是,算完手数后手动检查一遍净敞口,超过基础交易量 2% 就调整,宁可少做一笔也不留大敞口。
止损逻辑和单边交易不一样。三角套利理论上是对冲的,但报价延迟、平台滑点、点差扩大都会让对冲失效。我设的止损不是按价格,而是按"联动关系破坏"来触发。比如隐含价和实际价的偏离在入场后继续扩大到入场时的 2 倍,说明市场结构变了,直接平掉三条腿,不恋战。
回测数据长什么样才算能看
我拿一套简单的偏离回归逻辑,在 EUR/USD、USD/JPY、EUR/JPY 这组上跑过一段历史 tick 数据。结果大概是这样:交易次数不算多,因为严格过滤后机会本来就少;胜率在 70% 上下,但盈亏比不高,平均盈利和平均亏损接近 1:1。盈利因子 1.4 左右,最大回撤出现在某次央行决议后的流动性真空期,三条腿点差同时放大,连续几笔小亏叠加。
这组数据说明一件事:三角套利不是靠单笔暴利,是靠高胜率和小幅盈利累积。如果你的回测显示盈亏比很高,大概率是逻辑写错了,或者用了未来数据。历史统计规律表明,纯套利类策略的盈亏比通常不会太夸张,1:1 到 1.5:1 之间比较常见。
适用环境也很挑。趋势行情里,三条腿的联动会被单边资金流打乱,偏离持续扩大不回归,这时候做套利就是逆势。震荡市和流动性充足的时段相对友好。高波动时段反而危险,因为点差扩大的速度比你平仓的速度快。
联动验证最容易漏掉的一步
很多人验证联动,只看价格对不对得上,忘了看时间戳对不对得上。零售平台给你的三条腿报价,可能来自三个不同的流动性提供商,更新时间差几十毫秒到几百毫秒不等。你看到的"偏离",可能只是其中一条腿还没更新。
我的做法是,在验证脚本里加一个时间戳对齐步骤。三条腿的报价时间差超过阈值,直接丢弃这个样本。这个阈值设多少,取决于你的平台和网络延迟,我一般设 200 毫秒。加了这个过滤之后,回测里的"机会"少了一大半,但剩下的那些,实盘里才真正摸得到。
新手最容易忽略的,其实就是这一步。看着回测曲线漂亮就上实盘,结果发现报价根本对不上,成交价和信号价差出好几个点。先把时间戳对齐这件事做扎实,再谈策略优不优化。你在验证三角联动时,有没有遇到过报价时间对不上的情况?留言说说你的处理方式。
免责声明:本文仅代表作者观点,不构成任何投资建议。市场有风险,交易需谨慎。
