Strategi ini menggunakan dua hentian ATR dengan parameter yang berbeza untuk menetapkan tahap stop loss dinamik - satu hentian cepat dan satu hentian perlahan. Ia menubuhkan kedudukan panjang berdasarkan harga harga dari tahap hentian yang berbeza dan keluar kedudukan menggunakan hentian yang tertinggal. Matlamatnya adalah untuk menggunakan hentian ATR untuk menetapkan tahap hentian kerugian yang munasabah sambil memaksimumkan keupayaan mengikuti trend.
Strategi ini menggunakan penunjuk ATR untuk mengira dua tahap stop loss. Hentian pantas menggunakan ATR 5 tempoh dikalikan dengan 0.5 sebagai jarak berhenti. Hentian perlahan menggunakan ATR 10 tempoh dikalikan dengan 3 sebagai jarak berhenti. Apabila harga memecahkan di atas tahap hentian pantas, kedudukan panjang ditubuhkan. Apabila harga terus memecahkan di atas tahap hentian perlahan, hentian disesuaikan dengan tahap hentian perlahan. Jika harga turun, tahap hentian disesuaikan berdasarkan hubungan silang.
Logikanya ialah:
Mengira hentian pantas Trail1: ATR 5 tempoh * 0.5
Mengira hentian perlahan Trail2: 10 tempoh ATR * 3
Apabila harga pecah di atas Trail1, buat kedudukan panjang
Apabila harga terus memecahkan di atas Trail2, sesuaikan berhenti ke Trail2
Jika harga berubah ke bawah memecahkan Trail1, menyesuaikan berhenti kembali ke Trail1
Jika harga terus turun mematahkan Trail2, menyesuaikan berhenti ke Trail2
Akhirnya, jika harga mencapai tahap berhenti, keluar dari kedudukan dengan stop loss
Dengan cara ini, strategi dapat memaksimumkan keuntungan semasa trend menaik dengan berhenti yang tertinggal sambil dengan cepat menghentikan kerugian apabila trend berbalik.
Penghentian ATR menetapkan paras penghentian kerugian dinamik berdasarkan turun naik pasaran
Mekanisme hentian berganda menyeimbangkan antara hentian kerugian dan trend pengekangan
Arah panjang sejajar dengan aliran menaik secara keseluruhan, keuntungan yang lebih tinggi
Logik yang mudah dan jelas, mudah difahami dan dilaksanakan
Peraturan stop loss yang ketat mengehadkan kerugian dengan berkesan
Parameter ATR yang tidak betul boleh menyebabkan perhentian terlalu lebar atau terlalu ketat
Arah panjang mempunyai kecenderungan arah, cenderung untuk berhenti di puncak pasaran
Peraturan hentian berganda adalah rumit, mungkin gagal jika tidak ditetapkan dengan betul
Tiada penapis seperti EMA crossovers, boleh menyebabkan perdagangan yang buruk
Tiada pengurusan kedudukan atau risiko, risiko perdagangan berlebihan
Risiko ini boleh dikurangkan dengan mengoptimumkan parameter ATR, menambah penapis, dan menguatkuasakan pengurusan risiko.
Mengoptimumkan kombinasi parameter ATR untuk hasil terbaik
Tambah penapis seperti EMA untuk memenuhi syarat isyarat kemasukan
Menggabungkan penunjuk seperti Stoch RSI untuk kelebihan tambahan
Tambah logik kemasukan semula untuk mengoptimumkan pengurusan kedudukan
Mengoptimumkan peraturan pengurusan risiko untuk mengehadkan kerugian henti setiap perdagangan
Menggabungkan analisis peringkat pasaran untuk mengelakkan kesilapan arah
Pertimbangkan strategi jangka masa yang lebih cepat seperti setiap jam
Memperluas kepada strategi universal pelbagai pasaran
Menerbitkan enjin perdagangan berprestasi tinggi
Dengan penambahbaikan ini, strategi ini boleh menjadi lebih kukuh, stabil dan menguntungkan.
Strategi ini menggunakan hentian trailing ATR yang jelas untuk entri dan keluar yang panjang. Kelebihannya terletak pada peraturan stop loss yang ketat untuk mengehadkan kerugian semasa mengikuti trend. Ia mempunyai risiko bias arah yang boleh dikurangkan melalui pengoptimuman seperti parameter yang lebih baik, menambah penapis dan meningkatkan pengurusan risiko. Dengan ujian dan penambahbaikan lanjut, ini boleh menjadi strategi trend yang boleh dipercayai.
/*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)