Strategi Pelacakan Tren Dual

Penulis:ChaoZhang, Tanggal: 2024-01-16 15:03:55
Tag:

img

Gambaran umum

Strategi Pelacakan Tren Ganda adalah strategi komposit yang menggabungkan indikator Supertrend, Double Exponential Moving Average (DEMA) dan Bollinger Bands.

Logika Strategi

Strategi ini terdiri dari tiga bagian utama:

  1. 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.

  2. 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.

  3. 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.

Keuntungan

  1. Kombinasi dari beberapa indikator mengurangi sinyal palsu.

  2. Indikator Supertrend tidak sensitif terhadap perubahan harga kecil dan hanya menghasilkan sinyal pada titik perubahan tren, menghindari frekuensi perdagangan yang berlebihan.

  3. DEMA curve halus secara akurat dan dapat diandalkan menilai tren jangka panjang.

  4. Bollinger Bands membantu dalam menentukan titik pembalikan tren.

Risiko dan Solusi

  1. Parameter supertrend yang terlalu sensitif dapat menghasilkan lebih banyak kebisingan.

  2. Periode DEMA yang panjang menghasilkan tren yang buruk mengikuti kemampuan dapat menguji periode yang lebih pendek seperti 100 hari.

  3. Sinyal yang tidak konsisten ketika menggabungkan penilaian dari beberapa indikator.

Arahan Optimasi

  1. Uji periode ATR yang berbeda dan parameter multiplier untuk menemukan kombinasi optimal untuk indikator supertrend.

  2. Optimalkan parameter periode DEMA.

  3. Tambahkan indikator tambahan lainnya seperti KDJ, MACD dll.

  4. Memperkenalkan strategi stop loss.

Ringkasan

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")


Lebih banyak