halo 的技术博客

返回

核心结论:跨货币基差不是套利机会,是一项租金——而且是可以提前一年在日历上标出走阔时点的租金。

抛补利率平价(CIP)说的是:借美元换成日元、投资日元资产、用远期锁定换回美元,收益应该恰好等于直接持有美元。任何偏离都是无风险套利。

2008 年之后,这个等式系统性地不成立。日元、欧元对美元的跨货币基差常年为负,意味着”手里有美元的人,通过掉期借出美元可以拿到超过美元利率的回报”。

真正让”套利”这个说法站不住的,不是它的存在,而是它的时间结构

左:基差不是随机漂移而是日历函数,年末峰值 −175bp;右:溢价支付给资产负债表可用性,无约束机构比受约束银行多赚 7.80bp/年

季末走阔,年末走阔得更厉害,季末一过立刻回补。一个能提前一年标在日历上的”定价错误”,不是错误,是收费时刻表。

一、把基差拆成两块#

模型把基差建成结构性成分加日历成分:

def calendar_premium(n_days):
    """日历驱动的基差走阔:季末前 SPIKE_WIN 日线性加深,季末后 3 日快速回补"""
    prem = np.zeros(n_days)
    for k, qe in enumerate(quarter_ends(n_days)):
        mult = CAL_YE_MULT if (k % 4) == 3 else 1.0     # 年末是普通季末的 2.5 倍
        for j in range(SPIKE_WIN):
            d = qe - SPIKE_WIN + 1 + j
            if 0 <= d < n_days:
                prem[d] += CAL_SPIKE * mult * (j + 1) / SPIKE_WIN
        for j in range(1, 4):                            # 季末后快速回补
            d = qe + j
            if d < n_days:
                prem[d] += CAL_SPIKE * mult * (3 - j) / 3.0 * 0.5
    return prem
python

真值由构造给定:结构性基差 −25bp、季末额外走阔 −60bp、年末是普通季末的 2.5 倍。结果:

成分数值
结构性基差(常年存在)−25.00 bp
日历溢价(时间均值)−7.80 bp
平均总基差−32.80 bp(日历项占 23.8%)
普通季末峰值−85.00 bp
年末峰值−175.00 bp
非季末日(占 81.1%)−25.00 bp

81.1% 的交易日,基差就是那个安静的 −25bp。 所有的戏剧性都压缩在剩下 18.9% 的日子里。

二、谁在赚这笔钱:不是更聪明的人#

这是全文最重要的一个实验。设定三类参与者,他们对基差的看法完全相同,唯一区别是季末还能不能动用资产负债表

def cap_bank(d):
    return 0.0 if cal[d] < 0 else 1.0        # 受约束银行:季末窗口完全退出

def cap_unconstrained(d):
    return 1.0                                # 无约束机构:全年在场

def cap_fund(d):
    return 0.25 if cal[d] < 0 else 1.0       # 套利基金:季末融资被压缩到 25%
python

结果(口径为出借美元方的实现收益,越高越好):

参与者实现收益季末在场权重
受约束银行(季末退出)+25.00 bp0.0%
套利基金(季末缩到 25%)+27.27 bp5.5%
无约束机构(全年在场)+32.80 bp18.9%

无约束机构比受约束银行多赚 7.80bp/年相对提升 31.2%

关键在于:这三类人的预测能力完全相同。模型里没有任何一方”看得更准”。差异 100% 来自”季末那几天你还能不能出手”。

受约束银行拿到的 +25.00bp 精确等于结构性水平——它把日历溢价一分没拿到,因为它恰好在溢价最高的日子退出了市场。

三、三条安慰剂#

安慰剂 A:关掉日历效应。无约束与受约束的收益差 = 0.000000e+00 bp。真值精确为零。

安慰剂 B:所有人容量相同。收益差 = 0.000000e+00 bp。同样精确归零。

