一、套利基础:什么是期现套利?
期现套利,说白了就是利用期货和现货之间的价差赚钱。
我刚开始做量化那会儿,总觉得套利很神秘。后来发现,核心逻辑其实特别简单——同一种东西,在两个市场卖不同价格,你低价买、高价卖,中间的差价就是利润。
举个例子。假设沪深300指数现在是4000点,对应的股指期货合约价格是4050点。这50点的差价,就是套利空间。你可以买入指数对应的股票组合(现货),同时卖出股指期货(期货)。等交割日到了,两边价格会收敛,你就能赚到这50点。
为什么会收敛?因为期货合约到期时,它的价格必须等于现货指数价格。这是交易所的规则决定的,不是猜的。
核心要点:期现套利的本质是价差回归。不是预测涨跌,而是吃价差。
1.1 套利的数学原理
咱们把公式拆开看。
期货的理论价格公式是:
F = S × e^(r × T)
其中:
- F = 期货理论价格
- S = 现货价格
- r = 无风险利率
- T = 到期时间(年)
如果实际期货价格高于理论价格,就存在正向套利机会。反之,就是反向套利。
我习惯用这个公式快速估算。有一次在实盘中,我发现某合约的价差明显偏离理论值,算了一下年化收益超过8%。嗯,这种机会不常见,但抓住了就是稳稳的幸福。
1.2 无风险套利模型
无风险套利,听起来很美对吧?但实际操作中,有几个关键点必须注意。
模型的核心假设是:
- 市场是完全有效的
- 交易成本为零
- 可以同时买卖
- 资金无限
你想想看,现实中这些条件一个都不成立。所以真正的无风险套利,其实是不存在的。我们做的,是低风险套利。
避坑指南:我曾经在2015年股灾期间做过一次期现套利,以为稳赚。结果因为流动性枯竭,现货股票卖不出去,期货又被迫平仓,差点亏钱。记住:流动性风险才是最大的风险。
1.3 套利的成本构成
做套利之前,先把成本算清楚。我列个表:
| 成本项 | 说明 | 典型值 |
|---|---|---|
| 交易佣金 | 买卖双边收取 | 万分之0.5-3 |
| 印花税 | 仅股票卖出时收 | 千分之1 |
| 冲击成本 | 大单买卖造成的滑点 | 0.1-0.5个点 |
| 资金成本 | 占用资金的利息 | 按年化3-5%算 |
| 跟踪误差 | 股票组合与指数不完全匹配 | 0.1-0.3% |
把这些成本加起来,你会发现,很多看起来有利润的套利机会,其实根本赚不到钱。
我的经验:套利空间至少要覆盖成本的2倍以上,我才会动手。低于这个阈值,风险收益比不划算。
1.4 套利流程四步走
实际操作中,我一般按这个流程来:
- 监控价差:实时计算期货与现货的价差
- 判断机会:价差超过阈值时触发
- 执行交易:同时买入现货、卖出期货(或反向)
- 等待收敛:持有到期或价差回归后平仓
这里有个细节:执行交易这一步,必须做到同时。如果先买现货再卖期货,中间那几秒钟价差可能就变了。我习惯用程序化交易来做,人工盯盘太慢了。
1.5 知识体系框架
下面这张图,把期现套利的核心逻辑串起来了:
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 "无套利机会,价差在合理范围内"
这个函数我用了好几年,核心逻辑一直没变。你拿去改改参数就能用。
记住:套利不是赌博,是数学。把公式吃透,把成本算清,剩下的就是耐心等待机会。