掉期利率(第一部分):锁定与合成仓位(基础篇)
用双账户互锁吃掉期差的底层逻辑
在 MT5 里做掉期套利,最朴素的办法是把两个交易账户互锁:一个账户做多 EURUSD,另一个做空同等手数,靠两边隔夜掉期正负相抵后的净差获利。外汇和贵金属这类带杠杆的品种,隔夜掉期随时被经纪商调整,属于高风险操作,净差可能某天突然归零甚至变负。 原文给出的互锁思路依赖汇率换算:跨币种账户互锁时,必须按实时汇率把两边手数折算成同一名义本金,否则锁出来的是敞口而不是锁仓。合成仓位锁定则是用相关性高的品种拼出等效头寸,比如用 XAUUSD 配合特定外汇对模拟黄金无息敞口,但相关性会漂移,只能说倾向有效。 第一次测试的结论是:在 2021 年 7 月样本内,双账户互锁的净掉期差约日均 0.3~0.8 点(视经纪商),但需承担双边点差与滑点成本。读者可以直接开两个模拟账户,挂对等限价单验证这套机制是否还活着。
◍ 掉期利率为什么不能当背景噪声
做商品头寸的人常常只盯tick和形态,把掉期利率当成结算时顺带看一眼的数字。但在按点值精算的职业交易圈里,掉期是持仓成本结构的主轴,尤其贵金属与能源跨期价差拉开时,掉期可能吃掉你一半的波段利润。 原文给出的思路并不新鲜却够硬:用掉期利率本身设计商品持仓,且必须把它纳入每一笔计划的成本项。更进一步的玩法,是用一个账户直接对冲、或开两个账户做经典的利润锁定强化,让掉期从'被扣除项'变成结构里的正变量。 外汇与贵金属杠杆高、掉期随央行政策跳变,实盘前请在MT5的'交易品种—规格'里调出掉期数值,手动算一次周三 tripleswap 对两周持仓的侵蚀,再决定是否值得为掉期调整开户结构。
「掉期利率里藏着半个点差」
做日内的人大多直接无视掉期,觉得那点钱不配进决策。可实际算下来,接近一半的点差根本不在开平仓瞬间扣,而是藏在每个服务器跨日结算里——周一转周二、周二转周三、周三转周四是三倍收取,周四转周五再正常收一次。 掉期按持仓量计,工具规格里通常标成点数或百分比。能搞懂两种计算方式就够用了,结构化资料极少,但真钻进去能摸出些正掉期策略:单笔利润百分比很小,优势是盈利路径可预期。 大多数主流经纪商只放极少数正掉期品种,想靠这个稳定吃利差很难,潜在收益也极低。但比起把本金在别的系统里亏光,它至少不依赖价格方向。正掉期相当于价格每天自动朝持仓挪一小步,撑得够久就能先填平点差佣金、再慢慢堆资金。 持仓越久盈利因子越大,但缺点明摆着:依赖存款规模。持仓量相对资金的比率高,价格若反向跑、保证金撑不到掉期回本就完蛋。为压住这种负面可能,得用锁定机制把风险敞口收住。外汇和贵金属杠杆高,正掉期也只是降低概率亏损,不是免死金牌。
双账户掉期互锁的实操边界
掉期利率套利依赖两个账户对同一种货币对或资产给出不同掉期报价。在同一账户里开多空互逆单没有意义,因为反向那笔的掉期会转负,等同于主动送钱。 从已披露的匹配结构看,特定金融产品下仅有 10 种可行场景,其中 6 种为常用激活项;若找不到符合前 6 条件的货币对,可退用后 4 种(其一端掉期为负)作兜底。两端皆正的最优解是场景 2 与 5,利润同时从两家经纪商处产生,且不必频繁调拨资金。 主要麻烦仍在资金搬运:互逆持仓必然一边亏一边赚,需按既有本金反推手数,把转账频率压到最低。外汇与贵金属带高杠杆与隔夜风险,掉期差随时被点差和滑点吃掉,任何“必赚”都只是账面假设。 这种结构的唯一硬优势是盈利规模可先验估算,但想塞进单账户完成是不可能的。后面看一种改良思路怎么在不动账户隔离的前提下抬升收益。
◍ 汇率背后的仓位数学
先把所有逻辑的地基打牢:EURUSD、USDJPY、EURJPY 这三个品种并非孤立,而是互锁的。用 P 表示汇率,可写成 1/P = EUR/USD、1/P = USD/JPY、1/P = EUR/JPY,其中 P 就是所选货币对的报价。 外汇规则很死板——一手永远等于 100,000 单位的基准货币。以 EURUSD 买 1 手为例,你拿 USD 换回 100,000 EUR,报价 P 的含义是 1 EUR 值多少 USD。推导一下:USD = P * EUR,而 EUR = Lots * 100000,所以实际占用的美元敞口随手数和价格实时变动。 开空时角色互换:原本的基准货币变成“主要货币”,但金额算法不变,仍相对 EUR 计量。为免混乱,我们用 “+” 标基准货币、“-” 标主要货币,任何一笔交易都能拆成“用一种货币买了另一种货币”的两组数。 合成仓位由此而来。EURJPY 本质上就是 EURUSD * USDJPY 的衍生品汇率,现实中还能用 EUR、USD、JPY、GBP、CHF、CAD、NZD、AUD、CNY、SGD、NOK、SEK 等拼出无数组合。很多没在行情窗口出现的“产品”,都能由已有仓位合成。 留两个核心比率给后面写代码用:A = 1/P = Value1/Value2 描述任意金融产品的仓位方程,Value1 = Contract*A、Value2 = Contract*B 分别是基准与主要货币的绝对值。外汇与贵金属杠杆高、汇率互锁易放大风险,这些比例后面直接用来算手数。
「用合成仓位对冲掉期利率差」
合成仓位不是单一订单,而是由若干不同金融产品的头寸拼出来的等价敞口,整体要等于某个目标产品的一手持仓。对外汇和贵金属交易者来说,这类操作的高风险在于杠杆叠加与经纪商掉期规则变动,实际落地前必须在 MT5 策略测试器里跑通。 我最初做这套是想绕开经纪商设定的掉期利率差——很多平台把掉期当成利润来源,且会参考对手盘报价防止套利泛滥。思路是用一组可用产品重建等价持仓,示意图里只标了各组件的开仓方向,没给手数算法。 手数计算依赖几个常量:ContractB 通常是 100,000 单位基准币(经纪商不提供合成产物时可自设该常数),另需记录链中每对的 Contract、A、B 值来区分基准币与报价币数量。先从含目标基准币的货币对起手,再补配对消掉多余币种,直到主币归位。 代码原型只验证想法对不对,不承诺收益。打开 MT5 把下面原型贴上,改 ContractB 和可用品种,看日志里的方向判定是否符合你的经纪商环境。