这两条一起把机制锁死了:优势既需要”存在日历溢价”,也需要”参与者容量有差异”,缺一不可。

安慰剂 C:结构性基差设为 0,只留日历项。收益差仍然是 −7.80bp,与基准的差异 5.42e-15——可加分离精确成立。

这意味着容量优势完全来自日历项,与结构性基差水平无关。 如果哪天 CIP 偏离的”结构性”部分被套利掉了(−25bp 变成 0),无约束机构相对受约束银行的优势一分不少

左:时点差 10 个交易日收益差 66bp;中:两条安慰剂精确归零,优势 100% 来自日历项;右:摩擦上升时双方同时变差,差额归中介

四、时点:10 个交易日 = 66bp#

同一笔美元,投放时点差 10 个交易日:

投放时点出借方年化收益
季末前 2 日+91.00 bp
季末后 8 日+25.00 bp
入场即锁 5 年+25.00 bp

66.00bp,3.64 倍

注意期限锁定者拿到的也是 +25.00bp——锁定期限等于放弃全部日历溢价。这和直觉相反:通常认为”锁定”是保守选择,但在这个市场里,锁定意味着你把最赚钱的时段永久让渡给了别人。

五、风险的极端不对称#

这是自检过程中最意外的发现,也是整篇文章最实用的一段。

同一个市场、同一条基差路径,两个对手方:

  • A(出借美元方):全年在场收基差,噪声在年内被平均掉
  • B(滚动借入方):只在 4 个展期日暴露,没有平均效应
gross = -bp_path.mean(axis=1)                      # 出借方毛收益
net = gross - friction

roll_idx = [q - 2 for q in qe_list if 0 <= q - 2 < HOLD][:N_ROLL]
roll_cost = -bp_path[:, roll_idx].mean(axis=1) + friction   # 借方付出
python

结果:

出借方滚动借入方
年化+26.46 bp−95.60 bp(成本)
SD4.49 bp38.72 bp
95 分位167.66 bp
为负概率0.00%

借方成本的标准差是出借方收益标准差的 8.62 倍。

而且出借方的净收益在 0~5bp 的整个摩擦扫描区间全部为正,为负概率 0.00%。

这一条本身就是”它不是套利”的直接证据:真正的套利机会会被竞争抹平,而租金不会——因为能收租的人(季末还有资产负债表的机构)数量是被监管约束固定住的,新进入者无法复制这个条件。

最差单次展期:中位 126.02bp,95 分位 273.87bp。对一家需要按季滚动美元融资的非美银行来说,这不是”套利机会消失”的问题,是融资成本在某个季末突然变成三倍的问题。

左:同一市场借方 SD 是出借方的 8.6 倍;中:冲击越大容量优势越值钱;右:12 宇宙 CV=0.0022

六、择时反而有害#

一个自然的想法:既然季末基差剧烈波动,那避开季末是不是更稳?

策略单位在场时间收益在场比例按部署资本年化
全年在场+32.46 bp100.0%+32.46 bp
只在平静期在场+25.03 bp81.7%+20.46 bp

少赚 12.00bp。

原因很直白:季末走阔对出借方是收益不是风险。避开季末等于避开了付钱最多的客户。

这里有个容易搞混的地方值得单独说:同一个 −175bp 的年末峰值,对出借美元的人是天上掉钱,对需要美元的人是成本翻三倍。“基差走阔是风险”这句话必须先问”你在哪一边”——而市场评论里这个前提几乎总是被省略。

七、需求冲击:容量优势是凸的#

把美元荒强度从 0.5x 扫到 5x:

强度年末峰值无约束方实现收益
0.5x−100 bp+28.90 bp
1.0x−175 bp+32.80 bp
2.0x−325 bp+40.60 bp
5.0x−775 bp+63.99 bp

斜率 7.80 bp/单位,线性。

含义:危机越严重,“季末还有资产负债表”这个条件越值钱。 而这恰恰是危机中最稀缺的东西——所有人同时受约束的时候,唯一不受约束的那个人定价权最大。

