La stratégie de trading de rupture de volatilité vise à capturer les ruptures de prix résultant d'une volatilité accrue du marché. La stratégie utilise l'indicateur Average True Range (ATR) pour mesurer la volatilité d'un actif sur une période spécifiée.
La stratégie calcule d'abord l'ATR sur une période choisie. Elle utilise ensuite l'ATR pour calculer un niveau de rupture supérieur et inférieur. Lorsque le prix de clôture dépasse le niveau supérieur, un signal long est généré. Lorsque le prix de clôture dépasse le niveau inférieur, un signal court est généré. Pour confirmer davantage les signaux, la barre actuelle doit se fermer pour sa partie du corps.
Lorsque le prix de clôture dépasse les niveaux supérieur ou inférieur, la zone de rupture est remplie d'une couleur indiquant la direction de la rupture.
Lorsqu'un signal long est généré et qu'il n'y a pas de position actuelle, la stratégie est longue.
L'entrée de longueur détermine la période pendant laquelle la volatilité est mesurée. Une valeur de longueur plus élevée implique de se concentrer sur des mouvements de prix plus longs. Par exemple, avec la longueur définie sur 20, chaque transaction s'étend sur environ 100 barres, capturant plusieurs oscillations.
L'abaissement de la valeur de la longueur permet de cibler les mouvements de prix à court terme et d'augmenter potentiellement la fréquence des transactions.
L'indicateur ATR calcule dynamiquement les niveaux de rupture au lieu d'utiliser des paramètres fixes.
L'utilisation de fermetures de barres solides pour confirmer les signaux filtre les fausses ruptures.
L'entrée Longueur offre une flexibilité pour optimiser la stratégie pour des conditions de marché spécifiques.
Les opérations de rupture comportent le risque d'être arrêtées.
Les signaux de rupture peuvent générer de faux signaux conduisant à un sur-échange.
L'optimisation des paramètres nécessite suffisamment de données commerciales.
Les bandes de Bollinger peuvent être introduites dans la période ATR pour calculer de nouveaux niveaux de rupture.
Les tendances peuvent être suivies après les ruptures au lieu de s'arrêter immédiatement.
Des paramètres différents ou l'évitement total des transactions peuvent être envisagés sur les marchés à fourchette pour éviter les fléchettes.
L'indicateur ATR définit dynamiquement les niveaux de rupture et les barres solides filtrent les fausses ruptures. L'entrée de longueur fournit une flexibilité pour ajuster la période de la stratégie. La stratégie convient à la tendance à moyen et long terme, mais les risques de rupture doivent être gérés par l'optimisation des paramètres.
/*backtest start: 2023-09-29 00:00:00 end: 2023-10-29 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ //@version=5 strategy("Volatility Breakout Strategy [Angel Algo]", overlay = true) // Inputs length = input(title="Length", defval=20) // Calculate the average true range (ATR) atr = ta.atr(length) // Plot the ATR on the chart plot(atr, color=color.blue, linewidth=2, title="ATR") // Calculate the upper and lower breakouts upper_breakout = high + atr lower_breakout = low - atr // Plot the upper and lower breakouts on the chart ul = plot(upper_breakout[1], color = color.new(color.green, 100), linewidth=2, title="Upper Breakout Level") ll = plot(lower_breakout[1], color = color.new(color.red, 100), linewidth=2, title="Lower Breakout Level") // Create the signals long_entry = ta.crossover(close, upper_breakout[1]) and barstate.isconfirmed short_entry = ta.crossunder(close, lower_breakout[1]) and barstate.isconfirmed active_signal_color =ta.barssince(long_entry) < ta.barssince(short_entry) ? color.new(color.green,85) : color.new(color.red,85) // Plot the signals on the chart plotshape(long_entry and ta.barssince(long_entry[1]) > ta.barssince(short_entry[1]), location=location.belowbar, style=shape.triangleup, color=color.green, size=size.normal, text = "Bullish breakout", textcolor = color.green) plotshape(short_entry and ta.barssince(long_entry[1]) < ta.barssince(short_entry[1]), location=location.abovebar, style=shape.triangledown, color=color.red, size=size.normal,text = "Bearish breakout", textcolor = color.red) // Fill the space between the upper and lower levels with the color that indicates the latest signal direction fill(ul,ll, color=active_signal_color) long_condition = long_entry and strategy.position_size <= 0 and barstate.isconfirmed short_condition = short_entry and strategy.position_size >= 0 and barstate.isconfirmed if long_condition strategy.entry("Volatility Breakout Long", strategy.long) if short_condition strategy.entry("Volatility Breakout Short", strategy.short)