4、信号过滤与确认:多指标共振、成交量确认、时间窗口过滤

信号过滤,说白了就是给交易信号「挤水分」。

我刚开始做量化那会儿,总觉得信号越多越好。后来回测一看,胜率惨不忍睹。为什么?因为单个指标太容易骗人了。你想想看,一个金叉信号出来,兴冲冲进场,结果是个假突破,直接被套。

所以,我们需要一套过滤机制。今天聊的这三个方法,是我个人最常用的组合拳。

4.1 多指标共振:让信号「互相验证」

什么叫共振?就是多个独立指标同时指向同一个方向。比如均线金叉的同时,MACD也翻红,RSI也处于强势区。三个指标都说「买」,那这个信号的可靠性就高很多。

我在项目中遇到过最典型的案例:某只股票日线级别出现均线金叉,但MACD还是死叉状态。我当时犹豫了一下,没进场。结果第二天直接一根大阴线砸下来。嗯,这就是典型的「指标背离」,单个指标骗线。

多指标共振的核心逻辑,我总结成一句话:不同维度的指标同时确认,信号置信度指数级提升

实战经验:我个人习惯用「2+1」原则——至少两个趋势指标(如均线、MACD)加一个震荡指标(如RSI、KDJ)同时确认,才考虑进场。单一指标信号,直接忽略。

下面是一个简单的多指标共振检测代码示例:

def check_resonance(df):
    """
    检查多指标共振情况
    返回共振强度评分 (0-3分)
    """
    score = 0
    
    # 1. 均线共振:短期均线上穿长期均线
    if df['ma5'].iloc[-1] > df['ma20'].iloc[-1]:
        score += 1
    
    # 2. MACD共振:DIF上穿DEA
    if df['macd_dif'].iloc[-1] > df['macd_dea'].iloc[-1]:
        score += 1
    
    # 3. RSI共振:RSI处于强势区(>50)
    if df['rsi'].iloc[-1] > 50:
        score += 1
    
    return score

# 使用示例
resonance_score = check_resonance(data)
if resonance_score >= 2:
    print("共振信号确认,可以考虑进场")
else:
    print("共振不足,等待更多确认")

小技巧:共振指标不是越多越好。3-4个足矣。指标太多反而容易互相矛盾,导致信号过少,错过行情。

4.2 成交量确认:没有量的信号都是「耍流氓」

成交量是什么?是市场的「真金白银」。价格可以骗人,但成交量很难造假。

我记得有一次,某个币种突然拉了一根大阳线,技术指标全部看多。但我看了一眼成交量——缩量的。当时我就觉得不对劲。果然,第二天直接跌回原形。这就是典型的「无量上涨」,主力拉高出货。

成交量确认的核心逻辑:价格变动必须有成交量配合,否则视为无效信号

具体怎么用?我一般看两个维度:

  • 放量突破:价格突破关键位时,成交量必须明显放大(至少是前5日均量的1.5倍以上)
  • 缩量回调:上涨趋势中的回调,成交量应该萎缩,说明抛压不大

下面是一个成交量确认的过滤函数:

def volume_confirm(df, threshold=1.5):
    """
    成交量确认过滤
    返回True表示成交量确认通过
    """
    current_vol = df['volume'].iloc[-1]
    avg_vol = df['volume'].iloc[-6:-1].mean()  # 前5日均量
    
    vol_ratio = current_vol / avg_vol
    
    if vol_ratio >= threshold:
        return True
    else:
        return False

# 使用示例
if volume_confirm(data, threshold=1.5):
    print("成交量确认通过,信号有效")
else:
    print("成交量不足,信号过滤掉")

避坑指南:我曾经踩过一个坑——只看绝对成交量,忽略了市场整体环境。牛市的成交量本身就比熊市大。所以建议用「相对成交量」,即当前成交量与近期均量的比值,而不是绝对值。

4.3 时间窗口过滤:别在「垃圾时间」交易

时间窗口过滤,说白了就是「在正确的时间做正确的事」。

