SuperTrend dan DEMA Berbasis Tren Mengikuti Strategi

Penulis:ChaoZhang, Tanggal: 2023-12-08 16:42:14
Tag:

img

Gambaran umum

Strategi ini menggabungkan indikator SuperTrend dan indikator DEMA untuk menerapkan strategi perdagangan yang mengikuti tren. Ini menghasilkan sinyal beli ketika harga menembus band atas dan sinyal jual ketika harga menembus band bawah. Indikator DEMA digunakan untuk menyaring sinyal palsu. Strategi ini bekerja dengan baik untuk pasar tren dan dapat secara efektif mengikuti tren dan menyaring konsolidasi.

Logika Strategi

Inti dari strategi ini bergantung pada indikator SuperTrend untuk menentukan arah tren harga. Indikator SuperTrend menggabungkan indikator ATR dan dapat secara efektif mengidentifikasi tren harga. Ketika harga naik, band atas akan terbentuk, dan ketika harga turun, band bawah akan terbentuk. Pemecahan dari band bawah menandakan pembalikan tren dan menghasilkan sinyal beli. Pemecahan dari band atas menandakan pembalikan tren dan menghasilkan sinyal jual.

Untuk menyaring sinyal palsu, strategi ini juga menggabungkan indikator DEMA. Sinyal beli hanya dihasilkan ketika harga menembus pita atas dan berada di atas garis DEMA. Sinyal jual hanya dihasilkan ketika harga menembus pita bawah dan berada di bawah garis DEMA. Ini secara efektif menyaring sinyal palsu di pasar berkisar.

Secara khusus, logika sinyal perdagangan adalah sebagai berikut:

  1. Penembusan dari band bawah menandakan pembalikan tren dan menghasilkan sinyal beli.
  2. Penembusan dari band atas menandakan pembalikan tren dan menghasilkan sinyal jual.
  3. Sinyal beli yang sebenarnya hanya dihasilkan ketika sinyal beli muncul dan harga berada di atas garis DEMA.
  4. Sinyal jual yang sebenarnya hanya dihasilkan ketika sinyal jual muncul dan harga berada di bawah garis DEMA.

Melalui desain logika ini, strategi dapat mengikuti tren di pasar tren dan menghindari sering membuka posisi di berbagai pasar.

Keuntungan dari Strategi

  • Menggabungkan keuntungan dari indikator SuperTrend dan DEMA untuk mencapai trend berikut dan penyaringan sinyal.
  • Mudah untuk mengoptimalkan parameter SuperTrend untuk produk dan kerangka waktu yang berbeda.
  • Mudah untuk mengoptimalkan parameter DEMA tanpa pengujian berulang.
  • Cocok untuk pasar tren, dapat mengikuti tren secara efektif.
  • Sinyal palsu di pasar yang berbeda disaring oleh indikator DEMA.
  • Logika sederhana dan mudah dipahami dan dimodifikasi.

Risiko dari Strategi

  • Tidak bisa menangani fluktuasi harga yang ekstrim dengan baik.
  • Mungkin mengalami kerugian ketika tren berbalik.
  • Pengaturan parameter DEMA yang tidak tepat dapat melewatkan titik masuk / keluar terbaik.
  • Parameter SuperTrend yang tidak tepat seperti periode ATR dapat menghasilkan sinyal palsu.

Manajemen Risiko:

  • Mengoptimalkan parameter DEMA dan SuperTrend.
  • Gunakan perintah stop loss untuk membatasi kerugian.
  • Tambahkan mekanisme konfirmasi di titik-titik kunci untuk menghindari sinyal palsu.

Bidang Peningkatan

Strategi dapat ditingkatkan dari aspek berikut:

  1. Optimasi parameter SuperTrend. Uji kombinasi periode ATR yang berbeda untuk menemukan parameter optimal.

  2. Optimasi parameter DEMA. Uji nilai yang berbeda untuk menentukan pengaturan yang optimal.

  3. Tambahkan mekanisme stop loss. Atur stop loss berdasarkan nilai ATR untuk mencegah stop oversized.

  4. Tambahkan filter sinyal. Tingkatkan konfirmasi dari indikator lain pada titik kunci untuk mencegah sinyal palsu. Misalnya, tambahkan konfirmasi volume pada titik pembalikan tren.

  5. Memperbaiki ukuran posisi, menyesuaikan ukuran secara dinamis berdasarkan volatilitas pasar dan risiko.

Kesimpulan

Strategi ini menggabungkan kekuatan dari indikator SuperTrend dan DEMA untuk menerapkan strategi perdagangan kuantitatif berdasarkan tren mengikuti dan penyaringan sinyal. Ada ruang yang cukup untuk optimasi melalui penyesuaian parameter, stop loss, dan filter sinyal untuk lebih meningkatkan stabilitas dan profitabilitas. Logika strategi sederhana dan mudah diterapkan dengan risiko yang dapat dikendalikan.


/*backtest
start: 2023-11-07 00:00:00
end: 2023-12-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Krish\'s Supertrend Strategy', overlay=true)

// Supertrend Settings
Periods = input(title='ATR Period', defval=10)
src = input(hl2, title='Source')
Multiplier = input.float(title='ATR Multiplier', step=0.1, defval=3.0)
changeATR = input(title='Change ATR Calculation Method ?', defval=true)
showsignals = input(title='Show Buy/Sell Signals ?', defval=true)
highlighting = input(title='Highlighter On/Off ?', defval=true)

atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2

up = src - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up

dn = src + Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn

trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend

upPlot = plot(trend == 1 ? up : na, title='Up Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0))
buySignal = trend == 1 and trend[1] == -1

plotshape(buySignal ? up : na, title='UpTrend Begins', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.green, 0))
plotshape(buySignal and showsignals ? up : na, title='Buy', text='Buy', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.new(color.white, 0))

dnPlot = plot(trend == 1 ? na : dn, title='Down Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
sellSignal = trend == -1 and trend[1] == 1

plotshape(sellSignal ? dn : na, title='DownTrend Begins', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.red, 0))
plotshape(sellSignal and showsignals ? dn : na, title='Sell', text='Sell', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.new(color.white, 0))

// DEMA Settings
dema_length = 200
dema = ta.ema(close, dema_length)

// Long and Short Conditions
longCondition = buySignal and close > dema
shortCondition = sellSignal and close < dema

// Strategy Entry and Exit
strategy.entry('Long', strategy.long, when=longCondition)
strategy.entry('Short', strategy.short, when=shortCondition)

strategy.close('Long', when=ta.change(trend) or close < dema)
strategy.close('Short', when=ta.change(trend) or close > dema)

// Plotting
mPlot = plot(ohlc4, title='', style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? trend == 1 ? color.green : color.white : color.white
shortFillColor = highlighting ? trend == -1 ? color.red : color.white : color.white

fill(mPlot, upPlot, title='UpTrend Highlighter', color=longFillColor, transp=90)
fill(mPlot, dnPlot, title='DownTrend Highlighter', color=shortFillColor, transp=90)

// Alerts (using plotshape for alerts in strategies)
plotshape(buySignal, title='SuperTrend Buy', color=color.new(color.green, 0), style=shape.triangleup, size=size.small)
plotshape(sellSignal, title='SuperTrend Sell', color=color.new(color.red, 0), style=shape.triangledown, size=size.small)
changeCond = trend != trend[1]
plotshape(changeCond, title='SuperTrend Direction Change', color=color.new(color.yellow, 0), style=shape.triangleup, size=size.small)




Lebih banyak