一、套利基础:什么是期现套利?

期现套利,说白了就是利用期货和现货之间的价差赚钱。

我刚开始做量化那会儿,总觉得套利很神秘。后来发现,核心逻辑其实特别简单——同一种东西,在两个市场卖不同价格,你低价买、高价卖,中间的差价就是利润。

举个例子。假设沪深300指数现在是4000点,对应的股指期货合约价格是4050点。这50点的差价,就是套利空间。你可以买入指数对应的股票组合(现货),同时卖出股指期货(期货)。等交割日到了,两边价格会收敛,你就能赚到这50点。

为什么会收敛?因为期货合约到期时,它的价格必须等于现货指数价格。这是交易所的规则决定的,不是猜的。

核心要点:期现套利的本质是价差回归。不是预测涨跌,而是吃价差。

1.1 套利的数学原理

咱们把公式拆开看。

期货的理论价格公式是:

F = S × e^(r × T)

其中:

  • F = 期货理论价格
  • S = 现货价格
  • r = 无风险利率
  • T = 到期时间(年)

如果实际期货价格高于理论价格,就存在正向套利机会。反之,就是反向套利。

我习惯用这个公式快速估算。有一次在实盘中,我发现某合约的价差明显偏离理论值,算了一下年化收益超过8%。嗯,这种机会不常见,但抓住了就是稳稳的幸福。

1.2 无风险套利模型

无风险套利,听起来很美对吧?但实际操作中,有几个关键点必须注意。

模型的核心假设是:

  1. 市场是完全有效的
  2. 交易成本为零
  3. 可以同时买卖
  4. 资金无限

你想想看,现实中这些条件一个都不成立。所以真正的无风险套利,其实是不存在的。我们做的,是低风险套利

避坑指南:我曾经在2015年股灾期间做过一次期现套利,以为稳赚。结果因为流动性枯竭,现货股票卖不出去,期货又被迫平仓,差点亏钱。记住:流动性风险才是最大的风险。

1.3 套利的成本构成

做套利之前,先把成本算清楚。我列个表:

成本项 说明 典型值
交易佣金 买卖双边收取 万分之0.5-3
印花税 仅股票卖出时收 千分之1
冲击成本 大单买卖造成的滑点 0.1-0.5个点
资金成本 占用资金的利息 按年化3-5%算
跟踪误差 股票组合与指数不完全匹配 0.1-0.3%

把这些成本加起来,你会发现,很多看起来有利润的套利机会,其实根本赚不到钱。

我的经验:套利空间至少要覆盖成本的2倍以上,我才会动手。低于这个阈值,风险收益比不划算。

1.4 套利流程四步走

实际操作中,我一般按这个流程来:

  1. 监控价差:实时计算期货与现货的价差
  2. 判断机会:价差超过阈值时触发
  3. 执行交易:同时买入现货、卖出期货(或反向)
  4. 等待收敛:持有到期或价差回归后平仓

这里有个细节:执行交易这一步,必须做到同时。如果先买现货再卖期货,中间那几秒钟价差可能就变了。我习惯用程序化交易来做,人工盯盘太慢了。

1.5 知识体系框架

下面这张图,把期现套利的核心逻辑串起来了:

期现套利知识体系 期现套利 数学原理 F = S × e^(r×T) 无风险套利模型 正向/反向套利 成本构成 佣金+印花税+冲击成本 现货价格 期货价格 到期时间 价差监控 同时交易 价差回归 交易成本 资金成本 跟踪误差 实战流程:监控价差 → 判断机会 → 执行交易 → 等待收敛 核心:价差回归 + 成本控制 + 同时交易 ⚠ 注意:流动性风险、执行风险、模型风险

1.6 一个简单的套利计算器

我写了个简单的Python函数,用来快速判断套利机会:

def check_arbitrage(spot_price, futures_price, rate, days_to_expiry, cost_rate):
    """
    检查期现套利机会
    spot_price: 现货价格
    futures_price: 期货价格
    rate: 无风险利率(年化)
    days_to_expiry: 到期天数
    cost_rate: 总成本率
    """
    T = days_to_expiry / 365
    theoretical_futures = spot_price * (1 + rate * T)
    spread = futures_price - theoretical_futures
    
    # 扣除成本后的净收益
    net_profit = spread - spot_price * cost_rate
    
    if net_profit > 0:
        return f"正向套利机会!预期净收益:{net_profit:.2f}点"
    elif net_profit < -spot_price * cost_rate:
        return f"反向套利机会!预期净收益:{-net_profit:.2f}点"
    else:
        return "无套利机会,价差在合理范围内"

这个函数我用了好几年,核心逻辑一直没变。你拿去改改参数就能用。

记住:套利不是赌博,是数学。把公式吃透,把成本算清,剩下的就是耐心等待机会。

专注资料整理