Strategi Pelacakan Tren Ganda adalah strategi komposit yang menggabungkan indikator Supertrend, Double Exponential Moving Average (DEMA) dan Bollinger Bands.
Strategi ini terdiri dari tiga bagian utama:
Indikator Supertrend: Menghitung garis pecah ke atas dan garis pecah ke bawah untuk menentukan arah tren saat ini. Ini menghasilkan sinyal beli ketika harga keluar ke atas dari garis supertrend, dan sinyal jual ketika harga keluar ke bawah.
Double Exponential Moving Average (DEMA): Indikator pelacakan tren yang menggabungkan fitur rata-rata bergerak sederhana dan rata-rata bergerak eksponensial, yang dapat merespons perubahan harga lebih cepat.
Bollinger Bands: Mewakili rentang fluktuasi harga. Kontraksi atau perluasan Bollinger Bands yang tidak normal menandakan potensi pembalikan tren.
Ketika indikator Supertrend dan DEMA keduanya mengeluarkan sinyal beli/jual, strategi memasuki posisi yang sesuai.
Kombinasi dari beberapa indikator mengurangi sinyal palsu.
Indikator Supertrend tidak sensitif terhadap perubahan harga kecil dan hanya menghasilkan sinyal pada titik perubahan tren, menghindari frekuensi perdagangan yang berlebihan.
DEMA curve halus secara akurat dan dapat diandalkan menilai tren jangka panjang.
Bollinger Bands membantu dalam menentukan titik pembalikan tren.
Parameter supertrend yang terlalu sensitif dapat menghasilkan lebih banyak kebisingan.
Periode DEMA yang panjang menghasilkan tren yang buruk mengikuti kemampuan dapat menguji periode yang lebih pendek seperti 100 hari.
Sinyal yang tidak konsisten ketika menggabungkan penilaian dari beberapa indikator.
Uji periode ATR yang berbeda dan parameter multiplier untuk menemukan kombinasi optimal untuk indikator supertrend.
Optimalkan parameter periode DEMA.
Tambahkan indikator tambahan lainnya seperti KDJ, MACD dll.
Memperkenalkan strategi stop loss.
Strategi Pelacakan Tren Ganda menggabungkan kekuatan Supertrend, DEMA dan Bollinger Bands dengan menggunakan beberapa indikator, meningkatkan kualitas sinyal sambil menangkap tren.
/*backtest start: 2023-01-09 00:00:00 end: 2024-01-15 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Supertrend + DEMA + Bollinger Bands", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, precision=2) // Input parameters for Supertrend atrLength = input(title="ATR Period", type=input.integer, defval=12) src = input(hl2, title="Source") multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0) changeATR = input(title="Change ATR Calculation Method?", type=input.bool, defval=true) showSupertrend = input(title="Show Supertrend Indicator?", type=input.bool, defval=true) // Input parameters for DEMA demaLength = input(200, title="DEMA Period") showDEMA = input(title="Show DEMA Indicator?", type=input.bool, defval=true) // Calculate ATR for Supertrend atr2 = sma(tr, atrLength) atr = changeATR ? atr(atrLength) : atr2 // Calculate Supertrend up = src - (multiplier * atr) up1 = nz(up[1], up) up := close[1] > up1 ? max(up, up1) : up dn = src + (multiplier * atr) dn1 = nz(dn[1], dn) dn := close[1] < dn1 ? 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 // Plot Supertrend upPlot = plot(showSupertrend ? (trend == 1 ? up : na) : 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 ? 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(showSupertrend ? (trend == 1 ? na : dn) : na, 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 ? 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)) mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0) longFillColor = (trend == 1 ? color.new(color.green, 80) : color.new(color.white, 0)) shortFillColor = (trend == -1 ? color.new(color.red, 80) : color.new(color.white, 0)) fill(mPlot, upPlot, title="UpTrend Highlighter", color=longFillColor) fill(mPlot, dnPlot, title="DownTrend Highlighter", color=shortFillColor) // Alert conditions alertcondition(buySignal, title="Custom Supertrend Buy", message="Custom Supertrend Buy!") alertcondition(sellSignal, title="Custom Supertrend Sell", message="Custom Supertrend Sell!") // Calculate DEMA ema1 = ema(close, demaLength) dema = 2 * ema1 - ema(ema1, demaLength) // Plot DEMA with white color plot(showDEMA ? dema : na, color=color.new(color.white, 0), title="DEMA", linewidth=2) // Add push notification on mobile if buy and sell occurred if (buySignal) strategy.entry("Buy", strategy.long) strategy.exit("Sell") alert("Buy Signal - Supertrend") if (sellSignal) strategy.entry("Sell", strategy.short) strategy.exit("Cover") alert("Sell Signal - Supertrend")