这也解释了为什么这个溢价在 2008 之后没有消失反而制度化了:巴塞尔III 把银行的季末资产负债表变成了一种稀缺资源,而稀缺资源会产生租金。

八、样本量红线:60 年#

前面说出借方的租金很稳(SD 只有 4.49bp),所以它不需要统计检验。

真正测不准的是借方。 一家非美银行的财务主管每年都要回答一个问题:“今年展期成本比去年高,是融资环境恶化了,还是运气不好?“

要确认的恶化幅度需要的年数
5 bp239.8 年
10 bp60.0 年
20 bp15.0 年

要以 |t|=2 确认展期成本真的恶化了 10bp,需要 60 年连续数据。

而这里还有个方法论陷阱值得单独指出。如果建模时忘了考虑”每一年的美元融资紧张程度本身就是随机的”(模型里用一个对数正态制度倍数表示),借方成本 SD 会从 38.72bp 塌到 3.57bp,所需样本量从 60.0 年变成 0.5 年——低估 117.4 倍

这类错误在实务中很常见:把年内的日度波动当成全部不确定性来源,忽略了年际之间制度水平本身的漂移。结果就是一个看起来很显著、实际上完全不可靠的结论。

12 个独立宇宙的出借方净收益 CV = 0.0022,模拟本身极稳。

九、这个框架的可证伪预测#

  1. 季末基差走阔幅度 ∝ 银行监管报告频率。按季报送的辖区季末尖峰明显,按日均值考核的辖区应该几乎没有尖峰
  2. 年末尖峰 ≈ 普通季末的 2~3 倍,因为年末同时触发年报、审计、杠杆率快照
  3. 无约束机构(主权基金、保险、非银)的份额应该在季末窗口上升,而这是可以从掉期市场参与者结构直接验证的
  4. 结构性部分被套利掉不会削弱容量优势(安慰剂 C)
  5. 危机期容量优势线性放大,斜率约 7.8bp/单位冲击强度

第 3 条最容易验证,也最能区分”错误定价”和”租金”两种解释:如果是错误定价,季末应该是所有人一起冲进去;如果是租金,季末应该只剩下少数不受约束的机构在场。

十、结论#

跨货币基差不是 CIP 的失效,是 CIP 在加入资产负债表约束之后的正确形式。

三个数字概括全文:81.1% 的交易日基差是安静的 −25bp;剩下 18.9% 的日子贡献了全部超额;而能在那 18.9% 里出手的人,比不能出手的人多赚 31.2%——两者的预测能力完全相同。

对想赚这笔钱的人,先问自己一个问题:季末那几天,你的资产负债表还能不能动? 如果不能,你拿到的就是 +25.00bp 的结构性部分,一分不多——这正是模型给受约束银行算出来的数字。

对需要美元融资的人,结论是另一个方向:你的成本方差是对手方的 8.62 倍,而要从自己的历史数据里确认”融资环境是不是真的恶化了”,需要 60 年。在那之前,唯一能做的事情是不要把展期日全部堆在季末前两天。


本文所有数字来自固定种子(20260807)的受控模拟,真值由构造给定,不是对历史数据的拟合。模拟内置保真度断言(路径均值与目标日历形状相关 0.9992、季末点偏差 1.38bp),确保结论建立在真的重现了日历尖峰的路径上。模型的简化之处:假设日历窗口的时点和幅度已知(现实中年末尖峰幅度有相当不确定性)、忽略不同货币对之间的相关性、忽略掉期市场深度对大额交易的价格影响——最后一条会让真实的容量优势比模拟结果更大,因为在季末薄市场里能出大单本身就是额外的稀缺性。

跨货币基差套利:抛补利率平价失效后的美元荒定价
https://blog.halo26812.eu.org/blog/cross-currency-basis-arbitrage
Author halo
Published at 2026年8月7日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