分享

DMI指标改 ——主升浪DMI指标 ,KDJ月周日共振

 昵称122446 2015-04-25



1.DMI指标改 ——主升浪DMI指标

 

DMI指标是趋势指标,信号稳定,对捕捉主升浪有独特作用。但DMI指标有一个很大的弱点——ADX线缺乏方向,导致与ADXR的组合无论在盘整,还是主升、主跌都不好判断方向。产生原因是ADX设计中用了绝对值函数,将PDIMDI两线差值正数化了,差值如果是负数,ADX显示的是对应正数,ADXADXR是扭曲的差值。

   通达信DMI指标源码:
MTR:=EXPMEMA(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(REF(CLOSE,1)-LOW)),N);
HD :=HIGH-REF(HIGH,1);
LD :=REF(LOW,1)-LOW;
DMP:=EXPMEMA(IF(HD>0 && HD>LD,HD,0),N);
DMM:=EXPMEMA(IF(LD>0 && LD>HD,LD,0),N);
PDI: DMP*100/MTR;
MDI: DMM*100/MTR;
ADX: EXPMEMA(ABS(MDI-PDI)/(MDI+PDI)*100,M);
ADXR:EXPMEMA(ADX,M);
    N
默认为14M默认为6
    ADX
线缺乏方向性原因是这句公式——ADX: EXPMEMA(ABS(MDI-PDI)/(MDI+PDI)*100,M),这里用了ABS函数。弄明白这个道理后,我将之修改为: EMA(PDI-MDI)/(MDI+PDI)*100,M)。修改的关键差别是原来的ABS(MDI-PDI)改为PDI-MDI了,转换后即为EMA((DMP-DMM)/(DMP+DMM)*100,M)。用彩带表示ADXADXR,便于与PDIMDI醒目区分;新设计ADXADXR的乖离线AAJ,相当于KDJ指标中的J线作用;增加ADX-ADXR的差值MAAD
  

tdx改进后源码如下:
DMI指标改 <wbr>——主升浪DMI指标

N:=14;
M:=6;
TRR:=EMA(MAX(MAX(H-L,ABS(H-REF(C,1))),ABS(REF(C,1)-L)),N);
HD:=H-REF(H,1);
LD:=REF(L,1)-L;
DMP:=EMA(IF(HD>0 && HD>LD,HD,0),N);
DMM:=EMA(IF(LD>0 && LD>HD,LD,0),N);
ADX0:=EMA((DMP-DMM)/(DMP+DMM)*100,M);
ADXR0:=EMA(ADX0,M);
DRAWBAND(ADX0,RGB(155,10,10),ADXR0,RGB(0,155,0));
PDI:DMP/TRR*100,COLORWHITE;
MDI:DMM/TRR*100,COLORYELLOW;
ADX:ADX0,NODRAW,COLORMAGENTA;
ADXR:ADXR0,NODRAW,COLORGREEN;
AAJ:(3*ADX-2*ADXR),COLORMAGENTA;
MAAD:ADX-ADXR,COLORLIMAGENTA,COLORSTICK;
STICKLINE(MAAD>=REF(MAAD,1) && MAAD<=0,0,MAAD,1,0),COLORCYAN;
STICKLINE(MAAD>=REF(MAAD,1) && MAAD>0,0,MAAD,1,0),COLORLIMAGENTA;
PDIL:=IF(PDI<=10,PDI,DRAWNULL);{
超跌}
MDIL:=IF(MDI<=10,MDI,DRAWNULL);{
超涨}
AAJT:=IF(PDI<REF(PDI,1) && AAJ>REF(AAJ,1) && MAAD>PDI,AAJ,DRAWNULL);{
明日可能回调}
DRAWBAND(PDIL,RGB(150,150,0),PDIL,RGB(150,150,0)),POINTDOT,LINETHICK4,COLORWHITE;
DRAWBAND(MDIL,RGB(150,150,0),MDIL,RGB(150,150,0)),POINTDOT,LINETHICK4,COLORYELLOW;
DRAWBAND(AAJT,RGB(150,150,0),AAJT,RGB(150,150,0)),POINTDOT,LINETHICK4,COLORGREEN;

