一、套利基础:什么是跨市场套利?核心逻辑与盈利原理

1.1 先聊聊我对套利的理解

很多人一听到「套利」,就觉得是高大上的量化黑科技。其实说白了,套利就是「在一个地方便宜买,在另一个地方贵了卖」。嗯,就这么简单。

我刚开始做交易那会儿,也以为套利需要多复杂的数学模型。后来发现,核心逻辑就一句话:同一资产,在不同市场出现价格差异,我们赚的就是这个差价

举个例子。你想想看,同样一瓶水,在超市卖2块,在景区卖5块。你从超市买了拿到景区卖,赚3块差价。这就是套利。只不过在金融市场里,我们交易的不是水,是股票、期货、ETF这些金融产品。

跨市场套利的本质:利用同一资产在不同交易所、不同市场之间的暂时性价格失衡,通过低买高卖获取无风险或低风险收益。

1.2 核心逻辑:价差才是王道

做套利交易,你盯的不是价格本身,而是价差

什么叫价差?就是两个市场之间的价格差。比如:

  • 上证50ETF在上海证券交易所的价格 vs 在深圳证券交易所的价格
  • 沪深300股指期货在主力合约的价格 vs 在次月合约的价格
  • 黄金在上海黄金交易所的价格 vs 在纽约COMEX的价格

我个人的习惯是,把价差当作一个独立的交易品种来看。它有自己的波动规律、均值回归特性。你不需要判断大盘涨跌,只需要判断价差会不会回归。

为什么会这样?因为市场不是完美的。信息传递需要时间,资金流动有摩擦,交易者情绪会过度反应。这些因素都会导致同一资产在不同市场出现短暂的价差偏离。

1.3 盈利原理:从偏离到回归

套利的盈利原理,其实就四个字:均值回归

价差不会永远偏离。当价差扩大到一定程度,套利者就会进场。买便宜的,卖贵的。这个行为本身就会把价差推回正常水平。你想想看,如果所有人都去超市买水拿到景区卖,景区的价格就会降下来,超市的价格会涨上去,差价就消失了。

我在项目中遇到过好几次这样的情况:某只港股和它的A股ETF,价差突然拉大到5%以上。很多人慌了,觉得是不是出了什么大事。但我一看,历史数据里这种极端偏离通常3天内就会回归。果断进场,两天后价差收窄到1%以内,稳稳吃到了利润。

我的经验:价差偏离的幅度和时间,通常服从某种统计分布。你可以用历史数据算出均值、标准差,然后设定入场阈值。比如价差超过2倍标准差时进场,回归到1倍标准差时离场。

1.4 跨市场套利的三种常见模式

根据我这些年的实战经验,跨市场套利大致可以分为三类:

类型 描述 典型例子
同品种跨市场 同一金融产品在不同交易所交易 沪深300ETF在沪深两市的价差
跨品种套利 相关性高的不同品种之间的价差 豆粕期货 vs 菜粕期货
期现套利 期货价格与现货价格之间的价差 股指期货 vs 对应ETF组合

每种模式都有它的特点和坑。比如同品种跨市场,流动性差异是个大问题。我做过一次沪港通套利,港股那边流动性不足,下单半天成交不了,价差早就变了。嗯,这里要注意:流动性风险往往比价差风险更致命

1.5 套利交易的核心步骤

不管哪种套利,执行流程都差不多。我总结了一个五步法:

  1. 发现机会:监控价差,识别偏离
  2. 评估风险:检查流动性、交易成本、隔夜风险
  3. 执行交易:同时买入低价、卖出高价
  4. 持仓监控:跟踪价差变化,设置止损
  5. 平仓了结:价差回归后,反向操作

这里我特别想强调第二步。很多人看到价差大就冲进去,结果发现手续费吃掉了一半利润,或者市场突然停牌了。我曾经吃过这个亏——有一次做商品期货套利,没算清楚交割费用,最后利润全搭进去了。

避坑指南:交易成本包括佣金、印花税、滑点、隔夜利息、交割费用。一定要把所有成本算进去,再决定是否进场。我一般要求预期收益至少是成本的3倍以上才动手。

1.6 一张图看懂跨市场套利

下面我用一张流程图,把整个逻辑串起来。这张图是我自己画的结构,你可以把它当作套利交易的「作战地图」。

跨市场套利核心逻辑框架 市场A 价格:P_A 市场B 价格:P_B 价差 = P_A - P_B 或 P_B - P_A 价差 > 阈值? (含交易成本) 执行套利交易 买低卖高,同时操作 继续监控 等待价差回归 价差回归 → 平仓获利 核心逻辑:价差偏离 → 套利进场 → 价差回归 → 获利了结

1.7 一个简单的代码示例

光说不练假把式。下面是我写的一个简易价差监控脚本。它不复杂,但足够帮你理解套利的执行逻辑。

# 跨市场套利价差监控示例(Python伪代码)
import numpy as np

def calculate_spread(price_a, price_b):
    """计算价差"""
    return price_a - price_b

def check_arbitrage_opportunity(spread, mean, std, threshold=2):
    """
    判断是否有套利机会
    当价差偏离均值超过2倍标准差时,触发信号
    """
    z_score = (spread - mean) / std
    if z_score > threshold:
        return "做空价差(卖A买B)"
    elif z_score < -threshold:
        return "做多价差(买A卖B)"
    else:
        return "无信号"

# 模拟数据
prices_a = [100.5, 100.8, 101.2, 100.9, 101.5]
prices_b = [100.2, 100.3, 100.6, 100.1, 100.4]

spreads = [calculate_spread(a, b) for a, b in zip(prices_a, prices_b)]
mean_spread = np.mean(spreads)
std_spread = np.std(spreads)

print(f"价差均值: {mean_spread:.2f}, 标准差: {std_spread:.2f}")

for i, (a, b) in enumerate(zip(prices_a, prices_b)):
    spread = calculate_spread(a, b)
    signal = check_arbitrage_opportunity(spread, mean_spread, std_spread)
    print(f"时刻{i}: 价差={spread:.2f}, 信号={signal}")

实战建议:上面的代码只是演示逻辑。真实环境中,你需要考虑滑点、交易延迟、订单簿深度。我一般会在代码里加一个「最小利润过滤」——如果预期利润扣掉所有成本后不到0.1%,直接跳过。

1.8 套利不是无风险的

很多人以为套利就是「捡钱」。其实不是。套利也有风险,只是比单边交易小一些。

我遇到过最坑的一次:做跨市场ETF套利,价差确实很大,但买入的ETF突然暂停申购了。结果我手里拿着折价的ETF,卖不出去,硬生生扛了两周。嗯,这就是执行风险

常见的套利风险包括:

  • 流动性风险:市场深度不够,无法同时成交
  • 执行风险:一边成交了,另一边没成交
  • 模型风险:历史统计规律失效
  • 政策风险:交易所规则突然变化

所以我的原则是:永远不要把套利当成无风险交易。它只是风险相对可控,但该设的止损、该做的风控,一样都不能少。

1.9 小结

跨市场套利的核心,说白了就是抓价差。你不需要预测市场方向,只需要判断价差会不会回归。这个逻辑听起来简单,但真正做好,需要你对市场结构、交易规则、资金管理都有深刻理解。

我个人觉得,套利是量化交易里最适合新手入门的方向。因为它逻辑清晰、风险可控、回撤小。但前提是——你得把基本功打扎实。这一章讲的是基础,后面我们会一步步深入到具体的策略实现。


公众号:蓝海资料掘金营,微信deep3321