
La stratégie est un système de trading à haute fréquence combinant un indicateur de la ceinture de Brin et une rupture de prix. La stratégie consiste à surveiller la relation entre la position du prix et la ceinture de Brin, en combinant les signaux de rupture des hauts et des bas de la période précédente, pour effectuer des transactions inversées en cas de survente du marché.
La logique centrale de la stratégie est basée sur deux conditions de jugement principales: un signal de multiplication est déclenché lorsque le prix dépasse le sommet précédent et que le sommet précédent est situé en dessous de la courbe de Brin; un signal de vide est déclenché lorsque le prix dépasse le bas du sommet précédent et que le bas du sommet précédent est situé au-dessus de la courbe de Brin. Les paramètres de la courbe de Brin utilisent une moyenne mobile à 20 cycles avec un écart de 2 fois la norme pour déterminer la portée des fluctuations du marché et le système de zone de survente des zones de survente. Après le déclenchement du signal de transaction, les points d’arrêt et de cible correspondants sont automatiquement définis et affichés visuellement à travers des lignes de différents styles.
Il s’agit d’un système de négociation complet intégrant plusieurs concepts d’analyse technique. La stratégie est capable de capturer des opportunités de retournement dans les zones de survente et de survente du marché grâce à la combinaison d’indicateurs de la ceinture de Brin et de ruptures de prix. Bien qu’il existe un certain espace d’optimisation, le cadre de base du système présente une bonne extensibilité et une valeur pratique.
/*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)