Diese Strategie integriert mehrere technische Indikatoren, darunter Supertrend, Dual Moving Average (DEMA) und Bollinger Bands, um ihre Stärken zu nutzen und genauere Handelssignale zu erzeugen.
Die Strategie verwendet einen 12-Perioden-ATR und einen Preisdurchschnitt, um die oberen und unteren Bands des Supertrends zu berechnen und lange und kurze Signale zu identifizieren, wenn der Preis diese Bands durchbricht.
Kaufsignale werden erzeugt, wenn der Preis über das obere Band bricht. Verkaufsignale werden erzeugt, wenn der Preis unter das untere Band bricht. Wenn der Preis durch das obere oder untere Band des Supertrends bricht, werden Marker und der Text
Der DEMA wird über oder unter der Kurskurve in weiß dargestellt, um die allgemeine Marktentwicklung zu beurteilen.
Die Bollinger-Bänder werden verwendet, um den besten Zeitpunkt für Eintritte und Stop-Losses zu identifizieren.
Nach dem Eintritt in einen Handel nutzt die Strategie Stop-Loss- und Take-Profit-Methoden, um Gewinne zu erzielen oder Verluste zu reduzieren, indem sie den Stop-Loss-Preis und den Take-Profit-Preis für die automatische Positionsreduktion festlegt.
Die Integration mehrerer Indikatoren ermöglicht es dieser Strategie, ihre individuellen Stärken optimal zu nutzen, um genauere Handelssignale zu generieren.
Supertrend ist in der Lage, Marktlärm auszufiltern und Überhandelungen zu vermeiden.
Mobile Warnungen ermöglichen zeitnahe Handelsempfehlungen, automatische Stop-Loss- und Take-Profit-Verfahren ermöglichen das Sperren von Gewinnen und das Schneiden von Verlusten.
Die Integration mehrerer Indikatoren erhöht die Komplexität der Strategie und die Wahrscheinlichkeit von Fehlern.
Darüber hinaus können übermäßig aggressive Stop-Loss-Einstellungen die Verluste verstärken.
Es können verschiedene Parameterkombinationen getestet werden, um den optimalen Parametersatz zu finden.
Der Versuch, einzelne Indikatoren einzeln zu verwenden, kann die falschen Signale reduzieren.
Die Kriterien für den Stop-Loss und den Take-Profit unterliegen ebenfalls Anpassungen, wie zum Beispiel dem Trailing-Stop-Loss und dem partiellen Stop-Loss.
Diese Strategie kombiniert die Stärken mehrerer technischer Indikatoren für die Handelssignalgenerierung und ist relativ praktisch, aber sie birgt auch gewisse Risiken und erfordert kontinuierliche Tests und Optimierungen, um effektiv und rentabel eingesetzt zu werden.
/*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)