Strategi ATR Trailing Stop (Hanya panjang)

Penulis:ChaoZhang, Tanggal: 2023-11-02 14:05:22
Tag:

img

Gambaran umum

Strategi ini menggunakan dua stop ATR dengan parameter yang berbeda untuk mengatur tingkat stop loss yang dinamis - satu stop cepat dan satu stop lambat.

Logika Strategi

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:

  1. Menghitung hentian cepat Trail1: 5 periode ATR * 0,5

  2. Menghitung hentian lambat Trail2: 10 periode ATR * 3

  3. Ketika harga pecah di atas Trail1, buat posisi panjang

  4. Ketika harga terus pecah di atas Trail2, sesuaikan stop ke Trail2

  5. Jika harga berubah ke bawah melanggar Trail1, menyesuaikan berhenti kembali ke Trail1

  6. Jika harga terus turun melanggar Trail2, sesuaikan stop ke Trail2

  7. 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.

Keuntungan

  1. Stop ATR menetapkan tingkat stop loss dinamis berdasarkan volatilitas pasar

  2. Mekanisme stop ganda menyeimbangkan antara stop loss dan trend trailing

  3. Arah panjang selaras dengan tren naik secara keseluruhan, profitabilitas yang lebih tinggi

  4. Logika yang sederhana dan jelas, mudah dimengerti dan diterapkan

  5. Aturan stop loss yang ketat membatasi kerugian secara efektif

Risiko

  1. Parameter ATR yang tidak tepat dapat menyebabkan stop terlalu lebar atau terlalu ketat

  2. Arah panjang memiliki bias arah, cenderung berhenti di puncak pasar

  3. Aturan berhenti ganda rumit, mungkin gagal jika tidak diatur dengan benar

  4. Tidak ada filter seperti EMA crossovers, dapat menyebabkan perdagangan buruk

  5. Tidak ada posisi atau manajemen risiko, risiko overtrading

Risiko ini dapat dikurangi dengan mengoptimalkan parameter ATR, menambahkan filter, dan menegakkan manajemen risiko.

Bidang Peningkatan

  1. Mengoptimalkan kombinasi parameter ATR untuk hasil terbaik

  2. Tambahkan filter seperti EMA untuk memenuhi syarat sinyal masuk

  3. Menggabungkan indikator seperti Stoch RSI untuk tepi tambahan

  4. Tambahkan logika re-entry untuk mengoptimalkan manajemen posisi

  5. Mengoptimalkan aturan manajemen risiko untuk membatasi stop loss per perdagangan

  6. Masukkan analisis tingkat pasar untuk menghindari kesalahan arah

  7. Pertimbangkan strategi jangka waktu yang lebih cepat seperti setiap jam

  8. Memperluas strategi universal multi-pasar

  9. Mengerahkan mesin perdagangan kinerja tinggi

Dengan perbaikan ini, strategi dapat menjadi lebih kuat, stabil dan menguntungkan.

Ringkasan

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)


Lebih banyak