通达信人气指标公式在指标列表里不是一个,而是一组:AR、BR 各算各的分母,PSY 用的又是另一种统计方式。三者在副图上并排画出来,形状有时同向,有时拧着走,读数的人容易以为哪里写错了。把三条线的基准价摆出来,分歧就有了解释。
下面的写法按通达信公式语言的取值函数展开,参数默认值取自指标说明里的原始设定:AR 与 BR 为 26,PSY 为 12。不同版本、不同券商定制版在指标列表中的名称可能写作 ARBR、BRAR 或「人气意愿指标」,函数名与参数位不变。
一、三条线,三个基准价
AR 的基准是当天的开盘价。它把当天的最高价与开盘价之差当作多方在盘中推进的幅度,把开盘价与最低价之差当作空方压下去的幅度,两个幅度各取 N 日累计,再相除。
BR 的基准是昨天的收盘价。它看的是今天的最高价越过昨收多少、最低价跌破昨收多少。跨了一夜,跳空就被算进去了,这是 AR 里没有的一项。
PSY 不看价格幅度,只数天数。N 日之内收盘价比前一日高的天数占多少,就输出多少。同样一段行情,涨一点与涨幅拉大,在 PSY 上是同一票。
| 指标 | 基准 | 分子 | 分母 | 量的是什么 |
|---|---|---|---|---|
| AR | 当日开盘价 O | N 日 (H − O) 之和 | N 日 (O − L) 之和 | 盘中上推与下压的幅度对比 |
| BR | 昨日收盘价 CY | N 日 max(0, H − CY) 之和 | N 日 max(0, CY − L) 之和 | 跨日跳空后的强弱对比 |
| PSY | 前一日收盘价 | 收盘上涨的天数 | N | 上涨方向出现的频次占比 |
这张表解释了为什么三条线会分叉。AR 不含跳空,BR 含跳空,一段连续高开的行情里,BR 会先抬起来,AR 还在原地。PSY 只认方向,横盘里每天小涨一点,PSY 也能贴着高位,而 AR 与 BR 都在 100 附近晃。
二、AR:以开盘价为基点的上下影
把 AR 写成公式,就是两段求和相除,再乘 100 换成刻度:
{ AR:人气指标,N 默认 26 }
N:=26;
AR:SUM(H-O,N)/SUM(O-L,N)*100;
分子是 N 日之内「最高价减开盘价」的累计,量的是每天盘中向上推开的距离;分母是「开盘价减最低价」的累计,量的是向下压开的距离。开盘价是当天的起点,以起点为基准,上下两侧的幅度可以直接对照。
这样写有一个前提:开盘价必须在最高价与最低价之间。正常交易日这个前提成立,H 减 O 与 O 减 L 都不为负。遇到数据异常(最高价低于开盘价)时,分子会出现负数,AR 被拉到 100 以下,看着像极弱,其实是数据问题。
AR 的读数以 100 为中轴。上下两侧幅度相等,比值就是 1,乘 100 得 100。数值往上走,说明盘中向上推开的距离在变大;往下走,说明向下压开的距离在变大。
通达信人气指标公式里的 AR,是一条路径型曲线。它对当天的开盘位置敏感,对昨天的收盘位置不敏感。除权日的开盘价被折算过,AR 会跟着跳一下,这个跳不是人气变化,是价格轴变了。
三、BR:以昨收为基点的跳空
BR 的两段求和都带一个下限为零的判断:
{ BR:意愿指标,N 默认 26,CY 为昨收 }
N:=26;
CY:=REF(C,1);
BR:SUM(MAX(0,H-CY),N)/SUM(MAX(0,CY-L),N)*100;
MAX(0,H-CY) 的意思是:今天最高价高于昨收,就把超出的部分记进来;没超过,记零。另一侧同理。两段各自只累加强势与弱势的那一半,不把相反方向的幅度抵掉。这是 BR 与 AR 在算法上的分界:AR 的分子分母都取自当天自身,BR 的两段分别对应向上与向下两个方向。
因为基准是昨收,跳空在 BR 里被完整计入。一字涨停开盘的交易日,最高价等于最低价等于开盘价,同时高于昨收,分子记入整段跳空,分母为零。这一天的 BR 会顶到极大值或返回无效值,具体表现取决于版本对除零的处理。
BR 也会受除权影响,而且比 AR 明显。除权日昨收是除权前的价格,今天的最低价按除权后的价格算,CY 减 L 被放大,分母变大,BR 当天会塌下去一截。用 BR 做历史序列,除权日要么跳过,要么整段改用前复权数据。
四、PSY:只数天数,不看幅度
PSY 的写法最短:
{ PSY:心理线,N 默认 12 }
N:=12;
PSY:COUNT(C>REF(C,1),N)/N*100;
COUNT 统计 N 根 K 线里收盘价高于前一根的天数,除以 N 换成比例,再乘 100。它把每天的涨跌压成一个二值判断:涨了记一次,没涨就不记。平盘算不算上涨,取决于写成 C 大于 REF(C,1) 还是 C 大于等于 REF(C,1),两种写法在横盘股上能差出一段。
因为只看方向,PSY 对幅度不敏感。连拉几根小阳线与连拉几根大阳线,只要天数一样,PSY 读数一样。这也意味着它无法区分「慢慢爬」与「一步到位」,需要与 AR、BR 这类含幅度的指标配合读。
PSY 的窗口长度直接影响读数的颗粒度。N 取 12,输出只能落在 12 个离散档位上,每一档对应一天;N 取 24,档位细一倍,曲线平滑一些,反应也慢一些。
五、参数与除零:26 与 12 各自改什么
AR 与 BR 的原始参数是 26,PSY 是 12。两个数字来源不同:前两个按四周左右的交易日设定,后一个按半月左右设定。改成同一组数并不会让三条线更一致,只会让各自的窗口含义变掉。
窗口改短,求和范围窄,单日的大幅波动权重上升,曲线毛刺变多;窗口改长,单日影响被摊薄,曲线平滑,转折滞后。改参数时一次只动一条线,另外两条保持默认,这样能看出变化来自哪里。
除零的位置有三处,都是价格极值造成的:
- AR 的分母 SUM(O-L,N)。一字板当天 O 等于 L,这一天贡献零;连续一字板会让整个窗口的分母接近零。
- BR 的分母 SUM(MAX(0,CY-L),N)。一字跌停开盘时 L 等于 CY,这一天贡献零;连续跌停同理。
- PSY 的分母是常数 N,不存在除零,但窗口内没有足够 K 线时 COUNT 的结果会失真。
除零之后通达信返回什么,各版本不完全一致,可能是一个极大的数,也可能是空值。稳妥的写法是在外面套一层判断,分母为零时直接给空值:
{ 分母为零时输出空值,避免曲线被拉成一条竖线 }
N:=26;
D1:=SUM(O-L,N);
AR:IF(D1=0,DRAWNULL,SUM(H-O,N)/D1*100);
CY:=REF(C,1);
D2:=SUM(MAX(0,CY-L),N);
BR:IF(D2=0,DRAWNULL,SUM(MAX(0,H-CY),N)/D2*100);
DRAWNULL 在通达信里表示不画这个点,曲线会断开,不会把前后的点连成一条斜线。相比让它返回一个离谱的数值,断开更能提示这一段数据不可用。
六、三条线一起读的顺序
并排看三条线时,先看 AR 与 BR 是否同向。同向说明盘中幅度与跨日跳空指向一致;分叉说明跳空在起作用,此时看 BR 的偏离有多大,再看 AR 是否跟不上。这也是通达信人气指标公式里三条线不能互相替代的原因:基准不同,量到的侧面就不同。
第二步看 PSY 是否确认。PSY 只数天数,它给出的是方向出现的频次,不含幅度。AR 与 BR 同向而 PSY 贴在中轴附近,说明这段行情是少天数大力度推出来的;三条线同时抬升,说明推动是连续的。
第三步看有没有失效位置。三类位置会让读数失去意义:
- 连续一字板。AR 与 BR 的分母同时塌陷,曲线被拉到极端值,这一段读数不能与前后比较。
- 除权除息日。AR 与 BR 都会跳变,跳变由价格轴折算造成,不是人气变化。
- 上市初期。窗口不足 26 根 K 线时,SUM 只在已有数据上累计,分母偏小,读数偏高。
这三类位置的处理办法相同:在图上标出来,比较时跳过。指标本身不会告诉你哪一段不可用,需要自己在序列里做标记。
核对时按 Ctrl+F 打开「公式管理器」,在「技术指标公式」下新建,把三段源码分别粘进去,点「测试公式」,输出区会列出 AR、BR、PSY 的当前值。再用软件自带的 ARBR 指标画在同一只股票上对照,两条 AR 曲线重合,说明取值与参数都对上了。
通达信人气指标公式里没有成交量,也没有成交额。三条线量的都是价格在窗口内的位置关系,量能变化要另找指标看。把它们当成价格结构的描述工具,比当成单独的判断依据更贴合它们的算法。
站内还有 通达信指标原理与参数 的条目,量价形态与信号拆解 讲信号条件的构造,通达信公式编写教程 讲 SUM 与 COUNT 的窗口写法。
本文只作技术研究口径,内容是指标算法与取数口径,不涉及也不构成对任何标的的判断。
