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