你想想看,A股开盘前15分钟和收盘前15分钟,波动剧烈,噪音极大。这时候的信号,可靠性很低。我个人的习惯是:避开开盘后30分钟和收盘前30分钟

时间窗口过滤的核心逻辑:不同时间段的市场行为特征不同,信号的有效性也不同

我常用的时间窗口规则:

市场 有效交易时段 过滤时段 原因
A股 10:00 - 14:30 9:30-10:00, 14:30-15:00 开盘/收盘噪音大
期货 开盘后30分钟至收盘前30分钟 开盘/收盘前后30分钟 跳空缺口和尾盘异动
加密货币 避开整点前后15分钟 整点前后15分钟 合约交割/资金费率结算

代码实现也很简单:

def time_window_filter(timestamp, market='A股'):
    """
    时间窗口过滤
    返回True表示当前时间允许交易
    """
    hour = timestamp.hour
    minute = timestamp.minute
    
    if market == 'A股':
        # 有效时段:10:00 - 14:30
        if (hour == 10 and minute >= 0) or (11 <= hour <= 13) or (hour == 14 and minute <= 30):
            return True
        else:
            return False
    elif market == '期货':
        # 有效时段:开盘后30分钟至收盘前30分钟
        if (hour == 9 and minute >= 30) or (10 <= hour <= 14) or (hour == 15 and minute <= 0):
            return True
        else:
            return False
    else:
        return True  # 默认不过滤

# 使用示例
if time_window_filter(current_time, market='A股'):
    print("时间窗口通过,可以执行交易")
else:
    print("当前处于过滤时段,信号暂不执行")

个人经验:时间窗口过滤不是死的。如果遇到重大数据发布(比如非农、CPI),我会临时调整窗口。数据发布前后30分钟,所有信号一律过滤——因为这时候市场反应极度情绪化,技术分析基本失效。

4.4 三者结合:完整的信号过滤流程

上面三个方法单独用,效果有限。组合起来,威力才大。我一般按这个顺序执行过滤:

  1. 第一步:时间窗口过滤——先判断当前是否在有效交易时段
  2. 第二步:多指标共振——检查多个指标是否同时确认
  3. 第三步:成交量确认——最后看成交量是否配合

只有三步全部通过,我才执行交易。任何一个环节不通过,直接放弃。

下面是一个完整的过滤流程代码:

def signal_filter_pipeline(df, current_time, market='A股'):
    """
    信号过滤流水线
    返回 (是否通过, 过滤原因)
    """
    # 第一步:时间窗口过滤
    if not time_window_filter(current_time, market):
        return False, "时间窗口过滤未通过"
    
    # 第二步:多指标共振
    resonance_score = check_resonance(df)
    if resonance_score < 2:
        return False, f"共振不足,当前评分{resonance_score}"
    
    # 第三步:成交量确认
    if not volume_confirm(df):
        return False, "成交量确认未通过"
    
    return True, "所有过滤通过,信号有效"

# 使用示例
is_valid, reason = signal_filter_pipeline(data, current_time, 'A股')
if is_valid:
    print("✅ 信号确认,执行交易")
else:
    print(f"❌ 信号过滤,原因:{reason}")

核心总结:信号过滤不是「越多越好」,而是「越精准越好」。多指标共振解决「方向确认」问题,成交量确认解决「真伪辨别」问题,时间窗口过滤解决「时机选择」问题。三者缺一不可。

嗯,这套过滤体系我用了好几年,胜率从原来的40%左右提升到了65%以上。当然,没有完美的系统,但至少能帮你避开大部分明显的坑。

信号过滤与确认流程 原始交易信号 第一步:时间窗口过滤 避开开盘/收盘噪音时段 ❌ 过滤掉 第二步:多指标共振 均线 + MACD + RSI 同时确认 ❌ 过滤掉 第三步:成交量确认 放量突破 / 缩量回调验证 ❌ 过滤掉 ✅ 信号确认,执行交易 时间窗口 多指标共振 成交量确认 最终执行
专注资料整理