Die Renko ATR Trend Reversal Strategy ist ein einzigartiger Handelsansatz, der Renko-Charts in Verbindung mit dem Indikator Average True Range (ATR) verwendet, um Trendumkehrpunkte an den Finanzmärkten zu identifizieren.
Die Strategie berechnet zunächst den ATR-Wert über einen definierten Zeitraum und verwendet diesen ATR als Ziegelgröße für den Renko-Chart. Neue Renko-Ziegel werden gezogen, wenn die Kursbewegungen einen ATR übersteigen. Auf diese Weise kann sich das Renko-Chart automatisch an die Volatilität des Marktes anpassen, mit größeren Ziegelgrößen für höhere Volatilität und kleineren Ziegelgrößen für niedrigere Volatilitätsperioden.
Ein Kaufsignal wird erzeugt, wenn der offene Preis des Renko-Charts unter den Schlusskurs geht. Umgekehrt wird ein Verkaufssignal erzeugt, wenn der offene Preis über den Schlusskurs geht. Diese Signale markieren potenzielle Trendumkehrpunkte.
Die Strategie setzt dynamisch Stop-Loss- und Take-Profit-Niveaus für jeden Trade als Prozentsatz des Renko-Open-Preises, basierend auf benutzerdefinierten Eingabeparametern. Dies steuert das Risiko und die Belohnung für jeden Trade.
Durch die manuelle Berechnung der Eröffnungs- und Schlusskurs wird das Nachmalen eliminiert, wodurch die Signale genauer und zeitnaher werden.
Die ATR-basierte Blockgröße ermöglicht es der Strategie, sich automatisch an unterschiedliche Marktvolatilitätsbedingungen anzupassen.
Der dynamische Mechanismus zur Festlegung von Stop-Loss- und Take-Profit-Levels ermöglicht eine bessere Risikokontrolle auf der Grundlage der Marktvolatilität.
Das Renko-Chart filtert Marktlärm aus und bietet ein klares Bild, um Trendumkehrungen zu erkennen.
Benutzer müssen Parameter wie ATR-Periode, Stop Loss % und Take Profit % für verschiedene Marktumgebungen optimieren.
Wichtige Ereignisse in der Nachrichtenbranche oder politische Veröffentlichungen können zu einem schnellen Abstieg über den Stop-Loss hinaus oder zu einem Gewinnrückgang führen, was zu großen Verlusten führt.
In einigen Fällen kann das angekündigte Umkehrmuster sich nicht verwirklichen und zu Verlustgeschäften führen.
Höhere Zeitrahmen können verwendet werden, um die Richtung des allgemeinen Trends zu messen.
Die Kombination von Momentum, Volatilität oder anderen Indikatoren kann die Signalqualität verbessern und falsche Signale vermeiden.
Die Gewinnquote kann dynamisch anhand der Marktvolatilität und des Abstands zwischen Einstiegspreis und aktuellem Preis angepasst werden.
Die Renko ATR Trend Reversal Strategie nutzt erfolgreich Renko-Charts mit ATR-Indikator, um automatisch Trendumkehrpunkte an den Finanzmärkten zu erkennen. Zu den wichtigsten Vorteilen gehören die Eliminierung von Ummalungen, die automatische Anpassung an sich ändernde Volatilität und dynamischer Stop-Loss / Take-Profit. Allerdings müssen sich die Benutzer vor Parameteroptimierungsrisiken, Ereignisrisiken und fehlgeschlagenen Umkehrrisiken hüten. Weitere Verbesserungen können die Verwendung mehrerer Zeitrahmen, die Kombination anderer Indikatoren und die dynamische Gewinnbereinigung umfassen.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title='[tradinghook] - Renko Trend Reversal Strategy', shorttitle='[tradinghook] - Renko TRS', overlay=true ,initial_capital = 100, commission_value = 0.05, default_qty_value = 5) // INPUTS renkoATRLength = input.int(10, minval=1, title='ATR Length') stopLossPct = input.float(3, title='Stop Loss Percentage', step=0.1) takeProfitPct = input.float(20, title='Take Profit Percentage', step=0.1) startDate = input(timestamp("01 July 2023 00:00"), title="Start Date") endDate = input(timestamp("31 Dec 2025 23:59"), title="End Date") enableShorts = input.bool(true, title="Enable Shorts") var float stopLossPrice = na var float takeProfitPrice = na atr = ta.atr(renkoATRLength) // thanks to https://www.tradingview.com/script/2vKhpfVH-Renko-XZ/ for manually calculating renkoClose and renkoOpen in order to remove repaint getRenkoClose() => p1 = 0.0 p1 := close > nz(p1[1]) + atr ? nz(p1[1]) + atr : close < nz(p1[1]) - atr ? nz(p1[1]) - atr : nz(p1[1]) p1 Renko3() => p3 = 0.0 p3 := open > nz(p3[1]) + atr ? nz(p3[1]) + atr : open < nz(p3[1]) - atr ? nz(p3[1]) - atr : nz(p3[1]) p3 getRenkoOpen() => open_v = 0.0 Br_2 = Renko3() open_v := Renko3() != Renko3()[1] ? Br_2[1] : nz(open_v[1]) open_v renkoOpen = getRenkoOpen() renkoClose = getRenkoClose() // COLORS colorGreen = #089981 colorRed = #F23645 bgTransparency = 95 bgColorRed = color.new(colorRed, bgTransparency) bgColorGreen = color.new(colorGreen, bgTransparency) lineColor = renkoClose < renkoOpen ? colorRed : colorGreen bgColor = renkoClose < renkoOpen ? bgColorRed : bgColorGreen // PLOTS plot(renkoOpen, title="Renko Open", style=plot.style_line, linewidth=2, color=lineColor) bgcolor(bgColor) // SIGNALS isWithinTimeRange = true buySignal = ta.crossunder(renkoOpen, renkoClose) and isWithinTimeRange sellSignal = ta.crossover(renkoOpen, renkoClose) and isWithinTimeRange and enableShorts if (buySignal) stopLossPrice := renkoOpen * (1 - stopLossPct / 100) takeProfitPrice := renkoOpen * (1 + takeProfitPct / 100) strategy.entry("Long", strategy.long) strategy.exit("ExitLong", "Long", stop = stopLossPrice, limit = takeProfitPrice, comment="SL: " + str.tostring(stopLossPrice) + ", TP: " + str.tostring(takeProfitPrice)) if (sellSignal) stopLossPrice := renkoOpen * (1 + stopLossPct / 100) takeProfitPrice := renkoOpen * (1 - takeProfitPct / 100) strategy.entry("Short", strategy.short) strategy.exit("ExitShort", "Short", stop = stopLossPrice, limit = takeProfitPrice, comment="SL: " + str.tostring(stopLossPrice) + ", TP: " + str.tostring(takeProfitPrice))