文华的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 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容