Strategi ini dinamakanStrategi Pengesanan Trend Berdasarkan SMA dan ATR.
Strategi ini menggunakan penunjuk SMA untuk menentukan arah trend harga dan menetapkan kedudukan stop loss dengan penunjuk ATR untuk mengesan trend.
(1) Pergi panjang apabila harga penutupan meningkat dan lebih tinggi daripada SMA.
(2) Pergi pendek apabila harga penutupan jatuh dan lebih rendah daripada SMA.
Gunakan nilai penunjuk ATR
Selepas setiap bar ditutup, periksa kedudukan stop loss dan mengemas kini ke nilai stop loss yang lebih dekat dengan harga semasa.
Aktivkan stop loss apabila harga menyentuh garis stop loss.
Tetapan stop loss dinamik penunjuk ATR membolehkan pengesanan trend secara automatik.
Peraturan stop loss yang ketat membantu mengawal pengeluaran maksimum setiap perdagangan.
Hanya 3 parameter membuat penyesuaian dan pengoptimuman mudah.
Jika kelipatan stop loss ditetapkan terlalu tinggi, kedudukan stop loss mungkin terlalu longgar, sehingga meningkatkan drawdown.
Penembusan harga yang salah boleh membawa kepada kehilangan arah trend. Penunjuk lain harus digunakan untuk menapis isyarat.
Kepercayaan yang berlebihan terhadap pengoptimuman parameter boleh menyebabkan pemasangan lengkung. Kestabilan parameter harus dinilai dengan teliti.
Jenis algoritma stop loss lain boleh diuji, seperti stop loss bergerak, stop loss proporsional, dll.
Penunjuk lain boleh ditambah untuk menapis pecah palsu.
Sejarah ujian belakang untuk menilai parameter
Idea keseluruhan strategi ini jelas. Ia menilai arah trend melalui SMA dan menggunakan ATR untuk mengesan trend dengan kawalan penarikan yang baik. Ia sesuai untuk perdagangan trend jangka menengah dan panjang. Tetapi parameter masih memerlukan penyesuaian yang betul dalam perdagangan langsung, dan risiko terlalu optimasi harus dicegah.
/*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")