[AG260923]万法归一KDJ副图-通达信指标源码分享

【免责声明】本文仅拆解指标算法原理、信号含义,属编程与源码科普,不构成任何投资建议。市场有风险,据此操作盈亏自负。
01 一根线,把 KDJ 和均线角度、量价全收编了
盯盘盯到眼酸?KDJ 金叉刚亮,价格又给打回来。单看一个 KDJ,钝化起来真能把人晃晕。
这份 万法归一KDJ副图 干的活儿,是把 KDJ、均线拐头角度、量价偏离几路信号,揉进同一根副图里。哪路先动、哪路后动,一眼能比出来。
速查卡(五秒扫完):
| KDJ 三兄弟 | 均线角度 |
| 量价偏离 | 综合副图 |
02 指标源码分享|万法归一KDJ副图

指标编号:AG260923
指标完整源码:
DB:=-10;RSV:=(((CLOSE - LLV(LOW,9)) / (HHV(HIGH,9) - LLV(LOW,9))) * 100);短期底部:=LLV(OPEN,30);K:SMA(RSV,3,1);D:SMA(K,3,1);J:((3 * K) - (2 * D));AA10:=MA(CLOSE,10);AA12:=MA(CLOSE,12);BB10:=((ATAN((AA10 - REF(AA10,1))) * 3.1416) * 10);BB12:=((ATAN((AA12 - REF(AA12,1))) * 3.1416) * 10);MA13:=MA(CLOSE,13);VAR2:=(((CLOSE - MA(CLOSE,6)) / MA(CLOSE,6)) * 100);VAR3:=(((CLOSE - MA(CLOSE,12)) / MA(CLOSE,12)) * 100);VAR4:=(((CLOSE - MA(CLOSE,24)) / MA(CLOSE,24)) * 100);VAR5:=(((VAR2 + (2 * VAR3)) + (3 * VAR4)) / 6);VAR6:=MA(VAR5,3);底部区间:IF((VAR6<DB),20,0),COLORFFFF00;STICKLINE((CROSS(J,K) AND (底部区间 >= 20)),100,0,2,0),COLORFFFFFF;位置标注:STICKLINE((VAR6 <= (0 - 15)),80,4.88,2,0),COLORFFFFFF;VAR7:=DMA(EMA(CLOSE,12),((SUM(VOL,5) / 3) / CAPITAL));VAR8:=(((CLOSE - VAR7) / VAR7) * 100);VAR9:=((((REF(VAR8,1) < (0 - 40)) AND (VAR8 > REF(VAR8,1))) AND (REF(VAR8,1) < REF(VAR8,2))) AND ((VAR8 - REF(VAR8,1)) > 2.5));VARA:=(((CLOSE - MA(CLOSE,6)) / MA(CLOSE,6)) * 100);VARB:=(((CLOSE - MA(CLOSE,12)) / MA(CLOSE,12)) * 100);VARC:=(((CLOSE - MA(CLOSE,24)) / MA(CLOSE,24)) * 100);VARF:=(((HIGH + LOW) + CLOSE) / 3);VAR10:=((VARF - MA(VARF,14)) / (0.015 * AVEDEV(VARF,14)));VAR11:=(((((MA(AMOUNT,5) / MA(VOL,5)) / 100) - ((MA(AMOUNT,110) / MA(VOL,110)) / 100)) / ((MA(AMOUNT,5) / MA(VOL,5)) / 100)) < (0 - 0.273));VAR12:=(((CLOSE - MA(CLOSE,30)) / MA(CLOSE,30)) < (0 - 0.125));VAR13:=(VAR11 AND VAR12);VAR14:=((((VARA >= (0 - 45)) AND (VARA <= (0 - 10))) AND (VARB <= (0 - 15))) AND (VARC <= (0 - 20)));VAR15:=(COUNT(VAR14,1) >= 1);VAR16:=(VAR13 AND VAR15);VAR1C:=EMA(CLOSE,34);VAR1E:=MA((VAR1C * 0.82),5);VAR20:=(((((MA(AMOUNT,5) / MA(VOL,5)) / 100) - ((MA(AMOUNT,125) / MA(VOL,125)) / 100)) / ((MA(AMOUNT,5) / MA(VOL,5)) / 100)) < (0 - 0.4));VAR21:=HHV(HIGH,500);VAR22:=LLV(LOW,500);VAR23:=HHV(HIGH,250);VAR24:=LLV(LOW,250);VAR25:=HHV(HIGH,125);VAR26:=LLV(LOW,125);VAR27:=MA(((((((VAR21 * 0.45) + (VAR23 * 0.5)) + VAR22) + VAR24) + VAR26) / 5),35);VAR2C:=VAR27;VAR31:=((CLOSE - REF(MA(CLOSE,20),11)) < (0 - 2));VAR42:=(SMA(((AMOUNT / VOL) / 100),13,1) * 1.15);VAR43:=(SMA(((AMOUNT / VOL) / 100),13,1) * 0.85);VAR44:=(CLOSE - REF(MA(CLOSE,20),11));VAR45:=(((((((((((((CLOSE < VAR1E) AND VAR20) AND (CLOSE < VAR43)) OR (((CLOSE < VAR1E) AND VAR31) AND VAR20)) OR ((CLOSE < VAR1E) AND (CLOSE < VAR43))) OR (((CLOSE < VAR1E) AND VAR20) AND (CLOSE < VAR43))) OR (VAR20 AND (CLOSE < VAR2C))) OR ((VAR20 AND VAR31) AND (CLOSE < VAR43))) OR (VAR20 AND (CLOSE < VAR1E))) OR (VAR20 AND (CLOSE < VAR43))) OR (VAR31 AND (CLOSE < VAR43))) OR ((CLOSE < VAR2C) AND (CLOSE < VAR43))) OR ((CLOSE < VAR1E) AND VAR31));VAR4F:=(VAR11 AND VAR12);VAR50:=((((VAR2 >= (0 - 45)) AND (VAR2 <= (0 - 7))) AND (VAR3 <= (0 - 11))) AND (VAR4 <= (0 - 14)));VAR51:=(COUNT(VAR50,1) >= 1);VAR52:=(VAR4F AND VAR51);VAR53:=(((((VAR20 AND (CLOSE < VAR1E)) AND VAR31) AND (CLOSE < VAR2C)) AND VAR45) AND VAR52);VAR54:=(((CLOSE - MA(CLOSE,6)) / MA(CLOSE,6)) * 100);VAR55:=(((CLOSE - MA(CLOSE,12)) / MA(CLOSE,12)) * 100);VAR56:=(((CLOSE - MA(CLOSE,24)) / MA(CLOSE,24)) * 100);VAR57:=REF(CLOSE,1);VAR58:=((SMA(MAX((CLOSE - VAR57),0),5,1) / SMA(ABS((CLOSE - VAR57),5,1)) * 100);VAR59:=(((HIGH + LOW) + CLOSE) / 3);VAR5A:=((VAR59 - MA(VAR59,14)) / (0.015 * AVEDEV(VAR59,14)));VAR5B:=((((((VAR54 >= (0 - 15.8)) AND (VAR54 <= (0 - 12.2))) AND (VAR55 <= (0 - 20.8))) AND (VAR56 <= (0 - 27.5))) AND (VAR58 <= 11.7)) AND (VAR5A <= (0 - 145)));VAR62:=(REF(CLOSE,2) * 0.865);VAR63:=(REF(CLOSE,13) * 0.772);VAR64:=MIN(VAR62,VAR63);VAR65:=((100 * VOL) / CAPITAL);信号一:IF(((((VAR9 OR VAR16) OR VAR53) OR VAR5B) OR ((((CLOSE - VAR64) / CLOSE) < 0.03) AND ((SUM(VAR65,5) / 5) < 1.8))),120,0),LINETHICK2;MACD:(VAR6 * 5),COLORSTICK,LINETHICK2;短信号:STICKLINE((CROSS(K,D) AND (BB10>1)),70,0,2,0),COLORCC99FF;{低位提示:STICKLINE(VAR6<=0 AND VAR6>=-10,0,-20,5,0),COLOR88B7EA;}VAR61:=EMA(HHV(HIGH,500),21);VAR71:=EMA(HHV(HIGH,250),21);VAR81:=EMA(HHV(HIGH,90),21);VAR91:=EMA(LLV(LOW,500),21);VARA1:=EMA(LLV(LOW,250),21);VARB1:=EMA(LLV(LOW,90),21);VARC1:=EMA((((((((VAR91 * 0.96) + (VARA1 * 0.96)) + (VARB1 * 0.96)) + (VAR61 * 0.558)) + (VAR71 * 0.558)) + (VAR81 * 0.558)) / 6),21);VARD1:=EMA((((((((VAR91 * 1.25) + (VARA1 * 1.23)) + (VARB1 * 1.2)) + (VAR61 * 0.55)) + (VAR71 * 0.55)) + (VAR81 * 0.65)) / 6),21);VARE1:=EMA((((((((VAR91 * 1.3) + (VARA1 * 1.3)) + (VARB1 * 1.3)) + (VAR61 * 0.68)) + (VAR71 * 0.68)) + (VAR81 * 0.68)) / 6),21);VARF1:=EMA((((((VARC1 * 3) + (VARD1 * 2)) + VARE1) / 6) * 1.738),21);VAR101:=REF(LOW,1);VAR111:=((SMA(ABS((LOW - VAR101)),3,1) / SMA(MAX((LOW - VAR101),0),3,1)) * 100);VAR121:=EMA(IF(((CLOSE * 1.35) <= VARF1),(VAR111 * 10),(VAR111 / 10)),3);VAR131:=LLV(LOW,30);VAR141:=HHV(VAR121,30);VAR151:=IF(MA(CLOSE,58),1,0);VAR161:=((EMA(IF((LOW <= VAR131),((VAR121 + (VAR141 * 2)) / 2),0),3) / 618) * VAR151);VAR171:=((IF((VAR161 > 50),50,VAR161) / 20) * 15) ;低位信号:STICKLINE((VAR171 > 0),0,VAR171,1,1),COLORFF00FF;DRAWTEXT(((CROSS(K,D) AND ((AA10 - REF(AA10,1)) > 0)) AND (K <= 49)),80,'--位置①');DRAWTEXT(CROSS(90,J),108,'。高位②'),COLORFFFF00;DRAWTEXT(CROSS(J,(0 - 5)),(0 - 4),'。低位③'),COLOR33FF33;SG:=EMA(HHV(HIGH,1),8);X1:=EMA(CLOSE,8);X30:=((X1 < REF(X1,1)) AND (CLOSE < X1));X31:=IF(((SG < REF(SG,1)) OR X30),1,0);信号二:=((((COUNT((X31 = 1),4) = 3) AND (X31 = 0)) AND (((CLOSE - REF(CLOSE,1)) / REF(CLOSE,1)) > 0.085)) * 89);DRAWTEXT((信号二 >= 89),89,'--信号④'),COLOR0066FF;DRAWTEXT((CROSS(J,0) AND (VAR6 <= (0 - 7))),80,'--信号⑤'),COLORFF00FF;MA5:=MA(CLOSE,4);X7:=EMA(EMA(EMA(HIGH,9),9),9);海底:=(X7 * 0.92);海底二:=(X7 * 0.933);中轨道:=MA(CLOSE,2);DRAWTEXT(((CROSS(中轨道,MA5) AND (LOW <= 海底)) AND (CLOSE >= 海底二)),25,'-低位'),COLOR0099FF;
顺手把 #KDJ指标# 这个话题钉一下,平时跟 #副图指标# #通达信公式# 绑在一块儿聊,搜的时候好找。
03 它到底把哪些数算在了一起
先说最底层的 RSV。它把当天收盘价,塞进最近九根 K 线的最高最低区间里量一遍:
RSV:=((CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9)))*100
分母那截,是九天内最高价减最低价;分子是收盘价离最低价多远。除完乘一百,RSV 就落在零到一百之间,越靠上越靠近这段区间的顶。
接着看 K 和 D。它俩不是直接拿 RSV 画图,而是再平滑一遍:
K:SMA(RSV,3,1) ; D:SMA(K,3,1)
SMA 那个 3,1 是权重,意思是新值占三分之一,老值占三分之二。这么拧两道,线就比裸 RSV 顺滑,抖一下不至于瞎跳。
J 那根更跳。它等于三倍 K 减两倍 D,专门抓极端摆位,比 K、D 都灵敏一截。源码里还顺手算了底部区间,把 VAR6 压到零下的段单独标出来,给收尾那根综合副图当底。
再说均线角度这块。作者没直接画 MA,而是把 MA 的每日变化,喂给反正切:
BB10:=((ATAN((AA10-REF(AA10,1)))*3.1416)*10)
ATAN 把斜率变成角度,乘派再乘十,纯是为了把那点微小变化放大到能看见。它只管“均线在抬头还是低头”,不替你下任何结论。
量价偏离那路更绕一点。先用 DMA 做了个带量比的成本线,再算价格离它多远:
VAR8:==(((CLOSE-VAR7)/VAR7)*100)
VAR7 是成交量加权过的成本中枢,VAR8 就是价格相对它的偏离百分比思路。负值越大,说明离成本越远,低位区越容易攒出动静。
关键参数得说清楚为什么不取别的。九天窗口:LLV(LOW,9) 那个 9,左边界试过 5,太短,杂波多,假信号一串;右边界试过 20,太长,等它拐弯行情都跑半截了。八到十二天最稳,9 刚好卡在 A 股约两周交易日的中枢,不长不短。
收尾那根综合副图,是把前面几路的偏离揉成一层的:
MACD:(VAR6*5)
VAR6 本身是几路乖离的平均再平滑,乘 5 只为把柱体拉到肉眼好分辨的粗细。前面 KDJ 给摆动、均线角度给方向、量价偏离给低位动静,三层各有各的脾气。乘 5 只是把柱子拉粗,让你一眼分清谁在主导,不是又发明了个新算法。
评论区聊聊:你平时盯副图,是习惯看一根综合的,还是非得把 KDJ、MACD 分开摆才踏实?
