
Strategi ini disebutStrategi mengikuti tren berdasarkan SMA dan ATR。
Strategi ini menggunakan indikator SMA untuk menentukan arah tren harga, dan menggunakan indikator ATR untuk mengatur posisi stop loss untuk melacak tren. Lakukan shorting ketika harga melanggar tren naik, dan lakukan lebih banyak ketika harga melanggar tren turun, untuk melakukan perdagangan tren.
(1) Lakukan lebih banyak ketika harga close out naik dan lebih tinggi dari SMA (2) melakukan shorting ketika harga close out turun dan berada di bawah SMA
Menggunakan nilai indikator ATR dikalikan dengan set stop loss multiplier sebagai posisi stop loss.
Setiap K-line ditutup, periksalah posisi stop loss dan updatelah ke stop loss yang lebih dekat dengan harga saat ini.
Setelah harga menyentuh Stop Loss Line, Stop Loss Aktif Keluar
Pengaturan stop loss dinamis menggunakan indikator ATR memungkinkan pelacakan tren secara otomatis.
Peraturan stop loss yang ketat membantu untuk mengontrol penarikan maksimum dari satu transaksi.
Hanya ada 3 parameter untuk menyesuaikan dan mengoptimalkan.
Jika stop loss multiplier terlalu besar, hal ini dapat menyebabkan posisi stop loss terlalu longgar, sehingga meningkatkan penarikan balik.
Jika terjadi false breakout, maka akan terjadi salah arah tren dan harus digabungkan dengan sinyal filter dari indikator lain.
Optimasi parameter yang terlalu bergantung dapat menyebabkan optimasi kurva. Stabilitas parameter harus dinilai dengan hati-hati.
Jenis-jenis algoritma stop loss lainnya dapat diuji, seperti stop loss bergerak, stop loss proporsional, dan sebagainya.
Anda dapat menambahkan penyaringan untuk penembusan palsu pada indikator lain.
Adaptasi parameter untuk berbagai varietas dan siklus dinilai melalui retrospeksi historis.
Strategi ini memiliki ide yang jelas, dengan SMA untuk menentukan arah tren, dan menggunakan ATR untuk melacak tren, kemampuan kontrol mundur yang baik, cocok untuk perdagangan tren lini tengah dan panjang. Namun, parameter yang tepat masih perlu disesuaikan di pasar riil, dan mencegah risiko overoptimisasi.
/*backtest
start: 2024-01-16 00:00:00
end: 2024-01-16 17:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © omererkan
//@version=5
strategy(title="SMA with ATR", overlay=true)
smaLen = input.int(100, title="SMA Length")
atrLen = input.int(10, title="ATR Length")
stopOffset = input.float(4, title="Stop Offset Multiple", step=0.25)
smaValue = ta.sma(close, smaLen)
stopValue = ta.atr(atrLen) * stopOffset
lowerCloses = close < close[1] and
close[1] < close[2] and
close[2] < close[3]
enterLong = close > smaValue and
lowerCloses
longStop = 0.0
longStop := if enterLong and strategy.position_size < 1
close - stopValue
else
math.max(close - stopValue, longStop[1])
higherCloses = close > close[1] and
close[1] > close[2] and
close[2] > close[3]
enterShort = close < smaValue and
higherCloses
shortStop = 0.0
shortStop := if enterShort and strategy.position_size > -1
close + stopValue
else
math.min(close + stopValue, shortStop[1])
plot(smaValue, color=#4169e1, linewidth=2, title="SMA")
plot(strategy.position_size > 0 ? longStop : na, color=color.lime,
style=plot.style_linebr, title="Long stop", linewidth=2)
plot(strategy.position_size < 0 ? shortStop : na, color=color.red,
style=plot.style_linebr, title="Short stop", linewidth=2)
if enterLong
strategy.entry("EL", strategy.long)
if enterShort
strategy.entry("ES", strategy.short)
if strategy.position_size > 0
strategy.exit("SL Long", from_entry="EL", stop=longStop)
if strategy.position_size < 0
strategy.exit("SL Short", from_entry="ES", stop=shortStop)
if enterLong
strategy.cancel("Exit Short")
if enterShort
strategy.cancel("Exit Long")