2. 市场与合约选择:主力合约与次主力合约、合约流动性评估、换月规律
做跨期套利,第一步不是写策略,而是选对合约。
我见过太多新手,上来就盯着价差图猛干,结果发现流动性不够,平仓时滑点吃掉所有利润。说白了,合约选错了,后面全是白忙活。
2.1 主力合约与次主力合约
什么叫主力合约?就是当前持仓量最大、成交量最活跃的那个合约。次主力呢?就是持仓量排第二的那个。
我个人习惯,做跨期套利只盯这两个。为什么?因为流动性集中,价差波动也相对稳定。
核心原则:主力合约做近月,次主力做远月。或者反过来,但一定要保证两个合约都是活跃的。
举个例子,螺纹钢期货。主力合约通常是1月、5月、10月。比如现在是9月,那主力就是2501合约,次主力可能是2510合约。你拿2501和2510做跨期,没问题。但如果你拿2501和2503做,2503流动性差,你进去容易出来难。
我记得有一次,一个学员拿甲醇的2401和2402做套利。2402成交量只有几百手,他开仓10手就把价格打穿了。嗯,这就是典型的合约选择失误。
2.2 合约流动性评估
流动性怎么评估?别光看成交量,要看买卖盘口的深度。
我一般用三个指标:
- 日均成交量:低于5万手的合约,我基本不考虑做主力。
- 买卖价差:如果价差超过1个最小变动价位,说明流动性差。
- 盘口深度:买一卖一挂单量至少能容纳你的开仓量。
你想想看,如果你开10手,结果买一只有5手,剩下的5手要吃掉买二买三,那你的成交价就变了。套利本来赚的就是微薄价差,这一下就亏了。
我的小技巧:用Python写个脚本,每天收盘后拉一下所有合约的成交量和持仓量,自动筛选出主力、次主力。省得每天手动翻。
下面是我常用的流动性评估代码片段:
import pandas as pd
import tushare as ts
# 获取所有合约的日线数据
def check_liquidity(symbol):
df = ts.get_futures_daily(symbol)
# 只看持仓量前两名的合约
top2 = df.groupby('contract')['hold'].sum().nlargest(2)
return top2.index.tolist()
# 实际调用
main_contracts = check_liquidity('RB') # 螺纹钢
print(f"主力合约: {main_contracts[0]}, 次主力: {main_contracts[1]}")
这段代码很简单,但很实用。我每天跑一遍,心里就有数了。
2.3 换月规律
换月,就是主力合约从当前月切换到下一个主力月。这个时间点很关键。
为什么会发生换月?因为持仓量会慢慢从近月转移到远月。一般发生在交割月前1-2个月。
我总结了一个换月时间表,供你参考:
| 品种 | 主力合约月份 | 换月时间窗口 |
|---|---|---|
| 螺纹钢 | 1月、5月、10月 | 交割月前2个月开始换 |
| 铁矿石 | 1月、5月、9月 | 交割月前1.5个月 |
| 甲醇 | 1月、5月、9月 | 交割月前1个月 |
| PTA | 1月、5月、9月 | 交割月前1个月 |
换月期间,价差波动会变大。因为旧主力合约的持仓在减少,新主力合约的持仓在增加,两边流动性不匹配,价差容易被拉大或压缩。
避坑指南:我曾经在换月窗口期做跨期套利,结果旧主力合约流动性骤降,平仓时滑了3个点。从那以后,我换月前一周就清仓,等换月完成后再重新入场。
换月规律还有一个细节:不同品种的换月节奏不一样。比如螺纹钢换月比较温和,铁矿石就剧烈一些。你想想看,铁矿石一手100吨,资金量大,换月时冲击成本也高。
我个人习惯,换月期间不做跨期套利。宁可空仓等几天,也不去赌那个波动。套利赚的是确定性,不是赌方向。
2.4 知识体系图
下面这张图,是我自己总结的合约选择逻辑。你看一眼就明白了。
这张图我每次培训都会拿出来讲。你把它记在脑子里,选合约就不会出大错。
最后说一句:合约选择是套利的基础。基础不牢,地动山摇。我建议你花一周时间,把主要品种的换月规律摸清楚,后面策略开发会顺很多。
好了,这一章就到这里。记住:流动性第一,价差第二。没有流动性,再好的策略也是纸上谈兵。