Berechnung und Anwendung von DMI-Indikatoren

Schriftsteller:Kleine Träume, Erstellt: 2019-07-03 14:03:53, Aktualisiert: 2023-10-25 20:00:58

img

Berechnung und Anwendung von DMI-Indikatoren

Indikatorübersicht

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

    In jüngster Zeit haben mich viele Freunde aus dem Quantifier-Bereich gefragt, wie man den DMI-Indikator auf der Quantifier-Trading-Plattform der Erfinder nutzt. Ich dachte, es sei eine einfache Frage. Ich öffnete die API-Dokumentation und suchte nach dieser Indikatorfunktion. Es wurde festgestellt, dass der Indikator aus einer Kombination von vier Indikatoren besteht, die Algorithmen sind nicht sehr kompliziert.

    Ein Beispiel:https://www.fmz.com/strategy/154050

  • Posten Sie den Quellcode der Indikatoren.

    // 指标函数
    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]
    }
    
  • Vergleich

    Mit einer von den Erfindern quantifizierten Zeichnungslinie-Klassebücherei kann leicht ein Diagramm erstellt werden, das mit dem DMI in anderen Diagrammen verglichen werden kann

    img

    img

    Bei der Vergleichung der Kennzahlen auf mehreren Kbars ist das Ergebnis nahezu einheitlich (eine geringfügige Abweichung von vier bis fünf).

  • Nutzung

    Mit der Funktion DMI (z. B. wie sie in der Main-Funktion im Beispiel aufgerufen wird) können Sie die Daten der K-Leitung übertragen und die Indikatorparameter, in der Regel 14, festlegen. Die Daten, die die Funktion zurückgibt, sind eine zweidimensionale Array, die jeweils vier Linien darstellt.

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

    Die vier Linien in der DMI-Anzeige, von denen DI-, DI+ die Mehrfach-Anzeige sind, spiegeln die Stärke der Mehrfachseiten wider. ADX und ADXR sind eine Kombination von Indikatorlinien, die als Trendindikator dienen und die aktuellen Trends und Richtungen des Marktes darstellen.

    DI +, der höhere Indikatorwert, zeigt, dass der aktuelle Markt stärker und schwächer ist. DI- ist der Gegenteil. DI+, DI- sind häufig miteinander verflochten, und je näher die Zahlen sind, desto näher steht der Markt in einer Konjunkturstörung.

    • Das Signal

      1. Suche nach dem Boden

      Nach einem langen Abstieg, wenn die folgenden Bedingungen in der kurzfristigen Zeit erfüllt sind, ist ein Bottom in der kurzfristigen Zeit erkannt und es kann zu einem Rückschlag oder einer Umkehr kommen.

      • Die DI+-Linie, die die Mehrköpfigkeit darstellt, ist unter 10, in der Überstürzungsposition in der oberen Kurve, und die DI-Schleife ist hoch.

      • 2. Die ADX-Linie, die den Trend repräsentiert, biegt sich in höheren Positionen als 65 nach unten und bildet eine Abzweigung mit der ADXR-Linie.

      2. Die Sonde

      Nach einem langen Aufstieg ist eine kurzfristige Anpassung oder Umkehr möglich, wenn die folgenden Bedingungen in der kurzfristigen Zeit erfüllt sind.

      • 1, die DI-Federlinie, die die Kraft des Luftkopfes repräsentiert, ist unter 10 und ist niedrig und biegt nach oben, und die DI +-Linie ist hoch.

      • 2. Die ADX-Linie, die den Trend repräsentiert, biegt sich in höheren Positionen als 65 nach unten und bildet eine Abzweigung mit der ADXR-Linie.

      3. Aufstieg

      Nach einer Periode von Schwankungen umkreisen sich die vier DMI-Linien im Tiefpunkt, und dann taucht plötzlich die langen K-Linien auf, die um mehr als 5% steigen. Die DI+-Linien durchqueren die DI-, ADX- und ADXR-Linien zwei Tage lang, was bedeutet, dass sich ein neuer Aufwärtstrend bilden wird.


Verwandt

Mehr

Ein einsamer MannWie früher

WeißwühlKannst du eine DMI-basierte Trends-Determination-Strategie schreiben?

Kleine TräumeEs ist Zeit, ein Beispiel zu schreiben.