DMIインディケーターは,モメントインディケーターまたはトレンドインディケーターとも呼ばれ,完全な名称は"方向動向指数 (DMI) "である.これはアメリカの技術分析のグルーウェルズ・ワイルダーによって作成され,中長期市場技術分析方法である.
DMI指標は,価格上昇と下落の過程で買い手と売り手の平衡点の変化である.つまり,ロングとショートの両方の強さの変化は価格変動の影響を受け,平衡から不均衡への周期的なプロセスが起こります.したがって,傾向を判断するための技術指標を提供します.
最近,数値取引のビジネスで多くの友人が,FMZ Quant数値取引プラットフォームでDMIインジケーターを使用する方法について私に相談しました.非常に簡単な問題だと思いましたが,このインジケーター関数を見つけるためにAPIドキュメントを開きました.このインジケーターは,タリブ・インジケーターライブラリに利用できないことがわかりました.少しグーグルした後,私はいくつかの情報を見つけました.
この指標は4つの指標から構成されていることが判明しました. アルゴリズムは非常に複雑ではありません. アルゴリズムに従うだけで大丈夫です.
アルゴリズムアドレス:https://www.fmz.com/strategy/154050
// indicator function
function AdX(MDI, PDI, adx_period) {
if(typeof(MDI) == "undefined" || typeof(PDI) == "undefined"){
Return false
}
if(MDI.length < 10 || PDI.length < 10){
Return false
}
/*
dX = abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100
AdX = sma(dX, len)
*/
var dx = []
for(var i = 0; i < MDI.length; i++){
if(!MDI[i] || !PDI[i]){
continue
}
var dxValue = Math.abs((PDI[i] - MDI[i])) / (PDI[i] + MDI[i]) * 100
var obj = {
close : dxValue,
}
dx.push(obj)
}
if(dx.length < adx_period){
Return false
}
var adx = talib.SMA(dx, adx_period)
Return adx
}
function DMI(records, pdi_period, mdi_period, adxr_period, adx_period) {
var recordsHLC = []
for(var i = 0; i < records.length ; i++){
var bar = {
High : records[i].High,
Low : records[i].Low,
close : records[i].close,
}
recordsHLC.push(bar)
}
var m_di = talib.MINUS_DI(recordsHLC, mdi_period)
var p_di = talib.PLUS_DI(recordsHLC, pdi_period)
var adx = AdX(m_di, p_di, adx_period)
// adXR=(AdX of the day before the AdX+ AX)÷2
var n = 0
var adxr = []
for (var j = 0 ; j < adx.length; j++) {
if (typeof(adx[j]) == "number") {
n++
}
if (n >= adxr_period) {
var curradxr = (adx[j] + adx[j - adxr_period]) / 2
adxr.push(curradxr)
} else {
adxr.push(NaN)
}
}
Return [m_di, p_di, adx, adxr]
}
FMZ Quant のデータライブラリを使用して,チャートを作成し,他のチャートとDMIを比較することは簡単です.
複数のk線バーの指標値を比較すると,基本的には同じ値 (わずかに丸められた偏差) です.
直接 DMI 関数 (例のメイン 関数で呼び出す方法など) を使用し,K 線データを入力し,通常 14 の指標パラメータを設定します.
函数で返されるデータは4行を表す二次元配列です
DI-: m_di DI+: p_di アドX: アドX adXR: adxr
DMIのこの4つの行のうち,DI-とDI+は,ロングとショートインジケーターであり,ロングとショートの両方の強さを反映しています.
AdX と adXR は,市場における現在の傾向と方向性を反映するトレンドインジケーターとして,一緒に使用される指標線のペアです.
DI+の指標値が高くなるほど 現在の牛市が強くなっていきますが そうでなければ牛市が弱くなるのです DIは,上記の反対です. DI+,DI- はしばしば交互に絡み合っており,その間の値が近づくほど,市場は行き詰まりになります.逆に,傾向は強化されます.
長期的な価格下落の後,以下の条件が短期的に満たされれば,短期的な価格底に達し,反転または反転が起こり得ることを示します.
ロング・バイディング・フォースを表すDI+線は10以下で,線はoversoldのポジションで上向きに回され,DI線は高値です.
トレンドを表す AdX 線は 65 のより高い位置にあり,ダウン回転して adXR 線とダウンクロスを形成します.
長期上昇後,以下の条件が短期的に満たされれば,短期的な高値に達し,短期的な調整や逆転が起こる可能性があります.
ショートセール強さを表すDI線は10以下で,線は低い位置で上向きで,DI+線は高い位置です.
トレンドを表す AdX 線は 65 のより高い位置にあり,ダウン回転して adXR 線とダウンクロスを形成します.
価格変動の期間を経て,DMI