Perhitungan dan penerapan indikator DMI

Penulis:Kebaikan, Dibuat: 2019-08-03 14:24:10, Diperbarui: 2023-11-08 20:43:17

img

Pendahuluan terhadap indikator DMI

Indikator DMI juga disebut indikator momentum atau indikator tren, nama lengkapnya adalah Directional Movement Index (DMI) . Ini diciptakan oleh guru analisis teknis Amerika Wells Wilder, ini adalah metode analisis teknis pasar jangka menengah dan panjang.

Indikator DMI adalah perubahan titik keseimbangan pembeli dan penjual dalam proses kenaikan dan penurunan harga, yaitu, perubahan kekuatan kedua sisi panjang dan pendek dipengaruhi oleh fluktuasi harga, dan proses siklus dari keseimbangan ke ketidakseimbangan terjadi, sehingga memberikan indikator teknis untuk menilai tren.

Perhitungan indikator

Baru-baru ini, beberapa teman dalam bisnis perdagangan kuantitatif telah berkonsultasi dengan saya tentang cara menggunakan indikator DMI di platform perdagangan kuantitatif FMZ Quant. Saya pikir itu adalah masalah yang sangat sederhana, dan saya membuka dokumentasi API untuk menemukan fungsi indikator ini. menemukan bahwa indikator ini tidak tersedia di perpustakaan indikator versatile talib. setelah beberapa googling, saya menemukan beberapa informasi.

Hal ini ditemukan bahwa indikator ini terdiri dari empat indikator. algoritma tidak terlalu rumit. hanya mengikuti algoritma akan baik-baik saja.

alamat algoritma:https://www.fmz.com/strategy/154050

  • Kode sumber

// 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]
}
  • Membandingkan

Menggunakan perpustakaan data FMZ Quant, mudah untuk menggambar grafik dan membandingkan DMI dengan grafik lain.

img img

Membandingkan nilai indikator pada beberapa batang garis k, nilainya pada dasarnya sama (penyesuaian yang sedikit dibulatkan).

  • Penggunaan

Gunakan langsung fungsi DMI (seperti cara yang disebut dalam fungsi utama dalam contoh), masukkan data garis K, atur parameter indikator, yang umumnya 14.

Data yang dikembalikan oleh fungsi adalah array dua dimensi yang mewakili empat baris.

DI-: m_di DI+: p_di AdX: adx adXR: adxr

Di antara empat baris indikator DMI ini, DI- dan DI+ adalah indikator panjang dan pendek, mencerminkan kekuatan posisi panjang dan pendek.

AdX dan adXR adalah sepasang garis indikator yang digunakan bersama, yang merupakan indikator tren, mencerminkan tren dan arah pasar saat ini.

DI+, semakin tinggi nilai indikator, semakin kuat pasar bull saat ini, jika tidak, semakin lemah pasar bull. DI, kebalikan dari di atas. DI+, DI- sering saling terkait, dan semakin dekat nilai di antara, pasar berada dalam kebuntuan.

Sinyal

  • Sinyal harga bawah

Setelah penurunan harga jangka panjang, jika kondisi berikut terpenuhi dalam jangka pendek, itu menunjukkan bahwa harga jangka pendek telah mencapai dasar, dan mungkin ada rebound atau pembalikan.

Garis DI + yang mewakili kekuatan pembelian panjang berada di bawah 10, dan garis ini diputar ke atas di posisi oversold, dan garis DI berada di posisi tinggi.

Garis AdX yang mewakili tren berada di posisi yang lebih tinggi di atas 65, berbelok ke bawah dan membentuk garis adXR ke bawah.

  • Sinyal harga atas

Setelah kenaikan jangka panjang, jika kondisi berikut terpenuhi dalam jangka pendek, harga tinggi jangka pendek telah tercapai dan mungkin ada penyesuaian atau pembalikan jangka pendek.

Garis DI yang mewakili kekuatan short selling berada di bawah 10, dan garis itu diputar ke atas pada posisi rendah, dan garis DI+ berada di posisi tinggi.

Garis AdX yang mewakili tren berada di posisi yang lebih tinggi di atas 65, berbelok ke bawah dan membentuk garis adXR ke bawah.

  • Meningkatnya tren

Setelah periode fluktuasi dalam pergerakan harga, empat garis indikator DMI terjalin pada harga rendah, dan kemudian tiba-tiba ada garis k positif panjang dengan volume besar meningkatkan harga lebih dari 5%.


Lebih banyak