Diese Strategie verwendet den 5-Tage-Exponential Moving Average (EMA) und Bollinger Bands (BB), um potenzielle Handelschancen auf dem Markt zu identifizieren. Wenn der Preis über das obere Bollinger Band oder unter das untere Bollinger Band bricht und bestimmte Bedingungen erfüllt sind, generiert die Strategie Kauf- oder Verkaufssignale. Die Strategie zielt darauf ab, signifikante Preisbewegungen auf dem Markt zu erfassen, während Stop-Loss und Zielpreisniveaus zur Risikomanagement und Maximierung der Rendite verwendet werden.
Der Kern dieser Strategie besteht darin, die 5-Tage-EMA und Bollinger-Bänder zu verwenden, um Markttrends und Volatilität zu bestimmen. Wenn der Preis über den oberen Bollinger-Band bricht und das vorherige Candle
Einmal eingegeben, setzt die Strategie einen Stop-Loss-Level und eine Zielpreisstufe. Der Stop-Loss wird in die entgegengesetzte Richtung des Einstiegspreises platziert, um mögliche Verluste zu begrenzen. Die Zielpreisstufe wird auf der Grundlage einer festen Anzahl von Punkten (z. B. 1000 Punkte) berechnet, um erwartete Gewinne zu erzielen. Wenn der Preis die Stop-Loss-Level oder die Zielpreisstufe erreicht, schließt die Strategie den Handel und tritt aus der Position aus.
Die EMA- und Bollinger Bands Breakout-Strategie nutzt zwei häufig verwendete technische Indikatoren, um signifikante Preisbewegungen auf dem Markt zu erfassen. Die Strategie hat klare Einstiegsbedingungen, Risikomanagementmaßnahmen und Gewinnziele, die sie leicht zu verstehen und umzusetzen sind. Die Leistung der Strategie kann jedoch durch Marktvolatilität und trendlose Bedingungen beeinflusst werden. Durch die Einführung von adaptiven Parametern, Signalfiltermechanismen und Parameteroptimierung können die Robustheit und Rentabilität der Strategie weiter verbessert werden.
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Nifty Bank Strategy", overlay=true) // Parameters lengthEMA = 5 lengthBB = 20 multBB = 1.5 targetPoints = 1000 // Calculate 5-day EMA ema5 = ta.ema(close, lengthEMA) // Calculate Bollinger Bands (length 20, multiplier 1.5) basis = ta.sma(close, lengthBB) dev = multBB * ta.stdev(close, lengthBB) upperBB = basis + dev lowerBB = basis - dev // Define strategy variables var float entryPrice = na var float stopLoss = na var float targetPrice = na var bool inTrade = false var bool isLong = false var float triggerHigh = na var float triggerLow = na var float triggerClose = na if not inTrade // Short Entry Trigger Condition if low > ema5 and low > upperBB and high > upperBB triggerLow := low triggerHigh := high triggerClose := close label.new(bar_index, high, "Waiting for short trigger", color=color.yellow) // Long Entry Trigger Condition else if high < ema5 and high < lowerBB and low < lowerBB triggerHigh := high triggerLow := low triggerClose := close label.new(bar_index, low, "Waiting for long trigger", color=color.yellow) // Check for Short Entry if not inTrade and na(triggerClose) == false and close < triggerClose if low < triggerLow entryPrice := close stopLoss := triggerHigh targetPrice := entryPrice - targetPoints strategy.entry("Short", strategy.short) label.new(bar_index, high, "Short", color=color.red, style=label.style_label_down) inTrade := true isLong := false triggerLow := na triggerHigh := na triggerClose := na // Check for Long Entry if not inTrade and na(triggerClose) == false and close > triggerClose if high > triggerHigh entryPrice := close stopLoss := triggerLow targetPrice := entryPrice + targetPoints strategy.entry("Long", strategy.long) label.new(bar_index, low, "Long", color=color.green, style=label.style_label_up) inTrade := true isLong := true triggerLow := na triggerHigh := na triggerClose := na // Manage Short Trade if inTrade and not isLong if high >= stopLoss strategy.close("Short", comment="SL Hit") label.new(bar_index, high, "SL Hit", color=color.red, style=label.style_label_down) inTrade := false else if low <= targetPrice strategy.close("Short", comment="Target Hit") label.new(bar_index, low, "Target Hit", color=color.green, style=label.style_label_up) inTrade := false // Manage Long Trade if inTrade and isLong if low <= stopLoss strategy.close("Long", comment="SL Hit") label.new(bar_index, low, "SL Hit", color=color.red, style=label.style_label_down) inTrade := false else if high >= targetPrice strategy.close("Long", comment="Target Hit") label.new(bar_index, high, "Target Hit", color=color.green, style=label.style_label_up) inTrade := false // Plotting plot(ema5, color=color.orange, title="5-day EMA") plot(upperBB, color=color.red, title="Upper Bollinger Band") plot(lowerBB, color=color.purple, title="Lower Bollinger Band") // Plot trade entry and exit points plotshape(series=inTrade and isLong ? entryPrice : na, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal") plotshape(series=inTrade and not isLong ? entryPrice : na, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal")