第十六章:技术指标辅助择时:布林带、RSI、MACD在基差交易中的改良

各位做基差交易的朋友,咱们今天聊点实在的。

很多人觉得基差交易就是看现货和期货的价差,盯着基本面就够了。我早年也这么想,直到有一次在螺纹钢上栽了个跟头——基本面明明看多,基差却越走越弱,硬扛了半个月,回撤了8%。

后来我反思:基差本身是价格的一种表现形式,它同样受市场情绪和资金博弈的影响。技术指标,说白了就是帮我们捕捉这种情绪的放大镜。但直接用传统参数?不行,得改。

16.1 为什么传统指标在基差上水土不服?

先说说问题出在哪。

传统布林带、RSI、MACD都是针对价格序列设计的。但基差是个差值序列,它的统计特性跟价格完全不同:

  • 均值回归性更强:基差天然围绕某个中枢波动,不像价格可以单边涨上天
  • 波动率更集中:大部分时间基差在窄幅区间内,偶尔出现极端值
  • 自相关性更弱:今天的基差跟昨天的关系,不如价格那么紧密

我刚开始直接把RSI(14)套在基差上,结果频繁发出假信号。为什么?因为基差的波动周期比价格短得多,14天的窗口太长,等指标反应过来,行情都走完了。

核心结论:基差择时,必须缩短指标周期,并调整阈值。

16.2 布林带的改良:动态通道捕捉基差极端值

布林带的核心思想是:当价格突破上下轨时,大概率会回归。基差也一样,但参数要调。

我的改良方案:

  1. 周期缩短:从传统的20周期改为10周期。基差的均值回归速度比价格快,10周期足够捕捉大部分有效波动
  2. 倍数调整:从2倍标准差改为1.5倍。基差的极端值不如价格那么极端,用2倍容易漏信号
  3. 增加中轨确认:不只看上下轨,还要看基差是否穿越中轨。如果基差从上轨回落并跌破中轨,才是真正的回归信号

举个例子。我在做豆粕基差时,发现传统布林带经常在基差刚碰到上轨时就提示卖出,结果基差继续冲高。改成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在基差交易中,我主要看两个信号:

  1. 零轴穿越:DIF线穿越零轴,代表基差动量方向改变。但传统12/26/9参数太慢,我改成6/13/5
  2. 柱线收缩:当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 知识体系框架

下面这张图,是我自己总结的基差择时技术指标改良逻辑。你看一眼,基本就明白整个框架了。

基差择时技术指标改良框架 基差序列 布林带改良 RSI改良 MACD改良 周期10 | 1.5倍标准差 | 中轨确认 周期7 | 阈值20/80 | 背离过滤 参数6/13/5 | 零轴穿越 | 柱线收缩 三指标共振开仓 基差回归交易信号

16.7 实战中的注意事项

最后说几点我踩过的坑:

  • 别在基差极窄时用指标:当基差在±10以内波动时,任何指标都会失效。这时候不如直接看基本面
  • 注意交割月效应:临近交割月,基差会强制收敛,技术指标会失效。我一般提前两周停止用指标
  • 多周期确认:日线级别的信号,最好用小时线再确认一次。我吃过一次亏,日线RSI底背离,但小时线还在下跌趋势中,结果抄底抄在半山腰

最后一句:技术指标是辅助,不是圣杯。基差交易的核心还是对现货基本面的理解。指标帮你择时,但方向判断还得靠你自己。


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