
Die Renko ATR Trend Reversal Strategy ist eine einzigartige Trading-Strategie, mit der Trend-Reversalpunkte in den Finanzmärkten identifiziert werden können. Die Strategie beseitigt die Probleme mit der Verzögerung der Abbildung von Renko-Charts und ist in der Lage, Wendepunkte genau zu erfassen und klare Signale für Handelsentscheidungen zu liefern.
Die Strategie berechnet zunächst die ATR-Werte innerhalb eines bestimmten Zeitraums und setzt die Blockgröße des Renko-Diagramms auf diese ATR als Basis. Wenn sich der Preis über eine ATR bewegt, werden neue Renko-Blöcke gezeichnet. Auf diese Weise kann der Renko-Diagramm automatisch an die Schwankungen des Marktes angepasst werden, indem er eine größere Blockgröße bei hohen Schwankungen und eine kleinere Blockgröße bei niedrigen Schwankungen festlegt.
Wenn der Renko-Betriebspreis unter dem Schließungspreis liegt, erzeugt er ein Kaufsignal; wenn der Renko-Betriebspreis über dem Schließungspreis liegt, erzeugt er ein Verkaufsignal. Diese Signale markieren einen potenziellen Trendwendepunkt.
Die Strategie setzt die Stop-Loss- und Stop-Off-Preise für jede Einheit dynamisch auf Basis der vom Benutzer definierten Stop-Loss- und Stop-Off-Prozentsätze, wobei der Renko-Eröffnungspreis als Basis verwendet wird, um das Risiko und den Gewinn pro Einheit zu kontrollieren.
Die Strategie beseitigt die Probleme der Lag-Mapping durch manuelle Berechnung der Renko-Eröffnungs- und Schließungspreise, wodurch die Erzeugung von Signalen genauer und zeitgerechter wird.
Die Renko-Blockgröße basierend auf dem ATR-Indikator ermöglicht die automatische Anpassung der Strategie an die Preisschwankungen unter verschiedenen Marktbedingungen.
Die Strategie setzt dynamische Stop-Loss- und Stop-Stop-Mechanismen für jeden einzelnen Handel ein, um das Risiko in Abhängigkeit von der Volatilität des Marktes zu kontrollieren.
Die Renko-Diagramme selbst filtern Marktlärm aus und bieten eine klare und präzise visuelle Wirkung, wenn Trends umgedreht werden.
Benutzer müssen die Parameter wie ATR-Zyklus, Stop-Loss-Prozent und Stop-Out-Prozent optimieren, um sich an unterschiedliche Marktumgebungen anzupassen. Wenn die Parameter nicht richtig eingestellt sind, kann dies zu einer schlechten Strategie führen.
Schwerwiegende wirtschaftliche Ereignisse oder politische Entscheidungen können zu einem schnellen Anstieg führen, wodurch die Stop-Loss- oder Stop-Out-Ebene überschritten wird, was zu größeren Verlusten führt.
In einigen Fällen kann die von den Handelssignalen festgelegte Umkehrung fehlschlagen und nicht dazu beitragen, dass die Preise in eine umgekehrte Richtung gehen, was zu Verlusten führt.
Es ist möglich, die großen Trends in höheren Zeiträumen zu beurteilen und Rückschläge zu vermeiden. Es ist auch möglich, falsche Signale in niedrigeren Zeiträumen zu filtern.
In Kombination mit Dynamik- und Schwankungsmessgeräten kann die Qualität des Signals verbessert und Fehlsignale vermieden werden.
Die Stop-Stop-Rate kann dynamisch angepasst werden, je nachdem, wie stark der Markt schwankt und wie weit der aktuelle Preis vom Einstiegspunkt entfernt ist.
Die Trend-Umkehr-Strategie basierend auf der realen Wellenlänge des Renko-Durchschnitts nutzt die Renko-Charts in Kombination mit dem ATR-Indikator erfolgreich, um automatisch Wendepunkte in den Finanzmärkten zu identifizieren. Die Strategie bietet Vorteile wie die Beseitigung von Verzögerungskartographien, die automatische Anpassung an die Marktvolatilität und die dynamische Stop-Loss-Stufe.
/*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))