Renko ATR Stratégie d'inversion de tendance

Auteur:ChaoZhang est là., Date: 2024-02-01 14h30 et 24h
Les étiquettes:

img

Résumé

La stratégie d'inversion de tendance Renko ATR est une approche de trading unique qui utilise les graphiques Renko en conjonction avec l'indicateur Average True Range (ATR) pour identifier les points d'inversion de tendance sur les marchés financiers.

La logique de la stratégie

La génération Renko Brick

La stratégie calcule d'abord la valeur de l'ATR sur une période définie et utilise cet ATR comme taille de brique pour le graphique Renko. De nouvelles briques Renko sont tirées lorsque les mouvements de prix dépassent un ATR. De cette façon, le graphique Renko peut s'adapter automatiquement à la volatilité du marché, avec des tailles de briques plus grandes pour une volatilité plus élevée et des tailles de briques plus petites pour des périodes de volatilité plus faibles.

Génération de signaux d'achat et de vente

Un signal d'achat est généré lorsque le prix d'ouverture du graphique Renko dépasse le prix de clôture. Inversement, un signal de vente est généré lorsque le prix d'ouverture dépasse le prix de clôture. Ces signaux marquent des points de renversement de tendance potentiels.

Arrêtez de perdre et prenez des bénéfices

La stratégie définit dynamiquement les niveaux de stop-loss et de take-profit pour chaque transaction en pourcentage du prix d'ouverture de Renko, en fonction des paramètres d'entrée définis par l'utilisateur.

Analyse des avantages

Élimine la peinture

En calculant manuellement les prix d'ouverture et de fermeture, la repeinture est éliminée, ce qui rend les signaux plus précis et plus opportuns.

Auto-adaptation à la volatilité

La taille de la brique basée sur l'ATR permet à la stratégie de s'adapter automatiquement aux différentes conditions de volatilité du marché.

Stop-Loss dynamique et prise de profit

Le mécanisme dynamique de fixation des niveaux de stop loss et de take profit permet un meilleur contrôle des risques basé sur la volatilité du marché.

Affichage du graphique propre

Le graphique Renko filtre le bruit du marché et fournit une vue claire pour repérer les renversements de tendance.

Analyse des risques

Risques liés à l'optimisation des paramètres

Les utilisateurs doivent optimiser des paramètres tels que la période ATR, le pourcentage de stop loss et le pourcentage de profit pour différents environnements de marché.

Risques liés à des événements

Les événements d'actualité majeurs ou les communiqués de politique peuvent entraîner un glissement rapide au-delà de l'arrêt des pertes ou des niveaux de profit, entraînant des pertes importantes.

Risques de revers échoué

Dans certains cas, la tendance à l'inversion signalée peut ne pas se concrétiser, entraînant des transactions en perte.

Des possibilités d'amélioration

Utilisation de plusieurs délais

Des délais plus longs peuvent être utilisés pour mesurer la direction de la tendance globale.

Combinaison d'autres indicateurs

L'utilisation de l'élan, de la volatilité ou d'autres indicateurs en combinaison peut améliorer la qualité du signal et éviter les faux signaux.

Ajustement dynamique des bénéfices

Les ratios de prise de profit peuvent être ajustés dynamiquement en fonction de la volatilité du marché et de la distance entre le prix d'entrée et le prix courant.

Conclusion

La stratégie d'inversion de tendance Renko ATR utilise avec succès les graphiques Renko avec l'indicateur ATR pour repérer automatiquement les points d'inversion de tendance sur les marchés financiers. Les principaux avantages incluent l'élimination de la repeinture, l'adaptation automatique à la volatilité changeante et le stop loss / take profit dynamique. Cependant, les utilisateurs doivent se méfier des risques d'optimisation des paramètres, des risques d'événement et des risques d'inversion manquée.


/*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))


Plus de