Strategi Pengesanan Trend SAR Parabolik

Penulis:ChaoZhang, Tarikh: 2024-01-18 12:21:17
Tag:

img

Ringkasan

Strategi ini menggunakan indikator Parabolic SAR (Stop and Reverse) yang digabungkan dengan penapisan EMA untuk meningkatkan ketepatan isyarat.

Logika Strategi

Isyarat panjang diaktifkan apabila SAR berada di bawah harga dan harga di atas EMA perlahan ditambah offset. Isyarat pendek diaktifkan apabila SAR berada di atas harga dan harga di bawah EMA perlahan tolak offset. Persalinan antara EMA pantas dan EMA perlahan menyediakan penapisan tambahan. Ini mengelakkan isyarat palsu apabila menggunakan SAR sahaja.

Khususnya, syarat kemasukan panjang adalah:

  1. SAR adalah di bawah penutupan sebelumnya dan di atas penutupan semasa;
  2. Penutupan semasa berada di atas EMA perlahan ditambah offset atau EMA pantas melintasi di bawah EMA perlahan;
  3. Penutupan semasa di atas nilai SAR dan EMA perlahan ditambah offset.

Syarat kemasukan pendek adalah:

  1. SAR melebihi penutupan sebelumnya dan di bawah penutupan semasa;
  2. Penutupan semasa adalah di bawah EMA perlahan dikurangkan offset atau EMA pantas melintasi di atas EMA perlahan;
  3. Penutupan semasa adalah di bawah nilai SAR dan EMA perlahan tolak.

Analisis Kelebihan

Menggabungkan penapisan SAR dan EMA, strategi ini dapat mengenal pasti arah trend dengan baik dan mengurangkan isyarat palsu.

Kelebihan adalah:

  1. SAR boleh bertindak balas dengan cepat terhadap perubahan harga dan mengenal pasti titik pembalikan trend.
  2. Penapisan EMA seterusnya mengesahkan arah trend dan mengelakkan isyarat palsu apabila menggunakan SAR sahaja.
  3. Perpindahan antara EMA cepat dan perlahan memberikan ketepatan isyarat tambahan.
  4. Keuntungan boleh ditingkatkan melalui pengoptimuman parameter.

Analisis Risiko

Terdapat beberapa risiko untuk strategi ini:

  1. SAR dan EMA boleh menghasilkan isyarat yang salah semasa pasaran terikat julat, memberi kesan kepada keuntungan. Ini boleh dikurangkan melalui pengoptimuman parameter.
  2. EMA mempunyai kesan ketinggalan dan mungkin terlepas titik kemasukan terbaik apabila trend berbalik.
  3. Stop loss boleh dipukul dengan mudah semasa turun naik yang tinggi, menyebabkan kerugian yang lebih tinggi. Julat stop loss boleh diperluaskan dengan sewajarnya.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dari aspek berikut:

  1. Mengoptimumkan parameter SAR seperti langkah dan maksimum untuk menjadikannya lebih sensitif.
  2. Mengoptimumkan tempoh EMA yang perlahan dan pantas untuk mencari kombinasi yang optimum.
  3. Mengoptimumkan offset EMA untuk mengurangkan isyarat palsu.
  4. Tambah penunjuk lain seperti MACD dan KDJ untuk penapisan dan ketepatan tambahan.
  5. Mengoptimumkan strategi stop loss untuk mengurangkan kerugian setiap perdagangan.

Kesimpulan

Strategi ini menggabungkan kekuatan SAR dan EMA untuk merancang sistem trend berikut yang fleksibel. Secara keseluruhan ia mempunyai keupayaan pengesanan trend yang baik dan berfungsi dengan baik dalam mengesan trend. Penambahbaikan lanjut dalam pengoptimuman parameter dan pengurusan risiko dapat meningkatkan kestabilan dan keuntungan. Ia sesuai dengan pelabur dengan kesedaran pengurusan risiko yang baik dan kemahiran pengoptimuman.


/*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()

Lebih lanjut