
La Stratégie de Réversion de Tendance basée sur la Vague Réelle moyenne de Renko (Renko ATR Trend Reversal Strategy) est une stratégie de négociation unique qui vise à identifier les points de revers de tendance sur les marchés financiers en utilisant le graphique Renko combiné avec l’indicateur de Vague Réelle moyenne (ATR). Cette stratégie élimine le problème de la traçabilité du graphique Renko et permet de capturer avec précision les points de revers et de fournir un signal clair pour les décisions de négociation.
La stratégie commence par calculer la valeur de l’ATR sur une période donnée, puis définit la taille du bloc de Renko avec cet ATR comme référence. Un nouveau bloc de Renko est dessiné lorsque le prix change au-delà d’un ATR. De cette façon, Renko est capable de s’adapter automatiquement à la volatilité du marché, en définissant une taille de bloc plus grande pour les hautes fluctuations et une taille de bloc plus petite pour les basses.
Un signal de vente est généré lorsque le prix d’ouverture de Renko est inférieur au prix de clôture et un signal de vente lorsque le prix d’ouverture de Renko est supérieur au prix de clôture. Ces signaux marquent un potentiel renversement de tendance.
La stratégie définit le prix d’arrêt et le prix d’arrêt pour chaque transaction en fonction des pourcentages de stop loss et de stop loss définis par l’utilisateur, en utilisant le prix d’ouverture de Renko comme référence dynamique et en contrôlant les risques et les gains de chaque transaction.
Cette stratégie élimine le problème de la cartographie en retard en calculant manuellement les prix d’ouverture et de fermeture de Renko, ce qui rend la génération du signal plus précise et plus rapide.
Le réglage de la taille de bloc Renko basé sur l’indicateur ATR permet à la stratégie de s’adapter automatiquement à la volatilité des prix dans différentes conditions de marché.
La stratégie définit des mécanismes de stop-loss et de stop-loss dynamiques pour chaque transaction, permettant de contrôler le risque en fonction de la volatilité du marché.
Le graphique Renko lui-même permet de filtrer le bruit du marché et d’identifier le renversement de tendance en fournissant un effet visuel clair et concis.
Les utilisateurs doivent optimiser des paramètres tels que le cycle ATR, le pourcentage de stop-loss et le pourcentage de stop-loss pour s’adapter à différents environnements de marché. Si les paramètres sont mal configurés, cela peut entraîner une mauvaise efficacité de la stratégie.
Les événements économiques majeurs ou les politiques publiques peuvent entraîner une hausse rapide de l’offre, ce qui peut entraîner une rupture du seuil d’arrêt ou d’arrêt, entraînant des pertes plus importantes.
Dans certains cas, un revers déterminé par un signal de négociation peut échouer et ne pas pousser les prix dans la direction opposée, ce qui entraîne des pertes.
Il est possible d’évaluer les grandes tendances à des périodes plus élevées et d’éviter les transactions à contre-courant. Il est également possible de filtrer les faux signaux à des périodes plus basses.
En combinaison avec des indicateurs de dynamique, d’oscillation, etc., il est possible d’améliorer la qualité du signal et d’éviter les signaux erronés.
Le taux d’arrêt peut être ajusté dynamiquement en fonction de la volatilité du marché et de la distance entre le dernier prix et le point d’entrée.
La stratégie de renversement de tendance basée sur l’amplitude d’onde réelle moyenne de Renko utilise avec succès le graphique Renko combiné avec l’indicateur ATR pour identifier automatiquement les points de basculement dans les marchés financiers. Cette stratégie présente des avantages tels que l’élimination de la traçabilité, l’adaptation automatique à la volatilité du marché et le stop loss dynamique.
/*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))