
Strategi ini dinamakanStrategi mengikut aliran berdasarkan SMA dan ATR。
Strategi ini menggunakan indikator SMA untuk menentukan arah trend harga, dan menggunakan indikator ATR untuk menetapkan kedudukan stop loss untuk menjejaki trend. Buat short apabila harga melanggar trend kenaikan, dan buat lebih banyak apabila harga melanggar trend penurunan, untuk mencapai perdagangan trend.
(1) Melakukan lebih banyak apabila harga penutupan meningkat dan lebih tinggi daripada SMA (2) Melepaskan diri apabila harga penutupan jatuh dan berada di bawah SMA
Menggunakan nilai indikator ATR kalikan dengan kelipatan henti yang ditetapkan sebagai kedudukan henti.
Setiap K baris ditutup, periksa kedudukan hentian dan kemas kini kepada nilai hentian yang lebih dekat dengan harga semasa.
Harga menyentuh garisan stop loss dan berhenti secara aktif.
Tetapan hentian dinamik menggunakan penunjuk ATR membolehkan trend dijejaki secara automatik.
Peraturan berhenti rugi yang ketat membantu mengawal jumlah maksimum yang boleh ditarik balik dalam satu transaksi.
Hanya 3 parameter untuk penyesuaian dan pengoptimuman.
Jika penggandaan hentian terlalu besar, ia boleh menyebabkan kedudukan hentian terlalu longgar, yang meningkatkan penarikan balik.
Apabila harga berlaku pecah palsu, ia boleh menyebabkan arah trend yang salah, dan ia harus digabungkan dengan isyarat penapis indikator lain.
Pengoptimuman parameter yang terlalu bergantung boleh menyebabkan pengoptimuman kurva. Kestabilan parameter harus dinilai dengan berhati-hati.
Jenis algoritma penghentian yang lain boleh diuji, seperti penghentian bergerak, penghentian peratusan, dan sebagainya.
Penembusan palsu penapis boleh ditambah dengan penunjuk lain.
Parameter penilaian kesesuaian untuk pelbagai jenis dan kitaran melalui pengesanan semula sejarah.
Strategi ini mempunyai pemikiran keseluruhan yang jelas, menilai arah trend melalui SMA, dan menggunakan ATR untuk menjejaki trend, kawalan pengunduran yang baik, sesuai untuk perdagangan trend garis panjang dan tengah. Namun, parameter masih perlu disesuaikan dengan betul di pasaran nyata, dan mencegah risiko terlalu optimum.
/*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")