Die Renko Yin Yang Quant Trading Strategie ist eine kurzfristige Handelsstrategie, die auf der Intraday-Preis-Volumen-Beziehung basiert.
Die Strategie berechnet die offenen, schließenden, hohen und niedrigen Preise jedes Handelstages und erzeugt Renko-Steine zusammen mit dem ATR-Indikator.
Insbesondere berechnet die Strategie zunächst den Eröffnungspreis o2 und den Schlusskurs c2 der Renko-Steine. Wenn o2
Um falsche Ausbrüche zu filtern, zählt die Strategie auch die Anzahl der Perioden der letzten Yang- und Yin-Linie. Wenn die Yang-Linie mehr Perioden hat, ist das Signal zuverlässiger.
Renko-Steine filtern Marktlärm und machen Handelssignale klarer.
Die Kombination der Preis-Volumen-Beziehung vermeidet das Risiko eines falschen Ausbruchs.
Das DAPM-Modell ist für den Intraday-Handel einfach und effektiv.
Anpassungsfähige ATR-Parameter passen die Handelsfrequenz an.
Ein anpassbarer Stop-Loss verbessert das Risikomanagement.
Es besteht immer noch die Gefahr eines unklaren falschen Ausbruchs.
Eine unsachgemäße Einstellung der Renko-Parameter kann Trends verpassen oder die Handelsfrequenz erhöhen.
Ein zu enger Stop-Loss kann durch einen geringfügigen Rückzug gestoppt werden.
Es sollte in Betracht gezogen werden, andere technische Indikatoren zu kombinieren, um Signale zu filtern.
Überlegen Sie, ob Sie eine Stop-Loss-Funktion hinzufügen.
Optimierung der Parameter für verschiedene Vermögenswerte.
Es sollte in Betracht gezogen werden, verschiedene Zeitrahmen für den Handel mit mehreren Zeitrahmen zu kombinieren.
Zusammenfassend ist dies eine sehr praktische kurzfristige Handelsstrategie. Sie nutzt die Preis-Volumen-Beziehung, um wichtige Wendepunkte effizient zu filtern und zu erfassen. Die richtige Parameter-Tuning, das Risikomanagement und die Stop-Loss-Strategie können ihre Stabilität und Rentabilität erheblich verbessern. Mit kontinuierlicher Optimierung und Testung kann diese Strategie zu einem leistungsstarken Werkzeug für Intraday-Händler werden.
/*backtest start: 2022-09-26 00:00:00 end: 2023-09-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License https://creativecommons.org/licenses/by-sa/4.0/ // © dman103 strategy(title="Renko Strategy V2", shorttitle="Renko Strategy V2", overlay=true,precision=3, commission_value=0.025, default_qty_type=strategy.cash, default_qty_value=10000, initial_capital=10000) // Version 2.0 of my previous renko strategy using Renko calculations, this time without Tilson T3 and without using security with Renko to remove repaints! // Seems to work nicely on cryptocurrencies on higher time frames. //== Description == // Strategy gets Renko values and uses renko close and open to trigger signals. // Base on these results the strategy triggers a long and short orders, where green is uptrending and red is downtrending. // This Renko version is based on ATR, you can Set ATR (in settings) to adjust it. // == Notes == // Supports alerts. // Supports backtesting time ranges. // Shorts are disabled by default (can be enabled in settings). // Link to previous Renko strategy V1: https://www.tradingview.com/script/KeWBWLGT-Renko-Strategy-T3-V1/ // // Stay tuned for version V3 in the future as i have an in progress prototype, Follow to get updated: https://www.tradingview.com/u/dman103/#published-scripts // === INPUT BACKTEST RANGE === useDate = input(true, title='---------------- Trade Range ----------------', type=input.bool) FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2017, title = "From Year", minval = 2000) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 2099, title = "To Year", minval = 2010) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create settings = input(true, title='---------------- Settings ----------------', type=input.bool) allow_short = input(false,title="Allow Short") atr_len = input(10,"ATR Length") atr = atr(atr_len) // Thanks to renko snippet calculations from @RafaelZioni https://www.tradingview.com/script/2vKhpfVH-Renko-XZ/ Renko1() => 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 Renko2() => p2 = 0.0 Br_1 = Renko1() p2 := Renko1() != Renko1()[1] ? Br_1[1] : nz(p2[1]) p2 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 Renko4() => open_v = 0.0 Br_2 = Renko3() open_v := Renko3() != Renko3()[1] ? Br_2[1] : nz(open_v[1]) open_v o2 = Renko4() c2 = Renko1() l2 =low h2 = high //=== Plotting === crossPlot= 0.0 if (o2 < c2) crossPlot :=o2 else crossPlot := o2 // Used to make sure that even if o2 and c2 are equal, the result (short or long) will be based on previous trend. bars_since_up=barssince(o2 < c2) bars_since_down=barssince(o2 > c2) go_long= (bars_since_up<bars_since_down) and o2<c2 go_short = (bars_since_up>bars_since_down) and o2>c2 plotColor = go_long and o2<c2 ? color.green : go_short and o2>c2? color.red : color.white plot(crossPlot, color = plotColor, style = plot.style_circles, linewidth = 2,join=true) changeCond = plotColor != plotColor[1] //=== Buy/Sell === closeStatus = strategy.openprofit > 0 ? "win" : "lose" long_entry = plotColor == color.green and window() and changeCond long_exit_entry = plotColor == color.red //or (allow_alternative_sl and close < low_result ) short_entry = plotColor == color.red and window() and changeCond short_exit_entry = plotColor == color.green // or (allow_alternative_sl and close > high_result ) strategy.entry("long", true, when = long_entry) strategy.close("long",when=long_exit_entry,comment=closeStatus) if (allow_short) strategy.entry("short",false, when = short_entry) strategy.close("short",when=short_exit_entry,comment=closeStatus) //=== Alerts === alertcondition(go_long and changeCond , title='Renko Buy Signal', message='Renko Revered to Buy Signal') alertcondition(go_short and changeCond , title='Renko Sell Signal', message='Renko Revered to Sell Signal')