Il s'agit d'une stratégie de trading à court terme qui utilise l'indicateur ADX pour filtrer les signaux de rupture. Il va court lorsque le prix dépasse la bande supérieure de Bollinger et que l'ADX est en baisse, et va long lorsque le prix dépasse la bande inférieure de Bollinger et que l'ADX est en hausse.
Le noyau de cette stratégie consiste à utiliser des bandes de Bollinger pour les signaux de rupture. Les bandes supérieure et inférieure des bandes de Bollinger représentent deux écarts standards du prix, de sorte que les ruptures impliquent généralement que le prix entre dans une forte tendance. En outre, l'indicateur ADX est introduit ici comme un filtre pour éviter de fausses ruptures. Les signaux courts ne sont considérés que lorsque l'ADX chute tandis que les signaux longs ne sont considérés que lorsque l'ADX augmente.
Plus précisément, cette stratégie calcule les bandes de Bollinger en utilisant 33 périodes de prix de clôture. La bande du milieu est une moyenne mobile simple de 33 périodes, et les bandes supérieures/inférieures sont placées à deux écarts types au-dessus/en dessous de la bande du milieu. La stratégie signale short lorsque le prix se ferme en dessous de la bande supérieure et l'ADX de 8 périodes est en dessous de l'ADX de 15 périodes. Elle signale long lorsque le prix se ferme au-dessus de la bande inférieure et l'ADX de 8 périodes est au-dessus de l'ADX de 15 périodes. Les sorties sont fixées à 800 points de profit et 400 points d'arrêt de perte.
En tant que stratégie de rupture intégrant des filtres de tendance et de dynamique, elle présente plusieurs avantages:
Cette stratégie comporte également certains risques:
Pour atténuer ces risques, nous pouvons affiner le paramètre BB pour réduire les bandes, ajuster les périodes ADX pour éviter le sur-filtrage et réduire le stop loss pour contrôler la perte d'un seul trade.
Il est possible d'optimiser davantage:
En conclusion, il s'agit d'une stratégie de rupture simple et pratique avec filtre. Identifier les tendances avec les BB et filtrer les signaux avec ADX aide à éviter le bruit pendant les périodes d'intervalle et à saisir les opportunités de tendance dans une certaine mesure.
/*backtest start: 2023-12-27 00:00:00 end: 2024-01-03 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Hizbullah XAUUSD Sniper", overlay=true) Price = close Length = input(33) Mult = input(2) Basis = sma(Price, Length) StdDev = Mult * stdev(Price, Length) Upper = Basis + StdDev Lower = Basis - StdDev ADX_Length = input(4) TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1]))) SmoothedTrueRange = sma(TrueRange, ADX_Length) DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0 DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0 SmoothedDirectionalMovementPlus = sma(DirectionalMovementPlus, ADX_Length) SmoothedDirectionalMovementMinus = sma(DirectionalMovementMinus, ADX_Length) DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100 DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100 DX = abs(DIPlus - DIMinus) / (DIPlus + DIMinus)*100 SmoothedADX1 = ema(DX, input(8)) SmoothedADX2 = ema(DX, input(15)) Condition1 = crossunder(Price, Upper) and SmoothedADX1 < SmoothedADX2 Take_Profit = input(800) Stop_Loss = input(400) strategy.entry("ShortEntry", true, when = Condition1) strategy.exit("ShortExit", "ShortEntry", profit = Take_Profit, loss = Stop_Loss)