資源の読み込みに... 荷物...

DMI指標の計算と応用

作者: リン・ハーン発明者 量化 - 微かな夢, 作成日: 2019-07-03 14:03:53, 更新日: 2023-10-25 20:00:58

img

DMI指標の計算と応用

インディケーター概要

DMI指标又叫动向指标或趋向指标,其全称叫“Directional Movement Index,简称DMI”,
也是由美国技术分析大师威尔斯·威尔德(Wells Wilder)所创造的,是一种中长期股市技术分析(Technical Analysis)方法。
DMI指标是通过分析股票价格在涨跌过程中买卖双方力量均衡点的变化情况,
即多空双方的力量的变化受价格波动的影响而发生由均衡到失衡的循环过程,从而提供对趋势判断依据的一种技术指标。
  • インディケーター計算

    最近,数値化界の友達が私に質問しています. 発明者の数値化取引プラットフォームでDMI指数をどのように使用するか. 簡単な問題だと思い始め,手軽にAPI文書を開いて,この指数の関数を検索しました. 万能なタリブ指数のデータベースにこの指数が存在しないことを発見しました. 慌てて百度,知らない... この指標は4つの指標の組み合わせで,アルゴリズムは複雑ではありません.

    フォローするhttps://www.fmz.com/strategy/154050

  • 指標のソースコードを投稿してください

    // 指标函数
    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+前n日的ADX)÷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]
    }
    
  • 比較する

    発明者による量化された図線クラスデータベースを使用して,簡単に図を描き,他の図のDMIを比較することができます.

    img

    img

    複数のKbarの指標値を比較すると,値はほぼ一致 (わずかな四五の偏差) である.

  • 使用する

    DMI (例の main の呼び出し方法) を直接使って,K 線データを転送し,指標パラメータを設定します.通常は 14 です. 函数で返されるデータは,それぞれ4つの行を表す2次元の行列である.

    • DI-: m_di,
    • DI+: p_di,
    • ADX:ADX,
    • ADXR:ADXR

    DMIの指標では,DI-,DI+が多空間の指標である4つの線が多空間の両方の力を表しています. ADXとADXRは,両方で使用される指標線であり,現在の市場の傾向と方向性を反映する傾向指標である.

    DI+は,指数の値が高くなるほど,現在の市場が強くなっていることを示し,反逆的に弱くなっている. DI−,指数は逆である. DI+,DI-は往々にして絡み合っている.その間の数字が近いほど,市場が全体的な行き詰まりの中にいることを示している.逆に,傾向的な強化を示している.

    • 信号

      1 底を探す

      長期的な下落の後,短期的な下落が以下の条件を満たす場合,短期的な底辺が発見され,超下落反転または逆転が起こり得る.

      • 1、多頭力を表すDI+線が10以下で,超下落位置の上向き曲がりで,DI線が高い.

      • 2 傾向を表すADX線は,65以上の高い位置で,下向きに曲がり,ADXR線と死角を形成する.

      2 探査機

      長期上昇後,短期間の上位が,以下のような条件を満たす場合,短期間の上位が発見され,短期間の調整または逆転が起こり得ることを示します.

      • 1、空心力を表すDI線は10以下で,低位で上向きに曲がり,DI+線は高位である.

      • 2 傾向を表すADX線は,65以上の高い位置で,下向きに曲がり,ADXR線と死角を形成する.

      3位 勢い

      この動きは,DMIの4つの指標線が低点で互いを回転し,その後,突然5パーセント以上上昇した長陽線が現れ,DMIの4つの指標線が低点に回転し,DMIの4つの指標線が低点に回転し,DMIの4つの指標線が低点に回転した. DI+線は,DI線,ADX線,ADXR線を2日間連続して通過し,新しい上昇傾向が形成されることを示しています.


関連性

もっと

ロンリーマン昔の出会い

武蔵野市DMIをベースにしたトレンド判断戦略を書けますか?

発明者 量化 - 微かな夢じゃあ,例文を書いてみよう.