文華的DMI指標轉成開拓者
作者:開拓者 TB 來源:cxh99.com 發布時間:2012年12月03日
- 咨詢內容: 文華財經上有一個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的情形可能出現