Sumber daya yang dimuat... Pemuatan...

Strategi perdagangan DMI Moving Average

Penulis:ChaoZhang, Tanggal: 2023-09-13 14:42:19
Tag:

Baru-baru ini saya telah mengembangkan strategi perdagangan kuantitatif baru yang terutama didasarkan pada indikator DMI untuk mengidentifikasi bawah dan atas di pasar.

Logika Strategi

Indikator DMI, singkatan dari Average Directional Movement Index, diciptakan oleh Welles Wilder pada tahun 1970-an untuk mengukur tren dan kekuatan pasar.

  • +DI: mewakili kekuatan tren naik
  • -DI: mewakili kekuatan tren penurunan
  • ADX: mewakili kekuatan tren keseluruhan

Ketika +DI melintasi di atas -DI, ini menunjukkan penguatan tren naik dan posisi panjang dapat dipertimbangkan.

Logika inti dari strategi ini adalah:

  1. Pergi panjang ketika +DI turun di bawah 10 dan -DI naik di atas 40
  2. Berjalan pendek ketika -DI turun di bawah 10 dan +DI naik di atas 40

Artinya, ketika reverse DI menyimpang secara signifikan dari forward DI, dapat dinilai bahwa tren saat ini kemungkinan akan berbalik, dan posisi perdagangan reverse dapat diambil dengan tepat.

Untuk menyaring kebisingan, strategi ini mengadopsi rata-rata bergerak DI dengan parameter yang ditetapkan sebagai:

  • Periode +DI dan -DI adalah 11
  • Periode penyeimbangan ADX adalah 11

Dengan menyesuaikan parameter rata-rata bergerak, frekuensi sinyal perdagangan dapat disesuaikan.

Strategi ini terutama diterapkan pada perdagangan opsi indeks NIFTY50. Ini juga dapat digunakan pada produk lain. Khusus untuk perdagangan, pilih opsi at-the-money, atur stop loss pada 20%, tambahkan posisi jika kerugian melebihi 10%, tetapi berhenti jika kerugian berkembang lebih dari 20% dari modal awal.

Keuntungan dari Strategi

Dibandingkan dengan strategi silang DI sederhana, strategi ini menggunakan rata-rata bergerak DI untuk menyaring kebisingan dan mengurangi perdagangan, sehingga mengurangi biaya transaksi dan slippage.

Dibandingkan dengan strategi mengikuti tren murni, strategi ini lebih tepat dalam menangkap titik pembalikan tren, memungkinkan entri tepat waktu di sekitar tikungan.

Optimasi strategi sederhana dengan parameter yang fleksibel untuk penyesuaian kinerja.

Peringatan Risiko

Strategi ini hanya memberikan sinyal arah. persyaratan khusus pada stop loss dan mengambil keuntungan harus ditetapkan sesuai dengan preferensi risiko pribadi.

DMI dapat menghasilkan banyak sinyal palsu selama periode yang terikat rentang.

DI crossover tidak dapat sepenuhnya memprediksi pembalikan tren. Mungkin ada beberapa kesalahan waktu. Indikator lain harus digunakan untuk memvalidasi sinyal perdagangan.

Kesimpulan

Dengan menyaring dengan rata-rata bergerak DI, strategi ini dapat secara efektif mengidentifikasi peluang pembalikan tren. Dibandingkan dengan strategi berikut tren lainnya, ia memiliki keuntungan kemampuan pengenalan pembalikan yang lebih kuat. Secara keseluruhan, strategi ini memiliki pengaturan parameter yang fleksibel dan dapat digunakan sebagai modul dalam sistem perdagangan kuantitatif. Perhatikan sinyal palsu dan menilai dengan benar rezim pasar saat menggunakannya.


/*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)



Lebih banyak