Cette stratégie est un système de négociation à haute fréquence qui combine les indicateurs de Bollinger Bands avec des signaux de rupture de prix. La stratégie surveille la relation entre le prix et les Bollinger Bands, combinée à des signaux de rupture de points élevés et bas précédents, pour exécuter des transactions d'inversion pendant les conditions de surachat et de survente du marché. Le système implémente un rapport risque-rendement de 1: 1 pour les objectifs de profit et de perte, et visualise les niveaux de prix clés pour aider les traders à comprendre intuitivement les tendances du marché.
La logique de base de la stratégie est basée sur deux conditions principales: un signal d'achat est déclenché lorsque le prix dépasse le niveau le plus élevé précédent et que ce niveau est en dessous de la bande de Bollinger inférieure; un signal de vente est déclenché lorsque le prix dépasse le niveau le plus bas précédent et que ce niveau le plus bas est au-dessus de la bande de Bollinger supérieure.
Il s'agit d'un système de trading complet intégrant plusieurs concepts d'analyse technique. Grâce à la combinaison d'indicateurs de Bollinger Bands et de ruptures de prix, la stratégie peut capturer des opportunités d'inversion dans les zones de surachat et de survente du marché. Bien qu'il y ait place à l'optimisation, le cadre de base du système a une bonne extensibilité et une bonne valeur pratique. Grâce à une bonne gestion des risques et à l'optimisation des paramètres, cette stratégie a le potentiel d'obtenir des rendements stables dans le trading réel.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-03 00:00:00 period: 2d basePeriod: 2d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Band Scalping", overlay=true) // Input for Bollinger Bands length and standard deviation bbLength = input(20, title="Bollinger Bands Length") stdDev = input(2.0, title="Bollinger Bands Std Dev") // Calculate and plot the Bollinger Bands basis = ta.sma(close, bbLength) deviation = stdDev * ta.stdev(close, bbLength) upperBB = basis + deviation lowerBB = basis - deviation // Get previous candle's values prevHigh = high[1] // Previous candle high prevLow = low[1] // Previous candle low // Buy Signal Condition: Current high crossed above previous high and previous high is below the lower Bollinger Band buyCondition = ta.crossover(high, prevHigh) and (prevHigh < lowerBB[1]) // Sell Signal Condition: Current low crossed below previous low and previous low is above the upper Bollinger Band sellCondition = ta.crossunder(low, prevLow) and (prevLow > upperBB[1]) // Entry and exit for Buy signals if (buyCondition) strategy.entry("Buy", strategy.long) // Calculate target and stop loss stopLossPrice = prevLow targetPrice = prevHigh + (prevHigh - stopLossPrice) // 1:1 RR target // Set stop loss and target orders strategy.exit("Sell", "Buy", limit=targetPrice, stop=stopLossPrice) // // Plot entry line // line.new(x1=bar_index, y1=prevHigh, x2=bar_index + 12, y2=prevHigh, color=color.green, width=2, style=line.style_solid) // // Plot stop loss line // line.new(x1=bar_index, y1=stopLossPrice, x2=bar_index + 12, y2=stopLossPrice, color=color.red, width=1, style=line.style_dashed) // // Plot target line // line.new(x1=bar_index, y1=targetPrice, x2=bar_index + 12, y2=targetPrice, color=color.blue, width=2, style=line.style_solid) // Entry and exit for Sell signals if (sellCondition) strategy.entry("Sell", strategy.short) // Calculate target and stop loss stopLossPriceSell = prevHigh targetPriceSell = prevLow - (stopLossPriceSell - prevLow) // 1:1 RR target // Set stop loss and target orders strategy.exit("Cover", "Sell", limit=targetPriceSell, stop=stopLossPriceSell) // // Plot entry line // line.new(x1=bar_index, y1=prevLow, x2=bar_index + 12, y2=prevLow, color=color.red, width=2, style=line.style_solid) // // Plot stop loss line // line.new(x1=bar_index, y1=stopLossPriceSell, x2=bar_index + 12, y2=stopLossPriceSell, color=color.green, width=1, style=line.style_dashed) // // Plot target line // line.new(x1=bar_index, y1=targetPriceSell, x2=bar_index + 12, y2=targetPriceSell, color=color.blue, width=2, style=line.style_solid) // Plotting Bollinger Bands with 70% transparency plot(upperBB, color=color.red, title="Upper Bollinger Band", transp=70) plot(lowerBB, color=color.green, title="Lower Bollinger Band", transp=70) plot(basis, color=color.blue, title="Middle Band", transp=70)