Strategi Pelacakan Tren SAR Parabolik

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

img

Gambaran umum

Strategi ini menggunakan indikator Parabolic SAR (Stop and Reverse) dikombinasikan dengan penyaringan EMA untuk meningkatkan akurasi sinyal.

Logika Strategi

Sinyal panjang dipicu ketika SAR berada di bawah harga dan harga berada di atas EMA lambat ditambah offset. Sinyal pendek dipicu ketika SAR berada di atas harga dan harga berada di bawah EMA lambat dikurangi offset. Crossover antara EMA cepat dan EMA lambat memberikan penyaringan tambahan. Ini menghindari sinyal palsu ketika menggunakan SAR saja.

Secara khusus, kondisi masuk panjang adalah:

  1. SAR di bawah penutupan sebelumnya dan di atas penutupan saat ini;
  2. Penutupan saat ini berada di atas EMA lambat ditambah offset atau EMA cepat melintasi di bawah EMA lambat;
  3. Penutupan saat ini di atas nilai SAR dan EMA lambat ditambah offset.

Syarat masuk singkat adalah:

  1. SAR berada di atas penutupan sebelumnya dan di bawah penutupan saat ini;
  2. Penutupan saat ini berada di bawah EMA lambat dikurangi offset atau EMA cepat melintasi di atas EMA lambat;
  3. Penutupan saat ini di bawah nilai SAR dan EMA lambat dikurangi offset.

Analisis Keuntungan

Menggabungkan SAR dan EMA penyaringan, strategi ini dapat mengidentifikasi arah tren dengan baik dan mengurangi sinyal palsu.

Manfaatnya adalah:

  1. SAR dapat merespons perubahan harga dengan cepat dan mengidentifikasi titik pembalikan tren.
  2. Penyaringan EMA selanjutnya mengkonfirmasi arah tren dan menghindari sinyal palsu ketika menggunakan SAR saja.
  3. Crossover antara EMA cepat dan lambat memberikan akurasi sinyal tambahan.
  4. Profitabilitas dapat ditingkatkan melalui optimasi parameter.

Analisis Risiko

Ada beberapa risiko untuk strategi ini:

  1. SAR dan EMA dapat menghasilkan sinyal yang salah selama pasar yang terikat kisaran, yang berdampak pada profitabilitas.
  2. EMA memiliki efek keterlambatan dan dapat melewatkan titik masuk terbaik ketika tren berbalik.
  3. Stop loss dapat dipukul dengan mudah selama volatilitas tinggi, menyebabkan kerugian yang lebih tinggi.

Arahan Optimasi

Strategi ini dapat dioptimalkan dari aspek berikut:

  1. Mengoptimalkan parameter SAR seperti langkah dan maksimum untuk membuatnya lebih sensitif.
  2. Mengoptimalkan periode EMA lambat dan cepat untuk menemukan kombinasi yang optimal.
  3. Mengoptimalkan offset EMA untuk mengurangi sinyal palsu.
  4. Tambahkan indikator lain seperti MACD dan KDJ untuk penyaringan dan akurasi tambahan.
  5. Mengoptimalkan strategi stop loss untuk mengurangi kerugian per perdagangan.

Kesimpulan

Strategi ini menggabungkan kekuatan SAR dan EMA untuk merancang sistem trend berikut yang fleksibel. Secara keseluruhan memiliki kemampuan deteksi tren yang baik dan bekerja dengan baik dalam melacak tren. Peningkatan lebih lanjut dalam optimasi parameter dan manajemen risiko dapat meningkatkan stabilitas dan profitabilitas.


/*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 banyak