Cette stratégie intègre les bandes de Bollinger, l'indicateur RSI et l'analyse de plusieurs délais pour capturer la direction des tendances à moyen et long terme. Elle identifie les points d'inversion de tendance à travers les ruptures de bandes de Bollinger combinées avec des signaux de surachat / survente du RSI pour une entrée à faible risque. Pendant ce temps, des délais plus longs sont appliqués pour filtrer les marchés variés et éviter d'être piégés.
Appliquez des bandes de Bollinger pour déterminer les écarts de prix. La bande du milieu est la moyenne mobile du prix de clôture sur N jours. Les bandes supérieure et inférieure sont placées à une distance d'un écart type de chaque côté de la bande du milieu.
Incorporer l'indicateur RSI pour identifier les niveaux de surachat/survente. RSI supérieur à 70 suggère des conditions de surachat tandis que inférieur à 30 suggère des conditions de survente. Une rupture à la hausse au-dessus de 70 confirme l'affaiblissement de l'élan haussier. Une rupture à la baisse au-dessous de 30 confirme l'affaiblissement de l'élan à la baisse.
Utilisez des délais plus longs pour filtrer les fausses fuites. Lorsqu'un signal de fuite apparaît sur le calendrier quotidien, il nécessite une confirmation supplémentaire des délais de 4 heures ou plus pour éviter d'être piégé.
L'intégration de plusieurs indicateurs améliore la stabilité et la rentabilité de la stratégie.
L'inclusion du RSI atténue les pertes liées aux fausses ruptures.
L'analyse multi-temporelle filtre efficacement les différents marchés et empêche de se retrouver pris au piège.
La détermination optimisée du signal de rupture (ruptures sur 3 barres consécutives) garantit une maturité de tendance suffisante avant les entrées.
L'indicateur de vortex détermine très tôt la direction de la tendance naissante.
Une paramétrisation insuffisante des bandes de Bollinger conduit à des signaux erronés de surachat/survente.
Les valeurs raisonnables des paramètres RSI doivent être déterminées séparément pour les différents produits.
Les signaux de rupture peuvent s'avérer être de fausses ruptures.
Maintenir une marge de stop loss suffisante, par exemple 3 fois ATR.
Appliquer des algorithmes d'apprentissage automatique pour régler automatiquement les paramètres des bandes de Bollinger et du RSI.
Optimiser les niveaux de stop loss en fonction des indicateurs de volatilité.
Incorporer un module de dimensionnement des positions pour calibrer les expositions en fonction de l'évolution des conditions du marché.
Limiter les pertes maximales par transaction sur la base des principes de gestion de l'argent.
Évaluer la stabilité du signal à travers les différentes sessions de négociation.
Cette stratégie examine de manière exhaustive la détermination des tendances, les conditions de surachat/survente et plusieurs délais pour contrôler les risques tout en recherchant un moment d'entrée optimal pour capturer des tendances à moyen et long terme de haute qualité pour des profils de risque-rendement attrayants.
/*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"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Noway0utstorm //@version=5 strategy(title='Vortex0.71.3 + bb 3bar breakout + rsi - close hit upper or lower', shorttitle='truongphuthinh', format=format.price, precision=4,overlay = true) length = input(20, title="Length") mult = input(2.0, title="Multiplier") source = close basis = ta.sma(source, length) dev = mult * ta.stdev(source, length) upperBand = basis + dev lowerBand = basis - dev isClosedBar = ta.change(time("15")) var bool closeAboveUpperBand = false var bool closeBelowLowerBand = false // Vortex Indicator Settings period_ = input.int(14, title='Period', minval=2) VMP = math.sum(math.abs(high - low[1]), period_) VMM = math.sum(math.abs(low - high[1]), period_) STR = math.sum(ta.atr(1), period_) VIP = VMP / STR VIM = VMM / STR // lengthrsi = input(14, title="RSI Length") overboughtLevel = input(70, title="Overbought Level") oversoldLevel = input(30, title="Oversold Level") sourcersi = close rsiValue = ta.rsi(sourcersi, lengthrsi) shouldShort = rsiValue > overboughtLevel shouldLong = rsiValue < oversoldLevel if bool(isClosedBar[1]) and bool(isClosedBar[2]) and bool(isClosedBar[3]) if close[1] > upperBand[1] and close[2] > upperBand[2] and close[3] > upperBand[3] and VIP > 1.25 and VIM < 0.7 and rsiValue > overboughtLevel strategy.entry("Short", strategy.short) closeAboveUpperBand := false // Reset the condition when entering a new Short position if close[1] < lowerBand[1] and close[2] < lowerBand[2] and close[3] < lowerBand[3] and VIP < 0.7 and VIM > 1.25 and rsiValue < oversoldLevel strategy.entry("Long", strategy.long) closeBelowLowerBand := false // Reset the condition when entering a new Long position if strategy.position_size > 0 // Check if there is an open Long position closeAboveUpperBand := close > upperBand // Update the condition based on close price if closeAboveUpperBand strategy.close("Long",disable_alert=true) // Close the Long position if close price is above upper band if strategy.position_size < 0 // Check if there is an open Short position closeBelowLowerBand := close < lowerBand // Update the condition based on close price if closeBelowLowerBand strategy.close("Short",disable_alert=true) // Close the Short position if close price is below lower band // Plots plot(basis, color=color.orange, title="Basis") p1 = plot(upperBand, color=color.blue, title="Upper Band") p2 = plot(lowerBand, color=color.blue, title="Lower Band") fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))