您现在的位置:程序化交易>> 期货公式>> 文华财经>> 文华财经知识>>正文内容

通达信DMI指标转为WH3指标 [赢顺期货]

  • 咨询内容: 通达信的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,MM);

    ADXR:EXPMEMA(ADX,MM);

     

     

    文华WH3的代码为:

    TR := SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),N);

    HD := HIGH-REF(HIGH,1);

    LD := REF(LOW,1)-LOW;

    DMP:= SUM(IFELSE(HD>0 && HD>LD,HD,0),N);

    DMM:= SUM(IFELSE(LD>0 && LD>HD,LD,0),N);

    PDI: DMP*100/TR;

    MDI: DMM*100/TR;

    ADX: MA(ABS(MDI-PDI)/(MDI+PDI)*100,M);

    ADXR:(ADX+REF(ADX,M))/2;

     

    个人感觉通达信的DMI指标比较好用,将通达信的代码复制贴到WH3中,提示第二行的逗号为非法,但第二行的代码与WH3的代码是一样的,为什么有这种提示呢,劳烦大师代为修改下,实在是做不来这个,谢谢!

     

  • 赢顺技术人员:

    文华的系统自带模型中,本来就有DMI指标,您无需修改通达信的指标。文华的DMI指标在摆动分析那一组里面,您可以找一下

    如果没有的话,为您把源码贴出来如下

    TR := SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),N);
    HD := HIGH-REF(HIGH,1);
    LD := REF(LOW,1)-LOW;
    DMP:= SUM(IFELSE(HD>0 && HD>LD,HD,0),N);
    DMM:= SUM(IFELSE(LD>0 && LD>HD,LD,0),N);
    PDI: DMP*100/TR;
    MDI: DMM*100/TR;
    ADX: MA(ABS(MDI-PDI)/(MDI+PDI)*100,M);
    ADXR:(ADX+REF(ADX,M))/2;

     

  • 赢顺客服: 以下是引用空之境界在2012-7-9 8:10:00的发言:

    文华的系统自带模型中,本来就有DMI指标,您无需修改通达信的指标。文华的DMI指标在摆动分析那一组里面,您可以找一下

    如果没有的话,为您把源码贴出来如下

    TR := SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),N);
    HD := HIGH-REF(HIGH,1);
    LD := REF(LOW,1)-LOW;
    DMP:= SUM(IFELSE(HD>0 && HD>LD,HD,0),N);
    DMM:= SUM(IFELSE(LD>0 && LD>HD,LD,0),N);
    PDI: DMP*100/TR;
    MDI: DMM*100/TR;
    ADX: MA(ABS(MDI-PDI)/(MDI+PDI)*100,M);
    ADXR:(ADX+REF(ADX,M))/2;

    老师,我知道这是WH3的代码,我也知道怎么找,但它显示的数值和通达信的不一样,我感觉通达信的算法比较好一点,能帮我把通达信的代码转为WH3的吗?非常感谢

     

  • 网友回复:

    MTR:=EMA(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:=EMA(IFELSE(HD>0&&HD>LD,HD,0),N);
    DMM:=EMA(IFELSE(LD>0&&LD>HD,LD,0),N);
    PDI: DMP*100/MTR;
    MDI: DMM*100/MTR;
    ADX: EMA(ABS(MDI-PDI)/(MDI+PDI)*100,MM);
    ADXR:EMA(ADX,MM);

    模型仅供参考

     

  • 网友回复: 以下是引用空之境界在2012-7-9 13:18:00的发言:

    MTR:=EMA(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:=EMA(IFELSE(HD>0&&HD>LD,HD,0),N);
    DMM:=EMA(IFELSE(LD>0&&LD>HD,LD,0),N);
    PDI: DMP*100/MTR;
    MDI: DMM*100/MTR;
    ADX: EMA(ABS(MDI-PDI)/(MDI+PDI)*100,MM);
    ADXR:EMA(ADX,MM);

    模型仅供参考

    我就觉得奇怪了,为什么我复制上面的内容就测试通过,复制通达信代码的就提示非法(提示第二行的逗号为非法),到底我那里弄错了?望老师指点

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 262069696  点击在线交流进行 有偿 编写!不贵!点击查看价格!

 


【字体: 】【打印文章】【查看评论

相关文章

    指定的模型还没有相关内容!