涨跌比指标详解:定义、计算与参数选择
涨跌比,英文叫 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 到底在哪些场景下最有用?我总结了几点:
- 市场情绪判断:ADR > 2.0 表示极度乐观,ADR < 0.5 表示极度悲观。这两种极端情况往往预示着反转。
- 顶底背离识别:指数创新高,但 ADR 没有创新高,这叫顶背离,是卖出信号。反过来,指数创新低,ADR 没有创新低,是底背离,买入信号。
- 趋势确认:如果 ADR 和指数同步上涨,说明上涨有广度支撑,趋势健康。如果指数涨但 ADR 在跌,那就是「赚指数不赚钱」,要小心了。
避坑指南:我曾经犯过一个错误——只看 ADR 的绝对值,忽略了它的趋势。比如 ADR 从 3.0 跌到 1.5,虽然 1.5 还在正常范围,但下跌趋势已经形成,市场情绪在降温。后来我学会了,不仅要看数值,还要看方向。
五、知识体系框架图
下面我用一张 SVG 图来总结本章的核心逻辑,方便大家理解 ADR 的整体脉络:
这张图把 ADR 的核心要素串起来了。从定义出发,到计算方法,再到参数选择和实战场景,最后落到技巧上。你们可以把它当作一个思维导图来用。
好了,关于涨跌比指标,今天就聊这么多。记住,ADR 不是万能的,但没有它,你的择时工具箱里就少了一把利器。下一章我们会讲另一个宽度指标——麦克连指标,到时候再对比着看,效果更好。