夜雨聆风学习资料网

ARTICLE · 1215427

MACD多空柱强弱指标(源码)

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;

相关学习资料