Sebuah strategi perdagangan kuantitatif baru, yang didasarkan pada indikator DMI untuk mengidentifikasi bagian bawah dan atas pasar. Artikel ini akan menjelaskan secara rinci prinsip, keuntungan, dan risiko yang mungkin ada dalam strategi perdagangan ini.
Indeks pergerakan arah rata-rata (Average Directional Movement Index) yang dikembangkan oleh Welles Wilder pada tahun 1970-an untuk menilai tren dan kekuatan pasar. Indeks DMI terdiri dari tiga garis:
Ketika + DI di atas DI, berarti kenaikan kuat, Anda dapat mempertimbangkan untuk melakukan lebih banyak; ketika - DI di atas DI, berarti penurunan kuat, Anda dapat mempertimbangkan untuk melakukan pengurangan.
Logika inti dari strategi ini adalah:
Artinya, ketika garis DI terbalik secara signifikan lebih kuat dari garis DI terbalik, dapat dipastikan bahwa tren saat ini akan berbalik, dan pada saat itu dapat diintervensi dengan tepat untuk melakukan operasi terbalik.
Untuk memfilter kesalahan, kebijakan ini menggunakan garis rata-rata DI, parameter spesifiknya adalah:
Frekuensi sinyal perdagangan dikontrol dengan menyesuaikan parameter garis rata-rata.
Strategi ini terutama digunakan untuk perdagangan opsi indeks NIFTY50, tetapi juga dapat digunakan untuk varietas lainnya. Untuk perdagangan tertentu, pilih opsi equity, dengan stop loss setelan 20%, jika kerugian lebih dari 10%, tambahlah risiko, tetapi jika kerugian berkembang hingga lebih dari 20% dari modal awal yang dimasukkan, stop loss keluar.
Strategi ini menggunakan filter rata-rata indikator DI dibandingkan dengan strategi simplistic DI crossover, yang secara efektif mengurangi whipsaw dan mengurangi jumlah transaksi, sehingga mengurangi biaya transaksi dan kehilangan slip.
Strategi ini lebih akurat dalam menentukan titik balik tren dibandingkan dengan strategi trend-following sederhana, dan dapat menangkap peluang perdagangan di dekat titik balik pada waktu yang tepat.
Optimasi parameter kebijakan ini relatif sederhana dan mudah untuk mencapai optimasi efek.
Strategi ini hanya memberikan arah sinyal perdagangan, persyaratan stop loss yang spesifik perlu disesuaikan dengan preferensi risiko pribadi.
Indikator DMI dapat menghasilkan sejumlah besar sinyal palsu saat melakukan pengumpulan area. Strategi ini harus dihindari di pasar yang tidak tren.
DI cross tidak dapat 100 persen memprediksi titik perputaran tren, ada beberapa kesalahan urutan. Harus dikombinasikan dengan indikator lain untuk memverifikasi sinyal perdagangan.
Strategi ini dapat secara efektif mengidentifikasi peluang pembalikan tren melalui penyaringan DI rata-rata. Dibandingkan dengan strategi pelacakan tren lainnya, memiliki kemampuan untuk mengidentifikasi pembalikan yang lebih kuat. Secara keseluruhan, parameter strategi ini dioptimalkan dan fleksibel, cocok untuk digunakan sebagai modul sistem perdagangan kuantitatif.
/*backtest
start: 2023-09-05 00:00:00
end: 2023-09-12 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © email_analysts
// This code gives indication on the chart to go long based on DMI and exit based on RSI.
//Default value has been taken as 14 for DMI+ and 6 for RSI.
//@version=5
strategy(title="DMI Strategy", overlay=false)
lensig = input.int(11, title="ADX Smoothing", minval=1, maxval=50)
len = input.int(11, minval=1, title="DI Length")
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
trur = ta.rma(ta.tr, len)
plus = fixnan(100 * ta.rma(plusDM, len) / trur)
minus = fixnan(100 * ta.rma(minusDM, len) / trur)
sum = plus + minus
adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), lensig)
//plot(adx, color=#F50057, title="ADX")
plot(plus, color=color.green, title="+DI")
plot(minus, color=color.red, title="-DI")
hlineup = hline(40, color=#787B86)
hlinelow = hline(10, color=#787B86)
buy = plus < 10 and minus > 40
if buy
strategy.entry('long', strategy.long)
sell = plus > 40 and minus < 10
if sell
strategy.entry('short', strategy.short)