
Strategi ini menggabungkan indikator SuperTrend dan indikator DEMA untuk mencapai strategi perdagangan yang mengikuti tren. Strategi ini menghasilkan sinyal beli ketika harga melampaui lintasan, dan menghasilkan sinyal jual ketika harga jatuh dari lintasan, dengan filter indikator DEMA untuk memfilter sinyal palsu. Strategi ini digunakan untuk perilaku yang berorientasi pada tren, dan dapat secara efektif melacak tren, memfilter getaran.
Strategi ini terutama didasarkan pada indikator SuperTrend untuk menentukan arah tren harga. Indikator SuperTrend dikombinasikan dengan indikator ATR, yang dapat secara efektif menentukan tren harga. Ketika harga naik, tren akan terbentuk, dan ketika harga turun, tren akan terbentuk.
Strategi ini juga menggabungkan indikator DEMA untuk memfilter sinyal misreport. Sinyal beli hanya dihasilkan ketika harga melampaui jalur atas dan di atas garis DEMA; Sinyal jual hanya dihasilkan ketika harga jatuh dari jalur bawah dan di bawah garis DEMA. Ini dapat secara efektif memfilter sinyal palsu di pasar yang bergoyang.
Secara khusus, logika sinyal trading dari strategi ini adalah sebagai berikut:
Dengan desain logis seperti itu, Anda dapat bertahan dalam tren dan menghindari sering membuka posisi di pasar yang bergoyang.
Solusi untuk Mengatasi Risiko:
Strategi ini dapat dioptimalkan dalam beberapa hal:
Pengoptimalan parameter indikator SuperTrend. Anda dapat menguji parameter siklus ATR yang berbeda untuk menemukan kombinasi parameter yang optimal.
Optimalisasi parameter indikator DEMA. Anda dapat menguji parameter yang berbeda untuk menentukan pengaturan parameter yang optimal.
Meningkatkan mekanisme stop loss. Anda dapat mengatur stop loss berdasarkan nilai ATR untuk menghindari stop loss yang terlalu besar.
Tambahkan aturan penyaringan sinyal. Anda dapat menambahkan konfirmasi indikator lain pada titik-titik penting, untuk menghindari sinyal yang salah. Misalnya, konfirmasi indikator peningkatan energi kuantitatif pada titik-titik perubahan tren.
Mengoptimalkan manajemen posisi. Posisi dapat disesuaikan dengan dinamika volatilitas pasar dan kondisi risiko.
Strategi ini mengintegrasikan keunggulan indikator SuperTrend dan indikator DEMA, dan memungkinkan strategi perdagangan kuantitatif berdasarkan pelacakan tren dan pemfilteran sinyal. Ada ruang yang luas untuk mengoptimalkan strategi, dan langkah-langkah seperti optimasi parameter, mekanisme stop loss, dan pemfilteran sinyal dapat meningkatkan stabilitas dan profitabilitas 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)