Strategi ini bernama
Strategi ini menggunakan indikator ATR untuk mengatur harga stop loss. ATR mencerminkan volatilitas pasar dan dapat digunakan untuk mengatur jarak stop loss secara dinamis. Strategi ini menghitung nilai ATR berdasarkan input pengguna periode ATR dan pengganda, dan menggunakan nilai ATR dikalikan dengan pengganda sebagai jarak stop loss. Secara khusus, rumus perhitungan trailing stop ATR adalah:
ATR Line = Prior ATR Line ± nLoss (nLoss = nATRMultip * ATR value)
If close > ATR Line, adjust ATR Line up to close - nLoss
If close < ATR Line, adjust ATR Line down to close + nLoss
Dengan cara ini, garis ATR dapat menyesuaikan secara dinamis berdasarkan fluktuasi harga untuk mencapai tren setelah stop loss.
Selain ATR trailing stop, strategi ini juga menggunakan saluran penyimpangan standar untuk menentukan sinyal masuk.
Middle Line = ATR Trailing Stop Line
Upper Band = Middle Line + n * Standard Deviation
Lower Band = Middle Line - n * Standard Deviation
Pergi panjang saat harga menembus garis tengah ke atas. Pergi pendek ketika harga menembus garis tengah ke bawah.
Keuntungan terbesar dari strategi ini adalah bahwa ia menggunakan indikator ATR untuk mengatur stop loss secara dinamis berdasarkan volatilitas pasar, memungkinkan tren setelah stop loss dan pengendalian risiko yang efektif.
Selain itu, menggunakan saluran standar deviasi untuk sinyal masuk menghindari posisi yang sering dibuka karena fluktuasi harga yang kecil.
Risiko utama adalah bahwa jika jarak stop loss terlalu besar maka tidak dapat mengendalikan risiko secara efektif, tetapi jika terlalu kecil maka dapat dengan mudah dihentikan oleh kebisingan pasar.
Risiko lain adalah parameter saluran standar deviasi yang tidak tepat yang mengarah pada frekuensi masuk yang terlalu tinggi / rendah.
Strategi dapat ditingkatkan dari aspek berikut:
Mengoptimalkan periode ATR dan pengganda untuk mencapai efek stop loss yang lebih baik.
Mengoptimalkan parameter saluran standar penyimpangan untuk sinyal masuk yang lebih baik.
Tambahkan indikator lain untuk penyaringan, misalnya rata-rata bergerak, pola candlestick dll, untuk membantu menilai arah tren dan meningkatkan profitabilitas.
Mengoptimalkan masuk dan keluar logika, misalnya posisi terbuka hanya setelah mengkonfirmasi pola candlestick ketika harga mencapai saluran band.
Strategi ini mencapai trend setelah stop loss berdasarkan indikator ATR dan menggunakan saluran standar deviasi untuk sinyal masuk. Keuntungannya terletak pada kemampuan kontrol risiko yang baik untuk perdagangan tren. Risiko dan peningkatan juga dianalisis dengan jelas. Strategi ini layak untuk pengujian dan optimasi lebih lanjut dan memiliki nilai perdagangan praktis.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version = 2 strategy(title="Average True Range Strategy", overlay = true) nATRPeriod = input(11) //Hur många perioder ATR är på nATRMultip = input(0.5) //Hur många gånger nuvarande ATR multipliceras med xATR = atr(nATRPeriod) nLoss = nATRMultip * xATR xATRTrailingStop = iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss), iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss), iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss))) pos = iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), -1, iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), 1, nz(pos[1], 0))) stdev3 = 14*stdev(xATR, nATRPeriod) band1 = xATRTrailingStop+stdev3 //Översta stdev bandet band2 = xATRTrailingStop-stdev3 //Nedersta stdev bandet // Datum och tid FromMonth = input(defval = 8, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 18, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2013, title = "From Year", minval = 2013) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 2020, title = "To Year", minval = 2017) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest slut startTimeOk() => true initial_capital = 100000 take = close > xATRTrailingStop if( startTimeOk() ) and (pos == 1) //if (pos == 1) strategy.entry("Long", strategy.long, comment = "KOP") strategy.exit("Long", when = take) if( startTimeOk() ) and (pos == -1) //if (pos == -1) strategy.entry("Short", strategy.short, comment = "SALJ") barcolor(pos == -1 ? red: pos == 1 ? green : blue ) plot(xATRTrailingStop, color=red, title="ATR Trailing Stop") //Mittersta linjen som är triggerlinjen för köp/sälj plot(band1, color=red) plot(band2, color=blue)