下图为上证指数近期日线截图,附图上为传统DMI指标,下为改进后的DMIR指标。

dzh2改进后源码如下:

DMI指标改 <wbr>——主升浪DMI指标

N:=14;
M:=6;
HD:=H-REF(H,1);
LD:=REF(L,1)-L;
DMP:=EMA(IF(HD>0 and HD>LD,HD,0),N);
DMM:=EMA(IF(LD>0 and LD>HD,LD,0),N);
ADX0:=EMA((DMP-DMM)/(DMP+DMM)*100,M);
ADXR0:=EMA(ADX0,M);
fillrgn(ADX0,ADXR0,ADX0>ADXR0,RGB(155,10,10),ADX0<ADXR0,RGB(0,155,0));
TRR:=EMA(MAX(MAX(H-L,ABS(H-REF(C,1))),ABS(REF(C,1)-L)),N);
PDI:=DMP/TRR*100;{,COLORWHITE;}
MDI:=DMM/TRR*100;{,COLORYELLOW;}
ADX:ADX0,linethick0,COLORMAGENTA;
ADXR:ADXR0,linethick0,COLORGREEN;
AAJ:(3*ADX-2*ADXR),COLORMAGENTA;
MAAD:(ADX-ADXR)*1.5,COLORMAGENTA,COLORSTICK;

STICKLINE(MAAD<REF(MAAD,1) AND MAAD>0,0,MAAD,3,0 ),COLOR00BBFF;
STICKLINE(MAAD>=REF(MAAD,1) AND MAAD>0,0,MAAD,3,0 ),COLOR0011BB;
STICKLINE(MAAD>REF(MAAD,1) AND MAAD<0,0,MAAD,3,0),COLORBB11BB;
STICKLINE(MAAD<=REF(MAAD,1) AND MAAD<0,0,MAAD,3,0),COLORFFBB11;

{STICKLINE(MAAD>=REF(MAAD,1) and MAAD<=0,0,MAAD,3,0),COLORred;
STICKLINE(MAAD>=REF(MAAD,1) and MAAD>0,0,MAAD,3,0),COLORred;}
PDIL:=IF(PDI<=10,PDI,0);{
超跌}
MDIL:=IF(MDI<=10,MDI,0);{
超涨}
AAJT:=IF(PDI<REF(PDI,1) and AAJ>REF(AAJ,1) and PDI>MDI,AAJ,0);{
明日可能回调}
{fillrgn(PDIL,RGB(150,150,0),PDIL,RGB(150,150,0)),POINTDOT,LINETHICK4,COLORWHITE;
fillrgn(MDIL,RGB(150,150,0),MDIL,RGB(150,150,0)),POINTDOT,LINETHICK4,COLORYELLOW;
DRAWBAND(AAJT,RGB(150,150,0),AAJT,RGB(150,150,0)),POINTDOT,LINETHICK4,COLORGREEN;};
PARTLINE(AAJ,PDIL>0 ),CIRCLEDOT,LINETHICK2,COLORWHITE;
PARTLINE(AAJ,MDIL>0),CROSSDOT,LINETHICK2,COLORYELLOW;
PARTLINE(AAJ,AAJT>0),CROSSDOT,LINETHICK2,COLORGREEN;


2.KDJ月周日共振:

 白虚线为日K线、白实线为日D线;红虚线为周K线、红实线为周D线;橙虚线为月K线、橙实线为月D线。白三角为日金叉、红三角为周金叉、橙三角为月金叉(都是D值40以下或60以上的金叉,40-60之间的金叉不显示)。0之下和100之上的橙虚柱为月J值、红虚柱为周J值、白柱为日J值(0-100之间的J值不显示)。月周日任意两个金叉共振时,在共振处显示一根黄色柱线。

