[ZS261005]ACD法主图-通达信指标源码分享

01 ▍一根尺子上,怎么同时量下价格和量能
问题先摆这儿:K线用价格当刻度,量柱用成交手数当刻度,两把尺子的刻度压根不一样。
硬把它们摞进一张图,要么K线被压成扁片,要么量柱直接冲出天。
ACD法这套主图的解法不靠分屏,靠换算。
它把成交量按比例缩放,搬进价格坐标系,一根柱子上既看得出价格,也看得出那天成交有多沉。
上轨 BBI 加三倍标准差,通道的天花板 | 下轨 BBI 减三倍标准差,通道的地板 |
中枢价格 成交额除以成交量,算出成交重心 | 量柱映射 把成交量按比挪进价格刻度 |
02 ▍指标源码分享|ACD法主图

指标编号:ZS261005
指标完整源码:
顶:=BBI+3*STD(BBI,13),COLOR004AFF; 底:=BBI-3*STD(BBI,13),COLOR67FF00; DRAWBAND(BBI,RGB(97,95,00),顶,RGB(97,95,00)); DRAWBAND(BBI,RGB(25,75,150),底,RGB(25,75,250)); A:=CURRBARSCOUNT;A1:=DAY=REF(DAY,1); A2:=BARSLAST(A1)+1;A3:=REF(IF(A2=1,1,A2),A2); A4:=CONST(REF(HHV(H,A3),A2));A5:=CONST(REF(LLV(L,A3),A2));A6:=MA(AMO,A3)/MA(VOL,A3)/100;A7:=REF(MA((H+L+C)/3,A3),A2);中枢价格:=IF(CAPITAL>0,REF(A6,A2),A7);均价:=(A4+A5)/2; 价差:=ABS(中枢价格-均价);中枢价格区上沿:IF(A<=CONST(A2),(中枢价格+价差),DRAWNULL);中枢价格区下沿:IF(A<=CONST(A2),(中枢价格-价差),DRAWNULL); DRAWBAND(中枢价格区上沿,RGB(155,50,50),中枢价格区下沿,RGB(155,50,50));开盘价幅上线:IF(A<=CONST(A2),(REF(HHV(H,1),A2-1)),DRAWNULL); 开盘价幅下线:IF(A<=CONST(A2),(REF(LLV(L,1),A2-1)),DRAWNULL);HH0:=CONST(HHV(H,120))*1; LL0:=CONST(LLV(L,120))*1;MM0:=CONST((HH0+LL0)/2);HH1:=IF(CONST(C)<MM0,LL0-(HH0-LL0)*0.4,LL0-(HH0-LL0)*0.4),COLORRED; LL1:=LL0;HLMAX:=MAX(HH1,LL1);HLMIN:=MIN(HH1,LL1);HLMN1:=(HLMAX+HLMIN)/2;HLMN2:=(HLMAX-HLMIN);HLMN3:=HHV(V,250)/2;HLMN4:=HHV(V,250); VZ:=(V-HLMN3)*HLMN2/HLMN4+HLMN1;预测量:IF(CURRBARSCOUNT=1ANDPERIOD=5,VOL*240/FROMOPEN,VOL),COLOR990000,NODRAW; STICKLINE(CURRBARSCOUNT=1ANDPERIOD=5,(0-HLMN3)*HLMN2/HLMN4+HLMN1,(预测量-HLMN3)*HLMN2/HLMN4+HLMN1,2,-1),COLORLIGRAY; STICKLINE(C>=O,VZ,(0-HLMN3)*HLMN2/HLMN4+HLMN1,1,1),COLOR000099;STICKLINE(C<O,VZ,(0-HLMN3)*HLMN2/HLMN4+HLMN1,1,0),COLOR999900; (MA(V,5)-HLMN3)*HLMN2/HLMN4+HLMN1,COLORFFFFFF;(MA(V,10)-HLMN3)*HLMN2/HLMN4+HLMN1,COLOR00FFFF;STICKLINE(CLOSE>REF(CLOSE,1),HIGH,LOW,0,1),COLORRED; STICKLINE(CLOSE>REF(CLOSE,1),OPEN,CLOSE,3,0),COLOR000055;STICKLINE(CLOSE>REF(CLOSE,1),OPEN,CLOSE,2.7,0),COLOR000077; STICKLINE(CLOSE>REF(CLOSE,1),OPEN,CLOSE,2.1,0),COLOR000099;STICKLINE(CLOSE>REF(CLOSE,1),OPEN,CLOSE,1.5,0),COLOR0000BB; STICKLINE(CLOSE>REF(CLOSE,1),OPEN,CLOSE,0.9,0),COLOR0000DD;STICKLINE(CLOSE>REF(CLOSE,1),OPEN,CLOSE,0.3,0),COLOR0000FF; STICKLINE(CLOSE=REF(CLOSE,1),HIGH,LOW,0,1),COLORWHITE;STICKLINE(CLOSE=REF(CLOSE,1),OPEN,CLOSE,3,0),COLOR555555; STICKLINE(CLOSE=REF(CLOSE,1),OPEN,CLOSE,2.7,0),COLOR777777;STICKLINE(CLOSE=REF(CLOSE,1),OPEN,CLOSE,2.1,0),COLOR999999; STICKLINE(CLOSE=REF(CLOSE,1),OPEN,CLOSE,1.5,0),COLORBBBBBB;STICKLINE(CLOSE=REF(CLOSE,1),OPEN,CLOSE,0.9,0),COLORDDDDDD; STICKLINE(CLOSE=REF(CLOSE,1),OPEN,CLOSE,0.3,0),COLORFFFFFF;STICKLINE(CLOSE<REF(CLOSE,1),HIGH,LOW,0,1),COLORCYAN; STICKLINE(CLOSE<REF(CLOSE,1),OPEN,CLOSE,3,0),COLOR990000;STICKLINE(CLOSE<REF(CLOSE,1),OPEN,CLOSE,2.7,0),COLORCC0000; STICKLINE(CLOSE<REF(CLOSE,1),OPEN,CLOSE,2.1,0),COLORFF4400;STICKLINE(CLOSE<REF(CLOSE,1),OPEN,CLOSE,1.5,0),COLORFF8800; STICKLINE(CLOSE<REF(CLOSE,1),OPEN,CLOSE,0.9,0),COLORFFCC00;STICKLINE(CLOSE<REF(CLOSE,1),OPEN,CLOSE,0.3,0),COLORCYAN; |
03 ▍指标原理深度拆解:量柱是怎么被压进K线那把尺子的
一段缩放,把量柱挪进价格坐标 | |
量 | 减掉半个峰值乘上缩放比 |
价 | 加回起点高度,落到价格刻度上 |
先看通道。
顶:=BBI+3*STD(BBI,13),COLOR004AFF;
BBI 是多条均线的再平均,本身已经够平。STD(BBI,13) 量的是 BBI 自己抖得多厉害。
倍数取三,试过二,通道太窄,K线天天穿上穿下,边界等于没有;试过四,又太宽,价格走出老远还碰不到边。
三这个数把边界落在常见波动的外沿,平时贴着走,真拉开距离才被碰到。
十三这个窗口试过八,太短,标准差被最近两天的情绪带跑;试过二十一,又太钝,通道宽度跟不上节奏。
中间取十三,差不多三周的K线数。
DRAWBAND 那两行,把 BBI 到上轨、BBI 到下轨之间各刷一层色带,看盘时通道是整片铺开的,不是两条细线。
接着看中枢价格,这是整段里最绕的一处。
A6:=MA(AMO,A3)/MA(VOL,A3)/100;
AMO 是成交额,VOL 是成交量,两个一除,得到的就是这段日子里平均每一手花了多少钱。
除以一百,是把单位折回元每股的口径,好跟价格对齐。
A7 走另一条路:把最高、最低、收盘加起来除以三,先算每天的中间价,再取平均。
中枢价格:=IF(CAPITAL>0,REF(A6,A2),A7);
这个分支的意思是:拿得到流通股本,就走成交额除以成交量那条路;拿不到,就退回中间价平均。
IF 里套 CAPITAL 判断,是为了照顾指数这类没有股本数据的品种。
A2 是当天已经走完的K线根数,昨天的均值就靠它取回来,再配上 A4、A5 里当日的区间极值。
均价:=(A4+A5)/2;
价差:=ABS(中枢价格-均价);
中枢价格和均价不是一回事,前者按成交算,后者按区间算。两数相减取绝对值得到价差,再拿中枢价格加减价差,画出一个矩形框。
框越宽,说明按成交算出来的重心,跟按区间算出来的中点离得越远。
下面这段是整套公式最花心思的地方——把量柱搬进价格坐标。
HLMN2:=(HLMAX-HLMIN);
HLMN3:=HHV(V,250)/2;
HLMN4:=HHV(V,250);
VZ:=(V-HLMN3)*HLMN2/HLMN4+HLMN1;
HLMN2 是留给量柱的那段高度,等于价格区间往下排出来的一块留白。HLMN4 记的是近两百五十根K线里最大的单日成交量,HLMN3 取它的一半,当原点。
(V-HLMN3) 先把当天的量减掉半个峰值,再乘 HLMN2/HLMN4 这个缩放比,加回 HLMN1 这个起点高度。
一句话说完:先减半峰,再按比例缩到留白高度,末了平移到图上。
两百五十这个长度,试过一百二,太短,遇上一根天量就把后面所有柱子压成火柴棍;试过五百,又太长,一年前的天量还压着今天的柱子。
两百五十根约合一年的交易日,把缩放基准钉在"这一年见过的最大量"上。
预测量:IF(CURRBARSCOUNT=1 AND PERIOD=5,VOL*240/FROMOPEN,VOL),COLOR990000,NODRAW;
预测量这句只在当日K线上起作用,用已经开盘的分钟数把当前量折算成全天。二百四十是一天的交易分钟数,FROMOPEN 是已经走过的分钟数。
有它兜着,盘中的那根柱子才不会永远只有半截。
收尾那二十一行 STICKLINE,把K线按涨、平、跌分成三档,每档再拆七层宽度由粗到细叠色。
宽的三点零、二点七、二点一、一点五、零点九、零点三,一层压一层,中间露深色,边上留浅色,实体就有了立体感。
我第一次照着这段改的时候,把七层压成三层,实体立刻变成一块死板的色块,看着就知道少了什么。
一句话记住:量柱能进主图,靠的是一段比例缩放,不是把两把尺子硬拼在一起。
