ARTICLE · 1264274
超级MACDKDJ共振指标(源码)
这条指标把相对强弱、随机指标、均价和2个区间的相对位置叠在一起,条件同时点头才在下方打出一根信号线。
逻辑
先摆好随机指标。9日区间的原始值经2次3日平滑得到快慢线与J值,后面用它判断金叉。
再算一个30日的位置量。最高价、最低价、收盘价按2比1比1加权,折算成30日区间内的百分比,平滑8次后与它的5日均线比较,得到多空2种状态。
均价那条线走的是另外一个口径。3日均价再取88日指数均线,乘0.85和0.87这2档折扣,价格跌破折扣线又当天收涨2%以上,算一次介入提示。
34日位置另算一套。平滑后与它的加权均线金叉、且处在多头状态,算一次启动。
75日位置做成背离式读数,收缩量放大、收盘走高时算首次主力进场,30日内只认头一回。
把这些信号各数5根,任意一个还在有效期内,再叠加随机指标或MACD的金叉。配合多头状态才算数。再配合6日相对强弱从11上方启动,输出70的高度。
参数微调
5是信号计数的窗口,改大要求信号更新鲜,出现次数会更少。
11是相对强弱的启动门槛,调低更容易触发。
88、0.85、0.87是均价线的长度与折扣,改折扣会挪动介入的位置。
温馨提示
1、指标:www.logic88.cn
2、本指标仅作为知识分享,不构成任何建议。


