第十六章:技术指标辅助择时:布林带、RSI、MACD在基差交易中的改良
各位做基差交易的朋友,咱们今天聊点实在的。
很多人觉得基差交易就是看现货和期货的价差,盯着基本面就够了。我早年也这么想,直到有一次在螺纹钢上栽了个跟头——基本面明明看多,基差却越走越弱,硬扛了半个月,回撤了8%。
后来我反思:基差本身是价格的一种表现形式,它同样受市场情绪和资金博弈的影响。技术指标,说白了就是帮我们捕捉这种情绪的放大镜。但直接用传统参数?不行,得改。
16.1 为什么传统指标在基差上水土不服?
先说说问题出在哪。
传统布林带、RSI、MACD都是针对价格序列设计的。但基差是个差值序列,它的统计特性跟价格完全不同:
- 均值回归性更强:基差天然围绕某个中枢波动,不像价格可以单边涨上天
- 波动率更集中:大部分时间基差在窄幅区间内,偶尔出现极端值
- 自相关性更弱:今天的基差跟昨天的关系,不如价格那么紧密
我刚开始直接把RSI(14)套在基差上,结果频繁发出假信号。为什么?因为基差的波动周期比价格短得多,14天的窗口太长,等指标反应过来,行情都走完了。
核心结论:基差择时,必须缩短指标周期,并调整阈值。
16.2 布林带的改良:动态通道捕捉基差极端值
布林带的核心思想是:当价格突破上下轨时,大概率会回归。基差也一样,但参数要调。
我的改良方案:
- 周期缩短:从传统的20周期改为10周期。基差的均值回归速度比价格快,10周期足够捕捉大部分有效波动
- 倍数调整:从2倍标准差改为1.5倍。基差的极端值不如价格那么极端,用2倍容易漏信号
- 增加中轨确认:不只看上下轨,还要看基差是否穿越中轨。如果基差从上轨回落并跌破中轨,才是真正的回归信号
举个例子。我在做豆粕基差时,发现传统布林带经常在基差刚碰到上轨时就提示卖出,结果基差继续冲高。改成1.5倍标准差后,信号少了一半,但胜率从55%提到了72%。
实战技巧:布林带上下轨的宽度,其实反映了基差的波动率。当带宽突然收窄时,往往意味着基差即将出现大波动。这时候别急着开仓,等方向明确再说。
16.3 RSI的改良:阈值重定义与背离过滤
RSI在基差交易中最大的问题是:传统30/70的阈值太宽了。
基差的波动范围通常比价格小得多。比如螺纹钢基差大部分时间在-50到+50之间,你用70作为超买阈值,可能一年都触发不了几次。
我的做法:
- 周期改为7:基差的短期动量更强,7周期能更快反应
- 阈值改为20/80:经过回测,这个阈值在大多数商品上效果最好
- 增加背离过滤:基差创新低但RSI没创新低,才是真正的底背离信号
我记得有一次做PTA基差,RSI(7)在20以下出现了底背离,我果断做多基差回归。结果三天后基差从-80回到了-30,单笔盈利超过2%。
避坑指南:我曾经在RSI低于20时直接做多,结果基差继续下探。后来加了背离条件,才把假信号过滤掉。记住:RSI进入超卖区不代表马上反转,必须等背离确认。
16.4 MACD的改良:零轴穿越与柱线收缩
MACD在基差交易中,我主要看两个信号:
- 零轴穿越:DIF线穿越零轴,代表基差动量方向改变。但传统12/26/9参数太慢,我改成6/13/5
- 柱线收缩:当MACD柱线从高点开始收缩,但DIF线还在上升,说明动量在衰减,基差可能即将见顶
这里有个细节:MACD的零轴在基差交易中,其实对应的是基差的长期均值。如果基差长期均值是0,那零轴穿越就是多空分界线。但如果基差长期均值不是0(比如某些品种天然存在升贴水),你得先计算均值,再平移零轴。
关键点:MACD改良后,信号频率会提高,但胜率也会下降。我的经验是:只做零轴穿越+柱线收缩的共振信号,其他信号放弃。
16.5 三指标共振:我的实战框架
单个指标都有缺陷,但三个指标共振时,胜率会大幅提升。
我的开仓条件:
- 布林带:基差触及下轨(1.5倍标准差)
- RSI:低于20且出现底背离
- MACD:DIF线在零轴下方金叉,且柱线开始收缩
三个条件同时满足,我才开仓。如果只满足两个,我会等一等,或者减仓试单。
下面是我用Python写的改良指标计算代码,供大家参考:
import pandas as pd
import numpy as np
def bollinger_bands(basis, window=10, num_std=1.5):
"""改良布林带"""
rolling_mean = basis.rolling(window).mean()
rolling_std = basis.rolling(window).std()
upper_band = rolling_mean + num_std * rolling_std
lower_band = rolling_mean - num_std * rolling_std
return upper_band, rolling_mean, lower_band
def rsi_modified(basis, window=7):
"""改良RSI,阈值20/80"""
delta = basis.diff()
gain = delta.where(delta > 0, 0)
loss = -delta.where(delta < 0, 0)
avg_gain = gain.rolling(window).mean()
avg_loss = loss.rolling(window).mean()
rs = avg_gain / avg_loss
rsi = 100 - (100 / (1 + rs))
return rsi
def macd_modified(basis, fast=6, slow=13, signal=5):
"""改良MACD"""
ema_fast = basis.ewm(span=fast).mean()
ema_slow = basis.ewm(span=slow).mean()
dif = ema_fast - ema_slow
dea = dif.ewm(span=signal).mean()
macd_bar = 2 * (dif - dea)
return dif, dea, macd_bar
16.6 知识体系框架
下面这张图,是我自己总结的基差择时技术指标改良逻辑。你看一眼,基本就明白整个框架了。
16.7 实战中的注意事项
最后说几点我踩过的坑:
- 别在基差极窄时用指标:当基差在±10以内波动时,任何指标都会失效。这时候不如直接看基本面
- 注意交割月效应:临近交割月,基差会强制收敛,技术指标会失效。我一般提前两周停止用指标
- 多周期确认:日线级别的信号,最好用小时线再确认一次。我吃过一次亏,日线RSI底背离,但小时线还在下跌趋势中,结果抄底抄在半山腰
最后一句:技术指标是辅助,不是圣杯。基差交易的核心还是对现货基本面的理解。指标帮你择时,但方向判断还得靠你自己。
公众号:蓝海资料掘金营,微信deep3321