Strategi ini menggunakan parameter SAR (stop loss reversal) parasol yang digabungkan dengan EMA rata-rata untuk penapisan dan meningkatkan ketepatan isyarat perdagangan. Strategi ini sesuai untuk peniaga yang mengikuti trend.
Apabila SAR berada di bawah harga dan harga lebih tinggi daripada EMA rata-rata perlahan-lahan dan harga lebih rendah daripada EMA rata-rata perlahan-lahan, ia menghasilkan isyarat tanda kosong. Pada masa yang sama, penapisan tambahan dilakukan melalui persilangan antara EMA rata-rata pantas dan EMA rata-rata perlahan-lahan. Ini dapat mengelakkan isyarat palsu yang mungkin berlaku apabila indikator SAR digunakan secara berasingan.
Khususnya, syarat pemicu untuk membuat banyak isyarat adalah: 1) SAR berada di bawah harga penutupan semalam dan berada di atas harga penutupan semasa; 2) harga penutupan semasa lebih tinggi daripada EMA rata-rata perlahan ditambah perpindahan atau EMA rata-rata pantas di bawah EMA rata-rata perlahan; 3) harga penutupan semasa lebih tinggi daripada nilai SAR dan EMA rata-rata perlahan ditambah perpindahan.
Syarat pemicu isyarat kosong adalah: 1) SAR berada di atas harga penutupan semalam dan berada di bawah harga penutupan semasa; 2) harga penutupan semasa berada di bawah pergerakan penurunan rata-rata EMA perlahan atau melintasi EMA perlahan di atas garis EMA pantas; 3) harga penutupan semasa berada di bawah nilai SAR dan pergerakan penurunan rata-rata EMA perlahan.
Strategi ini digabungkan dengan penapis SAR dan EMA untuk mengenal pasti arah trend dan mengurangkan isyarat palsu.
Kelebihan:
Strategi ini juga mempunyai beberapa risiko, seperti:
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Strategi ini menggabungkan kelebihan indikator SAR dan garis rata EMA untuk merancang strategi pengesanan trend yang lebih fleksibel. Secara keseluruhan, strategi ini mempunyai keupayaan yang lebih baik untuk berjaya mengenal pasti arah trend dan dapat memperoleh kesan yang lebih baik dalam trend pengesanan.
/*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()