ARTICLE · 1215427
MACD多空柱强弱指标(源码)
这条指标把MACD柱与34周期位置线放在一起:柱体按快慢线的正负与交叉分成红与绿,位置线在区间里的百分位再平滑出快慢2条,末根K线上直接写明当前是红柱还是绿柱。
逻辑
MACD柱先取收盘价的12与26周期指数均线之差乘100作快线,9周期平滑作慢线,相减后乘2画成柱。
分色按零轴来分:快线在零轴上方用红色柱、下方用绿色柱;慢线则按自身正负分别用品红与黄色叠画。
转折标记看快慢线的交叉方向,快线在慢线上方而前一根本来在下、或者反过来时,在对应的位置标出负20与正20的短线。
位置线用最高最低与开盘加权的价格,在34周期区间里算出百分位,做13周期平滑得到快线,再取3周期平滑作慢线。
金叉与死叉时分别返回40和14、25和78这2组数值,作为零轴上下的边界。
文字在末根K线的负40与正40位置分别写出「绿柱跌」与「红柱涨」。
参数微调
12与26是快慢均线的周期,9是信号线周期,改小交叉更频繁。
34是位置线的区间长度,13与3是它和慢线的平滑次数。
温馨提示
本指标仅作为知识分享,不构成任何建议。


指标源码
{参数区:长周期 26、短周期 12、平滑周期 9,后面几条 EMA 都取它们}
JX_EmaLongPd:=26;
JX_EmaShortPd:=12;
JX_DeaPeriod:=9;
{快线:两条 EMA 之差再乘 100,是柱状图的快线本体}
JX_DifFast :=( EMA(CLOSE,JX_EmaShortPd) - EMA(CLOSE,JX_EmaLongPd))*100;
{慢线:把快线再做 9 周期 EMA 平滑,得到柱状图的慢线}
JX_DeaLine :=EMA(JX_DifFast,JX_DeaPeriod);
{柱值:快线减慢线再乘 2;本码定义后未被再次引用}
JX_MacdBar :=2*(JX_DifFast-JX_DeaLine);
{把快线的正负值按符号分别用不同颜色画成粗柱,用于看强弱}
IF(JX_DifFast<0,JX_DifFast,0),STICK,LINETHICK7,COLOR00FF00;
IF(JX_DifFast>=0,JX_DifFast,0),STICK,LINETHICK7,COLORRED;
IF(JX_DeaLine>=0,JX_DeaLine,0),STICK,LINETHICK7,COLORMAGENTA;
IF(JX_DeaLine<0,JX_DeaLine,0),STICK,LINETHICK7,COLORYELLOW;
IF(JX_DifFast<0,JX_DifFast,0),STICK,LINETHICK7,COLORGREEN;
{上穿判据:快线非负且慢线不低于快线且前一根快线在上,标 -20}
IF(JX_DifFast>=0 AND JX_DeaLine>=JX_DifFast AND REF(JX_DifFast,1)>REF(JX_DeaLine,1),-20,0),COLORWHITE;
IF(JX_DifFast>=0 AND JX_DeaLine>=JX_DifFast AND REF(JX_DifFast,1)>REF(JX_DeaLine,1),-20,0),STICK,LINETHICK5,COLORGREEN;0,STICK,LINETHICK2,COLORWHITE;
{下穿判据:快线非正且慢线不高于快线且前一根快线在下,标 20}
IF(JX_DifFast<=0 AND JX_DeaLine<=JX_DifFast AND REF(JX_DifFast,1)<REF(JX_DeaLine,1),0,20),COLORRED;
IF(JX_DifFast<=0 AND JX_DeaLine<=JX_DifFast AND REF(JX_DifFast,1)<REF(JX_DeaLine,1),20,0),STICK,LINETHICK5,COLOR00FF00,COLORRED;0,STICK,LINETHICK2,COLOR00FF00,COLORRED;
{价格平滑项:按 2 倍收盘加最高最低开盘,五等分求加权均价}
JX_TypPrice:=(2*CLOSE+HIGH+LOW+OPEN)/5;
JX_LowLLV:=LLV(LOW,34);
JX_HighHHV:=HHV(HIGH,34);
{位置指标:均价在 34 日最低最高区间中的百分位,再做 13 周期平滑}
JX_StochLine:=EMA((JX_TypPrice-JX_LowLLV)/(JX_HighHHV-JX_LowLLV)*100,13),LINETHICK2,COLORCYAN;
JX_StochAvg:=EMA(JX_StochLine,3),LINETHICK1,COLORYELLOW,;
{两条平滑线金叉、死叉时分别返回 40/14 与 25/78 两组标记值}
JX_BuyVal:=IF(CROSS(JX_StochLine,JX_StochAvg),40,14);
JX_SellVal:=IF(CROSS(JX_StochAvg,JX_StochLine),25,78);
DRAWTEXT(ISLASTBAR,-40,'绿柱跌'),COLORWHITE;
DRAWTEXT(ISLASTBAR,40,'红柱涨'),COLORWHITE;















































































