La stratégie de trading de Renko Yin Yang quant est une stratégie de trading à court terme basée sur la relation prix-volume intraday.
La stratégie calcule les prix d'ouverture, de clôture, de haut et de bas de chaque jour de négociation, et génère des briques Renko avec l'indicateur ATR.
Plus précisément, la stratégie calcule d'abord le prix d'ouverture o2 et le prix de fermeture c2 des briques Renko. Si o2
Pour filtrer les fausses ruptures, la stratégie compte également le nombre de périodes de la dernière ligne yang et yin. Si la ligne yang a plus de périodes, le signal est plus fiable.
Les briques Renko filtrent le bruit du marché et rendent les signaux de trading plus clairs.
La combinaison de la relation prix-volume évite le risque de fausse rupture.
Le modèle DAPM est simple et efficace pour les transactions intradiennes.
Paramètres ATR personnalisables pour ajuster la fréquence de négociation.
Un stop loss personnalisable améliore la gestion des risques.
Il y a toujours un risque d'évasion fausse.
Des paramètres Renko incorrects peuvent manquer les tendances ou augmenter la fréquence des transactions.
Un stop-loss trop serré peut être arrêté par un retrait mineur.
Considérez la possibilité de combiner d'autres indicateurs techniques pour filtrer les signaux.
Envisagez d'ajouter une fonctionnalité de stop loss.
Optimiser les paramètres pour différents actifs.
Considérez la possibilité de combiner différents délais pour des opérations sur plusieurs délais.
En conclusion, il s'agit d'une stratégie de trading à court terme très pratique. Elle utilise la relation prix-volume pour filtrer efficacement et capturer les points tournants clés. Un ajustement approprié des paramètres, une gestion des risques et une stratégie de stop loss peuvent grandement améliorer sa stabilité et sa rentabilité. Avec une optimisation et des tests continus, cette stratégie peut devenir un outil puissant pour les traders intraday.
/*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')