
Strategi ini menggabungkan penunjuk SuperTrend dan penunjuk DEMA, untuk mewujudkan strategi perdagangan mengikuti trend. Ia menghasilkan isyarat beli apabila harga melebihi rel, menghasilkan isyarat jual apabila harga jatuh di bawah rel, menggabungkan isyarat palsu penapis penapis DEMA.
Strategi ini berdasarkan kepada indikator SuperTrend untuk menentukan arah trend harga. Indikator SuperTrend yang digabungkan dengan indikator ATR, dapat menentukan trend harga dengan berkesan. Apabila harga naik, ia akan membentuk tren tinggi, dan apabila harga turun, ia akan membentuk tren rendah.
Untuk menapis isyarat palsu, strategi ini juga menggabungkan penunjuk DEMA. Isyarat beli dihasilkan hanya apabila harga melampaui lintasan atas dan di atas garisan DEMA; isyarat jual dihasilkan hanya apabila harga tergelincir dan di bawah garisan DEMA. Ini dapat menapis isyarat palsu dalam pasaran yang bergolak.
Secara khusus, logik isyarat perdagangan strategi ini adalah seperti berikut:
Dengan reka bentuk logik seperti itu, anda boleh bergerak dengan baik dalam keadaan trend dan mengelakkan sering membuka kedudukan di pasaran yang bergolak.
Penyelesaian risiko:
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Pengoptimuman parameter penunjuk SuperTrend. Anda boleh menguji parameter kitaran ATR yang berbeza untuk mencari kombinasi parameter terbaik.
Pengoptimuman parameter penunjuk DEMA. Anda boleh menguji parameter yang berbeza untuk menentukan tetapan parameter terbaik.
Peningkatan mekanisme penangguhan. Anda boleh menetapkan titik penangguhan berdasarkan nilai ATR untuk mengelakkan penangguhan yang terlalu besar.
Peraturan penapisan isyarat tambahan. Anda boleh menambah pengesahan indikator lain pada titik penting, untuk mengelakkan isyarat salah. Sebagai contoh, pengesahan indikator tenaga kuantitatif yang meningkat pada titik perubahan trend.
Mengoptimumkan pengurusan kedudukan. Anda boleh menyesuaikan kedudukan anda mengikut turun naik pasaran dan keadaan risiko yang dinamik.
Strategi ini mengintegrasikan kelebihan indikator SuperTrend dan indikator DEMA, mewujudkan strategi perdagangan kuantitatif berdasarkan trend dan penapisan isyarat. Terdapat ruang yang besar untuk mengoptimumkan strategi, dan langkah-langkah seperti pengoptimuman parameter, mekanisme hentian kerugian dan penapisan isyarat dapat meningkatkan kestabilan dan keuntungan strategi.
/*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)