Strategi ini menggunakan dua stop ATR dengan parameter yang berbeda untuk mengatur tingkat stop loss yang dinamis - satu stop cepat dan satu stop lambat.
Strategi ini menggunakan indikator ATR untuk menghitung dua tingkat stop loss. Fast stop menggunakan 5 periode ATR dikalikan dengan 0,5 sebagai jarak stop. Slow stop menggunakan 10 periode ATR dikalikan dengan 3 sebagai jarak stop. Ketika harga pecah di atas tingkat stop cepat, posisi panjang ditetapkan. Ketika harga terus pecah di atas tingkat stop lambat, stop disesuaikan dengan tingkat stop lambat. Jika harga turun, level stop disesuaikan berdasarkan hubungan crossover.
Logikanya adalah:
Menghitung hentian cepat Trail1: 5 periode ATR * 0,5
Menghitung hentian lambat Trail2: 10 periode ATR * 3
Ketika harga pecah di atas Trail1, buat posisi panjang
Ketika harga terus pecah di atas Trail2, sesuaikan stop ke Trail2
Jika harga berubah ke bawah melanggar Trail1, menyesuaikan berhenti kembali ke Trail1
Jika harga terus turun melanggar Trail2, sesuaikan stop ke Trail2
Akhirnya, jika harga mencapai level stop, keluar dari posisi dengan stop loss
Dengan cara ini, strategi dapat memaksimalkan keuntungan selama uptrends dengan trailing stops sambil dengan cepat menghentikan kerugian ketika tren berbalik.
Stop ATR menetapkan tingkat stop loss dinamis berdasarkan volatilitas pasar
Mekanisme stop ganda menyeimbangkan antara stop loss dan trend trailing
Arah panjang selaras dengan tren naik secara keseluruhan, profitabilitas yang lebih tinggi
Logika yang sederhana dan jelas, mudah dimengerti dan diterapkan
Aturan stop loss yang ketat membatasi kerugian secara efektif
Parameter ATR yang tidak tepat dapat menyebabkan stop terlalu lebar atau terlalu ketat
Arah panjang memiliki bias arah, cenderung berhenti di puncak pasar
Aturan berhenti ganda rumit, mungkin gagal jika tidak diatur dengan benar
Tidak ada filter seperti EMA crossovers, dapat menyebabkan perdagangan buruk
Tidak ada posisi atau manajemen risiko, risiko overtrading
Risiko ini dapat dikurangi dengan mengoptimalkan parameter ATR, menambahkan filter, dan menegakkan manajemen risiko.
Mengoptimalkan kombinasi parameter ATR untuk hasil terbaik
Tambahkan filter seperti EMA untuk memenuhi syarat sinyal masuk
Menggabungkan indikator seperti Stoch RSI untuk tepi tambahan
Tambahkan logika re-entry untuk mengoptimalkan manajemen posisi
Mengoptimalkan aturan manajemen risiko untuk membatasi stop loss per perdagangan
Masukkan analisis tingkat pasar untuk menghindari kesalahan arah
Pertimbangkan strategi jangka waktu yang lebih cepat seperti setiap jam
Memperluas strategi universal multi-pasar
Mengerahkan mesin perdagangan kinerja tinggi
Dengan perbaikan ini, strategi dapat menjadi lebih kuat, stabil dan menguntungkan.
Strategi ini menggunakan ATR trailing stop yang jelas untuk entri dan keluar yang panjang. Keuntungannya terletak pada aturan stop loss yang ketat untuk membatasi kerugian saat mengikuti tren. Ini memiliki risiko bias arah yang dapat dikurangi melalui optimasi seperti parameter yang lebih baik, menambahkan filter dan meningkatkan manajemen risiko. Dengan pengujian dan perbaikan lebih lanjut, ini dapat menjadi strategi trend yang dapat diandalkan.
/*backtest start: 2023-10-25 00:00:00 end: 2023-11-01 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("ATR Trailing Stop Strategy (Long Position Only)", overlay=true) SC = input(close, "Source", input.source) // Fast Trail AP1 = input(5, "Fast ATR period", input.integer) AF1 = input(0.5, "Fast ATR multiplier", input.float) SL1 = AF1 * atr(AP1) Trail1 = 0.0 Trail1 := iff(SC > nz(Trail1[1], 0) and SC[1] > nz(Trail1[1], 0), max(nz(Trail1[1], 0), SC - SL1), iff(SC < nz(Trail1[1], 0), SC + SL1, na)) // Slow Trail AP2 = input(10, "Slow ATR period", input.integer) AF2 = input(3, "Slow ATR multiplier", input.float) SL2 = AF2 * atr(AP2) Trail2 = 0.0 Trail2 := iff(SC > nz(Trail2[1], 0) and SC[1] > nz(Trail2[1], 0), max(nz(Trail2[1], 0), SC - SL2), iff(SC < nz(Trail2[1], 0), SC + SL2, na)) Green = Trail1 > Trail2 and close > Trail2 and low > Trail2 Buy = crossover(Trail1, Trail2) plotshape(Buy, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) strategy.entry("Buy", strategy.long, when = Buy) var float trailingStopPrice = na if (Trail2 > trailingStopPrice) trailingStopPrice := Trail2 if (crossover(Trail1, Trail2)) trailingStopPrice := Trail2 strategy.exit("Exit", from_entry = "Buy", stop=trailingStopPrice)