指标源码
JX_CNT5:=5;
{先算经典 KDJ 的原始随机值 RSV,再用两次平滑得到 K 线和 D 线,J 线是 K 的 3 倍减 D 的 2 倍,用来放大摆动。}
JX_RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
JX_KDJK:=SMA(JX_RSV,3,1);
JX_KDJD:=SMA(JX_KDJK,3,1);
JX_KDJJ:=3*JX_KDJK-2*JX_KDJD;
{取最近 30 根 K 线的最高最低做区间,把收盘价按 2 倍权重压进区间里算位置,再平滑成一条主振荡线,后面用它和它的均线比大小判别多空。}
JX_MID4A:=(2*C+H+L)/4;
JX_LOW30:=LLV(LOW,30);
JX_HIGH30:=HHV(HIGH,30);
JX_MAIN8:=EMA((JX_MID4A-JX_LOW30)/(JX_HIGH30-JX_LOW30)*100,8);
JX_MAIN5:=EMA(JX_MAIN8,5);
JX_BULL:=JX_MAIN8-JX_MAIN5>0;
JX_BEAR:=JX_MAIN8-JX_MAIN5<0;
{用 6 周期平滑的相对强弱算 RSI,当它从下往上穿过 11 时记一个底部信号,值给 70,其余时候给 0。}
JX_PREVC:=REF(CLOSE,1);
JX_RSI:=SMA(MAX(CLOSE-JX_PREVC,0),6,1)/SMA(ABS(CLOSE-JX_PREVC),6,1)*100;
JX_BOTTOM:=IF(CROSS(JX_RSI,11),70,0);
{把成交额除以成交量再除 100,还原出真实均价,做 3 日均线;再乘 0.85 和 0.87 得到两条打折成本线,收盘价跌破下面那条且当天涨超 2% 就算一次抄底机会,用 6 根过滤避免连续触发。}
JX_AVGPX3:=EMA(AMOUNT/VOL/100,3);
JX_AVGPX88:=EMA(JX_AVGPX3,88);
JX_AVG85:=EMA(JX_AVGPX3,88)*0.85;
JX_AVG74:=JX_AVG85*0.87;
JX_DIPBUY:=LOW<JX_AVG74 AND CLOSE>REF(CLOSE,1)*1.02;
JX_FLT6:=IF(FILTER(JX_DIPBUY,6),65,0);
{再算一套 34 根区间的振荡线:最高最低之间取位置,平滑成 VA6,再用 0.667 和 0.333 的权重错位相减得到 VA7;连续下跌占比超 0.3、VA6 上穿 VA7、前低是 120 根最低且收阳,才记一次出击信号。}
JX_MID4B:=(2*CLOSE+HIGH+LOW)/4;
JX_LOW34:=LLV(LOW,34);
JX_HIGH34:=HHV(HIGH,34);
JX_MA6:=EMA((JX_MID4B-JX_LOW34)/(JX_HIGH34-JX_LOW34)*100,6);
JX_MA7:=EMA(0.667*REF(JX_MA6,1)+0.333*JX_MA6,4);
JX_BREAK:=IF(IF(COUNT(CLOSE<REF(CLOSE,1),8)/8>0.3 AND COUNT(JX_MA6>JX_MA7,3) AND REF(LOW,1)=LLV(LOW,120) AND CLOSE>OPEN,1,0),60,0);
{把开高低收加权算一条均价 A,再对 A 按 20 到 1 递减的权重做 20 日加权平均得到 D1,连做两次 2 日平滑得到 K1;D1 上穿 K1 又处在多头区时,取主振荡线里较小的那个值作为信号。}
JX_AUX:=(3*CLOSE+LOW+OPEN+HIGH)/6;
JX_DMA1:=(20*JX_AUX+19*REF(JX_AUX,1)+18*REF(JX_AUX,2)+17*REF(JX_AUX,3)+16*REF(JX_AUX,4)+15*REF(JX_AUX,5)+14*REF(JX_AUX,6)+13*REF(JX_AUX,7)+12*REF(JX_AUX,8)+11*REF(JX_AUX,9)+10*REF(JX_AUX,10)+9*REF(JX_AUX,11)+8*REF(JX_AUX,12)+7*REF(JX_AUX,13)+6*REF(JX_AUX,14)+5*REF(JX_AUX,15)+4*REF(JX_AUX,16)+3*REF(JX_AUX,17)+2*REF(JX_AUX,18)+REF(JX_AUX,20))/211;
JX_DMA2:=EMA(JX_DMA1,2);
JX_DMA3:=EMA(JX_DMA2,2);
JX_SIGK1:=EMA(JX_DMA3,2);
JX_DMACR:=IF(CROSS(JX_DMA1,JX_SIGK1) AND JX_BULL>0,MIN(JX_MAIN8,JX_MAIN5),0);
{换用 75 根区间、只取收盘价和开盘价各算一条慢速随机线,价格创近期新高同时放量上涨,并且 30 根内只出现第一次,才认定主力进场。}
JX_K10:=100-3*SMA((CLOSE-LLV(LOW,75))/(HHV(HIGH,75)-LLV(LOW,75))*100,20,1)+2*SMA(SMA((CLOSE-LLV(LOW,75))/(HHV(HIGH,75)-LLV(LOW,75))*100,20,1),15,1);
JX_K11:=100-3*SMA((OPEN-LLV(LOW,75))/(HHV(HIGH,75)-LLV(LOW,75))*100,20,1)+2*SMA(SMA((OPEN-LLV(LOW,75))/(HHV(HIGH,75)-LLV(LOW,75))*100,20,1),15,1);
JX_ZLCON:=JX_K10<REF(JX_K11,1) AND VOL>REF(VOL,1) AND CLOSE>REF(CLOSE,1);
JX_ZLUP:=JX_ZLCON AND COUNT(JX_ZLCON,30)=1;
JX_ZLUPQ:=COUNT(JX_ZLUP,JX_CNT5);
{顺手算一组标准 MACD:快慢均线差是 DIFF,再平滑出 DEA,柱线是两者之差的 2 倍;DIFF 上穿 DEA 记为金叉。}
JX_DIFF:=EMA(C,12)-EMA(C,26),COLORWHITE;
JX_DEA:=EMA(JX_DIFF,8),COLORFFAA00;
JX_MACD:=2*(JX_DIFF-JX_DEA);
JX_MJINC:=CROSS(JX_DIFF,JX_DEA);
JX_KJINC:=CROSS(JX_KDJJ,JX_KDJK);
JX_BOTQ:=COUNT(JX_BOTTOM,JX_CNT5);
JX_BRKQ:=COUNT(JX_BREAK,JX_CNT5);
JX_FLTQ:=COUNT(JX_FLT6,JX_CNT5);
JX_DMACQ:=COUNT(JX_DMACR,JX_CNT5);
{最后汇总:在多头区间里,只要主力进场、出击、抄底、布林信号任一个近期出现过,且 KDJ 或 MACD 金叉,就点亮这条合成条件;末行再和底部信号联合输出。}
JX_SIGCON:=(JX_BULL>0) AND (JX_ZLUPQ OR JX_BRKQ OR JX_FLTQ OR JX_DMACQ) AND (JX_KJINC OR JX_MJINC);
JX_BOTTOM AND JX_SIGCON<1;















































