1.tdx {KDJ月周日共振副图源码}
月K:"KDJ.K#MONTH"(9,3,3),COLOR0080FF,DOTLINE;
月D:"KDJ.D#MONTH"(9,3,3),COLOR0080FF,LINETHICK3;
月J:="KDJ.J#MONTH"(9,3,3);
周K:"KDJ.K#WEEK"(9,3,3),COLORRED,DOTLINE;
周D:"KDJ.D#WEEK"(9,3,3),COLORRED,LINETHICK3;
周J:="KDJ.J#WEEK"(9,3,3);
日K:"KDJ.K"(9,3,3),COLORWHITE,DOTLINE;
日D:"KDJ.D"(9,3,3),COLORWHITE,LINETHICK3;
日J:="KDJ.J"(9,3,3);
日金叉:IF(CROSS(日K,日D) AND (日D<40 OR 日D>60),20,0),COLORWHITE;
周金叉:IF(CROSS(周K,周D) AND (周D<40 OR 周D>60),30,0),COLORRED;
月金叉:IF(CROSS(月K,月D) AND (月D<40 OR 月D>60),40,0),COLOR0080FF;
共振:(周金叉 AND 日金叉) OR (周金叉 AND 月金叉) OR (日金叉 AND 月金叉),COLORYELLOW,NODRAW;
STICKLINE(共振,0,50,1,0),COLORYELLOW;
STICKLINE(月J<0,0,月J,2,-1),COLOR0080FF;
STICKLINE(月J>100,100,月J,2,-1),COLOR0080FF;
STICKLINE(周J<0,0,周J,1,-1),COLORRED;
STICKLINE(周J>100,100,周J,1,-1),COLORRED;
STICKLINE(日J<0,0,日J,0,0),COLORWHITE;
STICKLINE(日J>100,100,日J,0,0),COLORWHITE;

KDJ月周日共振

2.dzh2 {KDJ月周日共振副图源码}
{KDJ月周日共振副图源码}
月K:"KDJ.K#MONTH"(9,3,3),COLOR0080FF,DOTLINE;
月D:"KDJ.D#MONTH"(9,3,3),COLOR0080FF,LINETHICK3;
月J:="KDJ.J#MONTH"(9,3,3);
周K:"KDJ.K#WEEK"(9,3,3),COLORRED,DOTLINE;
周D:"KDJ.D#WEEK"(9,3,3),COLORRED,LINETHICK3;
周J:="KDJ.J#WEEK"(9,3,3);
日K:"KDJ.K"(9,3,3),COLORWHITE,DOTLINE;
日D:"KDJ.D"(9,3,3),COLORWHITE,LINETHICK3;
日J:="KDJ.J"(9,3,3);
日金叉:IF(CROSS(日K,日D) AND (日D<40 OR 日D>60),20,0),COLORWHITE;
周金叉:IF(CROSS(周K,周D) AND (周D<40 OR 周D>60),30,0),COLORRED;
月金叉:IF(CROSS(月K,月D) AND (月D<40 OR 月D>60),40,0),COLOR0080FF;
共振:(周金叉 AND 日金叉) OR (周金叉 AND 月金叉) OR (日金叉 AND 月金叉),COLORYELLOW,linethick0;
STICKLINE(共振,0,50,1,0),COLORYELLOW,linethick2;
STICKLINE(月J<0,0,月J,2,-1),COLOR0080FF;
STICKLINE(月J>100,100,月J,2,-1),COLOR0080FF;
STICKLINE(周J<0,0,周J,1,-1),COLORRED;
STICKLINE(周J>100,100,周J,1,-1),COLORRED;
STICKLINE(日J<0,0,日J,0,0),COLORWHITE;
STICKLINE(日J>100,100,日J,0,0),COLORWHITE;
KDJ月周日共振

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多