SuperTrend dan DEMA Berasaskan Trend Mengikuti Strategi

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

img

Ringkasan

Strategi ini menggabungkan penunjuk SuperTrend dan penunjuk DEMA untuk melaksanakan trend mengikuti strategi perdagangan. Ia menghasilkan isyarat beli apabila harga menembusi jalur atas dan isyarat jual apabila harga menembusi jalur bawah. Indikator DEMA digunakan untuk menapis isyarat palsu. Strategi ini berfungsi dengan baik untuk pasaran trend dan dapat dengan berkesan mengikuti trend dan menapis penyatuan.

Logika Strategi

Inti strategi ini bergantung kepada penunjuk SuperTrend untuk menentukan arah trend harga. Penunjuk SuperTrend menggabungkan penunjuk ATR dan dapat mengenal pasti trend harga dengan berkesan. Apabila harga naik, jalur atas akan terbentuk, dan apabila harga jatuh, jalur bawah akan terbentuk. Penembusan dari jalur bawah menandakan pembalikan trend dan menghasilkan isyarat beli. Penembusan dari jalur atas menandakan pembalikan trend dan menghasilkan isyarat jual.

Untuk menapis isyarat palsu, strategi ini juga menggabungkan penunjuk DEMA. Isyarat beli hanya dihasilkan apabila harga menembusi jalur atas dan berada di atas garis DEMA. Isyarat jual hanya dihasilkan apabila harga menembusi jalur bawah dan berada di bawah garis DEMA. Ini berkesan menapis isyarat palsu di pasaran berkisar.

Secara khusus, logik isyarat dagangan adalah seperti berikut:

  1. Penembusan dari band bawah menandakan pembalikan trend dan menghasilkan isyarat beli.
  2. Penembusan dari band atas menandakan pembalikan trend dan menghasilkan isyarat jual.
  3. Isyarat beli sebenar hanya dihasilkan apabila isyarat beli muncul dan harga berada di atas garis DEMA.
  4. Isyarat jual sebenar hanya dihasilkan apabila isyarat jual muncul dan harga berada di bawah garis DEMA.

Melalui reka bentuk logik ini, strategi boleh mengikuti trend di pasaran yang sedang berkembang dan mengelakkan kerap membuka kedudukan di pasaran yang berbeza.

Kelebihan Strategi

  • Menggabungkan kelebihan penunjuk SuperTrend dan DEMA untuk mencapai trend berikut dan penapisan isyarat.
  • Mudah untuk mengoptimumkan parameter SuperTrend untuk produk dan jangka masa yang berbeza.
  • Mudah untuk mengoptimumkan parameter DEMA tanpa ujian berulang.
  • Sesuai untuk pasaran trend, boleh mengikuti trend dengan berkesan.
  • Isyarat palsu dalam pasaran yang berbeza disaring oleh penunjuk DEMA.
  • Logik yang mudah difahami dan diubahsuai.

Risiko Strategi

  • Tidak boleh menangani turun naik harga yang melampau dengan baik.
  • Mungkin mengalami kerugian apabila trend berbalik.
  • Tetapan parameter DEMA yang tidak sesuai mungkin terlepas titik masuk/keluar terbaik.
  • Parameter SuperTrend yang tidak sesuai seperti tempoh ATR boleh menghasilkan isyarat palsu.

Pengurusan Risiko:

  • Mengoptimumkan parameter DEMA dan SuperTrend.
  • Gunakan perintah stop loss untuk mengehadkan kerugian.
  • Tambah mekanisme pengesahan di titik utama untuk mengelakkan isyarat palsu.

Kawasan Peningkatan

Strategi ini boleh ditingkatkan dari aspek berikut:

  1. Pengoptimuman parameter SuperTrend. Uji kombinasi tempoh ATR yang berbeza untuk mencari parameter yang optimum.

  2. DEMA parameter pengoptimuman. Uji nilai yang berbeza untuk menentukan tetapan optimum.

  3. Tambah mekanisme stop loss. Tetapkan stop loss berdasarkan nilai ATR untuk mengelakkan berhenti yang terlalu besar.

  4. Tambah penapis isyarat. Tingkatkan pengesahan dari penunjuk lain pada titik utama untuk mengelakkan isyarat palsu. Sebagai contoh, tambah pengesahan jumlah pada titik pembalikan trend.

  5. Meningkatkan saiz kedudukan. Sesuaikan saiz secara dinamik berdasarkan turun naik pasaran dan risiko.

Kesimpulan

Strategi ini menggabungkan kekuatan penunjuk SuperTrend dan DEMA untuk melaksanakan strategi perdagangan kuantitatif berdasarkan trend berikut dan penapisan isyarat. Terdapat ruang yang cukup untuk pengoptimuman melalui penyesuaian parameter, stop loss, dan penapisan isyarat untuk meningkatkan lagi kestabilan dan keuntungan. Logik strategi adalah mudah dan mudah dilaksanakan dengan risiko yang boleh dikawal. Ia sesuai untuk perdagangan langsung.


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