涨跌比指标详解:定义、计算与参数选择

涨跌比,英文叫 Advance-Decline Ratio,简称 ADR。这玩意儿在量化圈里,算是市场宽度指标里最基础、也最实用的一个。我刚开始做交易那会儿,最先接触的就是它。

说白了,ADR 就是统计一段时间内,上涨股票数量与下跌股票数量的比值。它能告诉你,市场到底是普涨还是普跌,还是说只是少数权重股在表演。

一、ADR 的定义与核心逻辑

先给个正式定义:

涨跌比 (ADR) = 上涨家数 / 下跌家数

其中,上涨家数和下跌家数通常取自某个交易所的全部上市股票,或者某个特定板块(比如沪深300成分股)。

你想想看,如果今天有 2000 只股票上涨,500 只下跌,那 ADR 就是 4.0。这说明市场情绪非常亢奋,几乎是一边倒的上涨。反过来,如果只有 300 只涨,2700 只跌,ADR 就只有 0.11,那市场就是一片哀嚎。

我个人习惯把 ADR 看作市场的「体温计」。体温高了,可能发烧了;体温低了,可能着凉了。但体温正常,不代表身体一定健康——嗯,这里要注意,ADR 只是一个统计指标,它不反映涨跌的幅度。

二、计算方法与代码实现

计算 ADR 其实很简单,就是除法。但实际应用中,我们通常会对原始 ADR 做平滑处理,也就是取移动平均。

先看原始 ADR 的计算公式:

ADR_t = Advance_t / Decline_t

其中 Advance_t 是第 t 日的上涨家数,Decline_t 是第 t 日的下跌家数。

然后,我们通常计算 N 日移动平均 ADR:

MA_ADR_t = (ADR_t + ADR_{t-1} + ... + ADR_{t-N+1}) / N

下面是我常用的 Python 实现,你们可以直接拿去用:

import pandas as pd
import numpy as np

def calculate_adr(advance, decline, window=5):
    """
    计算涨跌比 (ADR) 及其移动平均
    
    参数:
    advance: 上涨家数序列
    decline: 下跌家数序列
    window: 移动平均窗口,默认5日
    
    返回:
    DataFrame: 包含原始ADR和移动平均ADR
    """
    # 避免除零错误
    decline = decline.replace(0, np.nan)
    
    # 计算原始ADR
    adr = advance / decline
    
    # 计算移动平均
    adr_ma = adr.rolling(window=window).mean()
    
    result = pd.DataFrame({
        'ADR': adr,
        f'ADR_MA_{window}': adr_ma
    })
    
    return result

# 示例用法
advance = pd.Series([1200, 1500, 800, 2000, 1800])
decline = pd.Series([800, 500, 1200, 300, 600])

result = calculate_adr(advance, decline, window=3)
print(result)

我在项目中遇到过一个问题:当下跌家数为 0 时,ADR 会变成无穷大。虽然这种情况在 A 股几乎不会发生,但在美股小盘股里偶尔会出现。我的处理方式是直接填充为 NaN,或者用一个极大值替代。

三、参数选择:5日、10日、20日

参数选择这事儿,没有绝对的标准。我根据自己的实战经验,给大家整理了一个对比表:

参数 敏感度 信号频率 适用场景
5日 ADR 高(频繁) 短线交易、日内择时
10日 ADR 波段操作、周线级别
20日 ADR 低(稀少) 趋势判断、月线级别

5日 ADR:我最常用的是这个。它反应快,能捕捉到市场情绪的短期变化。比如连续两天 ADR 低于 0.5,说明市场已经极度恐慌,这时候往往会出现超跌反弹的机会。但缺点是假信号多,容易被单日极端行情干扰。

10日 ADR:这个参数比较折中。我一般用它来做波段操作的辅助判断。如果 10日 ADR 从低位(比如 0.6 以下)开始拐头向上,同时指数也在支撑位附近,那我会考虑加仓。

20日 ADR:这个参数比较迟钝,但信号可靠性高。我记得有一次,20日 ADR 连续 5 天低于 0.8,我当时就觉得市场可能要走弱了。果然,后面两周大盘跌了 5%。

我的建议:新手可以先从 10日 ADR 入手。等熟悉了,再结合 5日和 20日一起看。三个参数同时发出信号时,胜率会明显提升。

四、适用场景与实战技巧

ADR 到底在哪些场景下最有用?我总结了几点:

  1. 市场情绪判断:ADR > 2.0 表示极度乐观,ADR < 0.5 表示极度悲观。这两种极端情况往往预示着反转。
  2. 顶底背离识别:指数创新高,但 ADR 没有创新高,这叫顶背离,是卖出信号。反过来,指数创新低,ADR 没有创新低,是底背离,买入信号。
  3. 趋势确认:如果 ADR 和指数同步上涨,说明上涨有广度支撑,趋势健康。如果指数涨但 ADR 在跌,那就是「赚指数不赚钱」,要小心了。

避坑指南:我曾经犯过一个错误——只看 ADR 的绝对值,忽略了它的趋势。比如 ADR 从 3.0 跌到 1.5,虽然 1.5 还在正常范围,但下跌趋势已经形成,市场情绪在降温。后来我学会了,不仅要看数值,还要看方向。

五、知识体系框架图

下面我用一张 SVG 图来总结本章的核心逻辑,方便大家理解 ADR 的整体脉络:

涨跌比 (ADR) 知识体系 ADR 涨跌比 定义:上涨/下跌家数 计算:原始值 + 移动平均 参数:5/10/20日 场景:情绪判断 场景:顶底背离 技巧:看趋势而非绝对值

这张图把 ADR 的核心要素串起来了。从定义出发,到计算方法,再到参数选择和实战场景,最后落到技巧上。你们可以把它当作一个思维导图来用。

好了,关于涨跌比指标,今天就聊这么多。记住,ADR 不是万能的,但没有它,你的择时工具箱里就少了一把利器。下一章我们会讲另一个宽度指标——麦克连指标,到时候再对比着看,效果更好。

专注资料整理