您现在的位置:程序化交易>> 期货公式>> 交易开拓者(TB)>> 开拓者知识>>正文内容

文华的DMI指标转成开拓者 [开拓者 TB]

  • 咨询内容: 文华财经上有一个DMI指标,在TB上没有,
    按照文华的程序完全翻译过来,发现结果相差非常大。不知道是啥原因。

    Params
    Numeric N(14);
    Numeric M(6);
    Vars
    NumericSeries TR;
    NumericSeries HD;
    NumericSeries LD;
    NumericSeries DMP;
    NumericSeries DMM;
    NumericSeries PDI;
    NumericSeries MDI;
    NumericSeries ADX;
    NumericSeries ADXR;
    Begin
    TR = Summation(MAX(MAX(High-Low,ABS(High-Close[1])),ABS(low-Close[1])),N);
    HD = High-High[1];
    LD = low[1]-low;
    DMP= Summation(IIF(HD>0 && HD>LD,HD,0),N);
    DMM= Summation(IIF(LD>0 && LD>HD,LD,0),N);
    PDI= DMP*100/TR;
    MDI= DMM*100/TR;
    ADX= AverageFC(ABS(MDI-PDI)/(MDI+PDI)*100,M);
    ADXR= (ADX+ADX[M])/2;

    PlotNumeric(" PDI",PDI);
    PlotNumeric("MDI",MDI);
    PlotNumeric("ADX",ADX);
    PlotNumeric("ADXR",ADXR);

    End



    注:以下是文华的程序  参数 N =14, M = 6

    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(IF(HD>0 && HD>LD,HD,0),N);
    DMM:= SUM(IF(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;

     

  • TB技术人员: 没问题了,是我搞错了参数。

    [ 本帖最后由 wgs2008 于 2010-5-3 18:11 编辑 ]

     

  • TB客服: 你好,我也想在TB中实现DMI指标,按照你的写法,我的ADX和ADXR怎么显示不了,请指标!能否贴出源码,谢谢

     

  • 网友回复:
    wahaya 发表于 2012-9-23 21:39
    你好,我也想在TB中实现DMI指标,按照你的写法,我的ADX和ADXR怎么显示不了,请指标!能否贴出源码,谢谢 ...

    显示不了,是因为除数为0的情形可能出现

 

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

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


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

相关文章

    没有相关内容