VT/CT系のADX をMT4で再現する。

以前の記事で、MetaTrader4のADXは計算式が異なる..という話を取り上げました。その時は、移動平均の計算式にバリエーションがあると分かっただけで終わっていました。( あまり興味がなくて..^^;;; )
しかし、とある人に頼まれて調べたところ、CMS社のVisualTrader(VT)や、FXA証券のChart Trader(CT)のADXは、それだけでは再現できないようです。

VT/CT系のADXの計算式は、

 TH:=if(Ref(C,-1) > H,Ref(C,-1),H); 
 TL:=if(Ref(C,-1) < L,Ref(C,-1),L); 
 TR:=TH-TL; 
                         
 PlusDM:=if(H>Ref(H,-1) AND L>=Ref(L,-1), H-Ref(H,-1),
            if(H >Ref(H,-1) AND L Ref(L,-1)-L, H-Ref(H,-1),
               0));
 PlusDI:=100*Wilders(PlusDM,Pr)/Wilders(TR,Pr);{←ここ}
(以下略)

となっていて、Wilder の修正移動平均が分子分母にそれぞれ使われているのが特徴のようです。(おそらくWilder氏の定義したADXに忠実な計算方法なのでしょう..)
Wilders()の中身が不明なので100%同一かどうかは分からないのですが、忠実に移植して比較したのが下図です。


↑Chart Trader のADX ( 純正 )


↓MT4 で再現したADX-VT ( 移植したもの )

↑MT4標準のADX...


横軸のスケールが微妙に違うので比較しづらいですが、±DI は、ほぼ一致しているように見えます。ADX は微妙に大きさが異なるところがありますが、基本的な上下動は同じになっています。(ちなみに、ピンクの◆は±DI が急上昇した点に付けています。)
それにしても、MT4標準の ADX とは全然違いますね....。