SuperTrend Bollinger Bands Dual Moving Average Strategi Dagangan

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

img

Ringkasan

Strategi ini mengintegrasikan pelbagai penunjuk teknikal, termasuk Supertrend, Dual Moving Average (DEMA), dan Bollinger Bands, untuk memanfaatkan kekuatan mereka dan menghasilkan isyarat perdagangan yang lebih tepat.

Logika Strategi

Strategi ini menggunakan ATR 12 tempoh dan purata harga untuk mengira band atas dan bawah Supertrend dan mengenal pasti isyarat panjang dan pendek apabila harga memecahkan band tersebut. Sementara itu, DEMA 200 tempoh berfungsi sebagai penunjuk tambahan untuk penghakiman trend. Di samping itu, Bollinger Bands membantu menentukan masa optimum untuk kemasukan dan menghentikan kerugian.

Isyarat beli dihasilkan apabila harga pecah di atas band atas. Isyarat jual dihasilkan apabila harga pecah di bawah band bawah. Apabila harga pecah melalui band atas atau bawah Supertrend, penanda dan teks Buy atau Sell akan digambarkan di band yang sepadan. Isyarat mudah alih juga dihantar secara serentak.

DEMA digambarkan di atas atau di bawah kurva harga dalam warna putih untuk menilai arah trend pasaran secara keseluruhan.

Band Bollinger digunakan untuk mengenal pasti masa terbaik untuk masuk dan menghentikan kerugian. Band atas dan bawahnya membentuk saluran yang merangkumi turun naik harga, yang membantu menentukan apabila harga telah menyimpang dari julat normal mereka, iaitu menjadi terlalu tidak menentu.

Selepas memasuki perdagangan, strategi menggunakan kaedah stop loss dan mengambil keuntungan untuk mengunci keuntungan atau mengurangkan kerugian dengan menetapkan harga stop loss dan mengambil harga keuntungan untuk pengurangan kedudukan automatik.

Analisis Kelebihan

Mengintegrasikan beberapa penunjuk membolehkan strategi ini memanfaatkan kekuatan individu mereka untuk menjana isyarat perdagangan yang lebih tepat.

Supertrend mampu menapis bunyi bising pasaran dan mengelakkan perdagangan berlebihan. DEMA boleh menentukan arah trend umum dan mencegah perdagangan terhadap trend. Bollinger Bands menentukan masa optimum untuk kemasukan dan menghentikan kerugian.

Pemberitahuan mudah alih membolehkan arahan perdagangan tepat pada masanya. Hentikan kerugian automatik dan ambil keuntungan membolehkan kunci keuntungan dan memotong kerugian.

Analisis Risiko

Integrasi pelbagai penunjuk meningkatkan kerumitan strategi dan kebarangkalian kesilapan. Tetapan parameter penunjuk juga boleh menyebabkan peluang perdagangan hilang atau menghasilkan isyarat palsu.

Selain itu, tetapan stop loss yang terlalu agresif boleh memperkuat kerugian. Kestabilan amaran mudah alih juga memberi kesan kepada keberkesanan mengambil keuntungan dan menghentikan kerugian tepat pada masanya.

Arahan pengoptimuman

Kombinasi parameter yang berbeza boleh diuji untuk mencari set parameter yang optimum. Parameter juga boleh diselaraskan berdasarkan keadaan pasaran yang berbeza.

Mencuba menggunakan indikator individu secara bebas boleh mengurangkan isyarat palsu.

Kriteria stop loss dan mengambil keuntungan juga tertakluk kepada penyesuaian seperti trailing stop loss dan partial stop loss.

Ringkasan

Strategi ini menggabungkan kekuatan pelbagai penunjuk teknikal untuk penjanaan isyarat perdagangan dan mempunyai kepraktisan yang agak 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 lanjut