Strategi ini menggabungkan dua indikator terintegrasi yang kuat dalam TradingView - Indeks Gerakan Arah (DMI) dan Osilator Harga Terhindar (DPO) untuk membentuk dasar yang dapat diandalkan untuk keputusan perdagangan. Logika inti dari strategi ini adalah untuk menentukan apakah nilai DPO lebih besar dari 0 ketika DMI golden cross terjadi, dan menghasilkan sinyal panjang jika demikian; atau untuk menentukan apakah nilai DPO kurang dari 0 ketika DMI dead cross terjadi, dan menghasilkan sinyal pendek jika demikian. Hal ini dapat secara efektif menyaring banyak sinyal palsu yang dihasilkan selama osilasi range-bound di pasar, sehingga hanya menghasilkan sinyal perdagangan ketika tren terbentuk, menghindari kerugian berhenti berulang selama osilasi.
Strategi ini terutama menggunakan indikator DMI untuk menentukan arah dan kekuatan tren. Indikator DMI terdiri dari tiga kurva: +DI, -DI dan ADX. +DI mewakili kekuatan tren naik, -DI mewakili kekuatan tren turun, dan silang mereka dapat menentukan arah tren saat ini; ADX mewakili kekuatan tren, semakin tinggi nilainya, semakin jelas tren. Namun, ADX tidak pandai mengidentifikasi rentang volatilitas rendah, sehingga strategi ini menghilangkan penentuan ADX dan hanya menggunakan silang +DI dan -DI untuk menentukan arah tren.
Untuk menyaring sinyal palsu yang dihasilkan dalam osilasi yang terikat kisaran, indikator DPO diperkenalkan untuk penilaian tambahan. Indikator DPO mewakili derajat penyimpangan harga dari rel tengahnya. Ketika harga berada di atas rel tengah, DPO positif, dan di bawahnya, negatif. Strategi ini menggunakan positivitas dan negativitas indikator DPO untuk menilai apakah saat ini sedang dalam tren. Jika indikator DMI menyeberang tetapi indikator DPO dekat dengan level 0, ditentukan bahwa itu adalah osilasi dan tidak ada sinyal perdagangan yang dihasilkan.
Secara khusus, logika penilaian adalah:
Ketika +DI melintasi di atas -DI, itu adalah salib emas, yang menunjukkan pasar bull. Pada saat ini, jika indikator DPO lebih besar dari 0, itu mengkonfirmasi bahwa saat ini sedang dalam tren naik, dan sinyal panjang dihasilkan.
Ketika -DI melintasi di bawah +DI, itu adalah salib mati, menunjukkan pasar beruang. Pada saat ini, jika indikator DPO kurang dari 0, itu mengkonfirmasi bahwa saat ini sedang dalam tren menurun, dan sinyal pendek dihasilkan.
Jika +DI/-DI bersilang tetapi indikator DPO mendekati 0, itu ditentukan sebagai osilasi dan tidak ada sinyal yang dihasilkan.
Keuntungan terbesar dari strategi gabungan ini adalah akurasi tinggi dalam mengidentifikasi tren, menghasilkan sinyal perdagangan hanya ketika pembalikan tren nyata terjadi, sehingga menghindari kerugian berulang dalam interval osilasi.
Menggunakan indikator DMI untuk menentukan arah tren dan kekuatan, ini adalah indikator teknis yang matang dan dapat diandalkan.
Menyaring sinyal palsu dalam osilasi dalam kisaran dengan bantuan indikator DPO, menghasilkan sinyal hanya ketika tren terbentuk, menghindari kerugian.
Menggabungkan beberapa indikator dapat berfungsi sebagai verifikasi timbal balik dan meningkatkan keandalan sinyal.
Logika strategi sederhana dan mudah dimengerti dan diimplementasikan, cocok untuk perdagangan otomatis atau manual.
Karena hanya berdagang dalam tren, ia dapat memperoleh rasio risiko dan imbalan yang relatif tinggi.
Meskipun ini adalah strategi yang sangat dapat diandalkan, risiko berikut harus diperhatikan:
Kejadian mendadak dapat menyebabkan pergerakan satu sisi yang besar di pasar, mungkin kehilangan peluang tren tersebut.
Indikator DMI itu sendiri juga dapat menghasilkan sinyal yang salah, dan risiko ini tidak dapat dihindari sepenuhnya.
Pengaturan parameter indikator DPO yang tidak benar juga dapat menyebabkan penilaian yang salah.
Biaya perdagangan akan memiliki dampak tertentu pada keuntungan, sehingga frekuensi perdagangan harus dikendalikan.
Masih ada ruang untuk optimalisasi lebih lanjut dari strategi ini:
Kombinasi parameter yang berbeda dapat diuji untuk menemukan parameter optimal untuk mengurangi keterlambatan sinyal dan meningkatkan tingkat keuntungan.
Dapat dikombinasikan dengan indikator lain seperti KDJ, MACD, dll untuk verifikasi untuk meningkatkan akurasi sinyal.
Parameter adaptif dapat ditetapkan sesuai dengan varietas yang berbeda, siklus, dll untuk membuat strategi lebih adaptif.
Amplitudo stop loss yang berbeda juga dapat diatur sesuai dengan tahap tren.
Metode pembelajaran mesin dapat digunakan untuk mengoptimalkan waktu masuk dan keluar untuk pengembalian yang lebih tinggi.
Strategi ini menggabungkan keuntungan dari indikator DMI dan DPO untuk memiliki akurasi tinggi dalam menilai pembalikan tren, dan dapat secara andal mengidentifikasi generasi tren. Pada saat yang sama, penggunaan indikator DPO secara efektif menyaring kebisingan yang disebabkan oleh osilasi yang terbatas pada kisaran, menghindari perdagangan yang tidak efektif. Ini menjadikannya strategi yang efisien yang cocok untuk perdagangan otomatis dan adopsi manual. Tentu saja, masih ada banyak detail yang dapat dioptimalkan lebih lanjut untuk kinerja strategi yang lebih baik. Tetapi gagasan menggabungkan indikator memiliki signifikansi referensi penting untuk desain strategi perdagangan kuantitatif.
/*backtest start: 2022-12-28 00:00:00 end: 2024-01-03 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("DMI DPO Guard Strategy", calc_on_order_fills=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, currency="USD", commission_type=strategy.commission.percent, commission_value=0.25) ///Tradingview's DMI indicator logic/// len = input(34, minval=1, title="DI Lookback") up = change(high) down = -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 = rma(tr, len) plus = fixnan(100 * rma(plusDM, len) / trur) minus = fixnan(100 * rma(minusDM, len) / trur) plot(plus, color=color.orange, title="+DI") plot(minus, color=color.aqua, title="-DI") period_ = input(34, title="Length", minval=1) isCentered = input(false, title="Centered") barsback = period_/2 + 1 ma = sma(close, period_) dpo = isCentered ? close[barsback] - ma : close - ma[barsback] plot(dpo, offset = isCentered ? -barsback : 0, title="Detrended Price Oscillator", color=#C0C000) hline(0, title="Zero Line", color = #C0C0C0) long = crossover(plus, minus) and (dpo > 0) short = crossunder(plus, minus) and (dpo < 0) strategy.entry("Long", strategy.long, when=long) strategy.entry("Short", strategy.short, when=short)