SuperTrend Bollinger Bands Dual Moving Average Strategi perdagangan

Penulis:ChaoZhang, Tanggal: 2024-02-23 13:58:36
Tag:

img

Gambaran umum

Strategi ini mengintegrasikan beberapa indikator teknis, termasuk Supertrend, Dual Moving Average (DEMA), dan Bollinger Bands, untuk memanfaatkan kekuatan mereka dan menghasilkan sinyal perdagangan yang lebih akurat.

Logika Strategi

Strategi ini menggunakan ATR 12 periode dan rata-rata harga untuk menghitung band atas dan bawah Supertrend dan mengidentifikasi sinyal panjang dan pendek ketika harga menembus band tersebut. Sementara itu, DEMA 200 periode berfungsi sebagai indikator tambahan untuk penilaian tren. Selain itu, Bollinger Bands membantu menentukan waktu optimal untuk entri dan stop loss.

Sinyal beli dihasilkan ketika harga pecah di atas band atas. Sinyal jual dihasilkan ketika harga pecah di bawah band bawah. Ketika harga pecah melalui band atas atau bawah Supertrend, penanda dan teks Buy atau Sell akan digambarkan di band yang sesuai.

DEMA digambarkan di atas atau di bawah kurva harga dengan warna putih untuk menilai arah tren pasar secara keseluruhan.

Bollinger Bands digunakan untuk mengidentifikasi waktu terbaik untuk masuk dan menghentikan kerugian. Band atas dan bawahnya membentuk saluran yang mencakup fluktuasi harga, yang membantu menentukan kapan harga telah menyimpang dari kisaran normal mereka, yaitu menjadi terlalu volatile.

Setelah memasuki perdagangan, strategi menggunakan metode stop loss dan take profit untuk mengunci keuntungan atau mengurangi kerugian dengan menetapkan harga stop loss dan mengambil harga profit untuk pengurangan posisi secara otomatis.

Analisis Keuntungan

Mengintegrasikan beberapa indikator memungkinkan strategi ini untuk memanfaatkan kekuatan individu mereka untuk menghasilkan sinyal perdagangan yang lebih akurat.

Supertrend mampu menyaring kebisingan pasar dan menghindari perdagangan berlebihan. DEMA dapat menentukan arah tren umum dan mencegah perdagangan melawan tren. Bollinger Bands menentukan waktu optimal untuk entri dan stop loss.

Pemberitahuan seluler memungkinkan permintaan perdagangan tepat waktu. Stop loss otomatis dan mengambil keuntungan memungkinkan penguncian keuntungan dan memotong kerugian.

Analisis Risiko

Integrasi dari beberapa indikator meningkatkan kompleksitas strategi dan kemungkinan kesalahan. pengaturan parameter indikator juga dapat menyebabkan kehilangan peluang perdagangan atau menghasilkan sinyal palsu.

Selain itu, pengaturan stop loss yang terlalu agresif dapat memperkuat kerugian. Stabilitas peringatan seluler juga berdampak pada efektivitas pengambilan keuntungan dan stop loss yang tepat waktu.

Arahan Optimasi

Kombinasi parameter yang berbeda dapat diuji untuk menemukan set parameter optimal. Parameter juga dapat disesuaikan berdasarkan kondisi pasar yang berbeda.

Mencoba menggunakan indikator individu secara mandiri dapat mengurangi sinyal palsu. indikator tambahan juga dapat ditambahkan untuk optimasi lebih lanjut.

Kriteria stop loss dan take profit juga dikenakan penyesuaian seperti trailing stop loss dan partial stop loss.

Ringkasan

Strategi ini menggabungkan kekuatan dari beberapa indikator teknis untuk generasi sinyal perdagangan dan memiliki kepraktisan yang relatif tinggi.


/*backtest
start: 2024-01-23 00:00:00
end: 2024-02-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Scriptâ„¢ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © zhuenrong

//@version=4
strategy("Supertrend + DEMA + Bollinger Bands", overlay=true)

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


// === Stop LOSS ===

if strategy.position_size>0
    strategy.exit("Stop Loss/Profit Long","Buy", stop=strategy.position_avg_price*100, limit=strategy.position_avg_price*1.1)
if strategy.position_size<0
    strategy.exit("Stop Loss/Profit Short","Sell", stop=strategy.position_avg_price*100, limit=strategy.position_avg_price*1.1)

Lebih banyak