Strategi ini menggunakan parameter SAR (stop loss reversal) dalam kombinasi dengan EMA rata-rata untuk memfilter dan meningkatkan akurasi sinyal perdagangan. Strategi ini cocok untuk pedagang yang mengikuti tren.
Sebuah sinyal multipel dihasilkan ketika SAR berada di bawah harga dan harga lebih tinggi dari EMA rata-rata lambat ditambah deflection; Sebuah sinyal kosong dihasilkan ketika SAR berada di atas harga dan harga lebih rendah dari EMA rata-rata lambat deflection. Pada saat yang sama, melalui persilangan antara EMA rata-rata cepat dan EMA rata-rata lambat untuk melakukan penyaringan tambahan.
Secara khusus, kondisi pemicu untuk melakukan sinyal ganda adalah: 1) SAR berada di bawah harga penutupan kemarin dan berada di atas harga penutupan saat ini; 2) harga penutupan saat ini lebih tinggi dari rata-rata EMA lambat ditambah deflection atau melewati rata-rata EMA lambat di bawah rata-rata EMA cepat; 3) harga penutupan saat ini lebih tinggi dari nilai SAR dan rata-rata EMA lambat ditambah deflection.
Triggering kondisi untuk sinyal penutupan adalah: 1) SAR berada di atas harga penutupan kemarin dan berada di bawah harga penutupan saat ini; 2) harga penutupan saat ini berada di bawah pergeseran penurunan rata-rata EMA lambat atau melewati rata-rata EMA lambat pada rata-rata EMA cepat; 3) harga penutupan saat ini berada di bawah nilai SAR dan pergeseran penurunan rata-rata EMA lambat.
Strategi ini menggabungkan indikator SAR dan filter EMA linear untuk lebih mengidentifikasi arah tren dan mengurangi sinyal palsu.
Keuntungan adalah sebagai berikut:
Strategi ini juga memiliki beberapa risiko, terutama sebagai berikut:
Strategi ini dapat dioptimalkan dalam beberapa hal:
Strategi ini menggabungkan keunggulan indikator SAR dan EMA rata-rata untuk merancang strategi pelacakan tren yang lebih fleksibel. Secara keseluruhan, strategi ini memiliki kemampuan yang lebih kuat untuk berhasil mengidentifikasi arah tren dan dapat memperoleh efek yang lebih baik dalam pelacakan tren. Dengan optimasi parameter dan manajemen risiko, stabilitas dan profitabilitas strategi dapat ditingkatkan lebih lanjut.
/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("SAR Trend Trader Strategy By: jhanson107", shorttitle="SAR Trend Trader Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
SlowEMALength = input(100, "Slow EMA Length")
FastEMALength = input(10, "Fast EMA Length")
emaoffset = input(1.00, "EMA Offset %")
start = input(0.01)
increment = input(0.005)
maximum = input(0.08)
////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE
// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2019, title = "From Year", minval = 1970)
// To Date Inputs
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
////////////////////////////////////////////////////////////////////////////////
psar = sar(start, increment, maximum)
ema = ema(close, SlowEMALength)
fastema = ema(close, FastEMALength)
offset = (emaoffset / 100) * ema
// Signals
long = high[1] < psar[2] and high >= psar[1] and close > ema + offset or crossunder(ema, fastema) and close > psar and close > ema + offset
short = low[1] > psar[2] and low <= psar[1] and close < ema - offset or crossover(ema, fastema) and close < psar and close < ema - offset
// Plot PSAR
plot(psar, title="PSAR", color = low < psar and not long ? green : red, trackprice=true)
//Barcolor
barcolor(close > psar and close > ema + offset and fastema > ema ? green : na)
barcolor(close > psar and close < ema + offset or close > psar and fastema < ema ? white : na)
barcolor(close < psar and close < ema - offset and fastema < ema and close? red : na)
barcolor(close < psar and close > ema - offset or close < psar and fastema > ema ? white : na)
//Plot EMA
plot(ema, color=blue, linewidth=1, transp=0, title="Slow EMA")
plot(fastema, color=purple, linewidth=1, transp=0, title="Fast EMA")
if(high > psar)
strategy.close("Short")
if(low < psar)
strategy.close("Long")
if(long and time_cond)
strategy.entry("Long", strategy.long, comment="Long")
if(short and time_cond)
strategy.entry("Short", strategy.short, comment="Short")
if (not time_cond)
strategy.close_all()