Эта стратегия представляет собой высокочастотную торговую систему, которая сочетает в себе индикаторы Болинджерских полос с сигналами прорыва цен. Стратегия отслеживает взаимосвязь между ценой и Болинджерскими полосами в сочетании с предыдущими высокими и низкими сигналами прорыва, чтобы выполнять обратные сделки во время условий перекупки и перепродажи на рынке. Система реализует соотношение риск-вознаграждение 1:1 для целей прибыли и потери и визуализирует ключевые уровни цен, чтобы помочь трейдерам интуитивно понять рыночные тенденции.
Основная логика стратегии основана на двух основных условиях: сигнал покупки запускается, когда цена превышает предыдущий максимум, и этот максимум находится ниже нижней полосы Боллинджера; сигнал продажи запускается, когда цена превышает предыдущий минимум, и этот минимум находится выше верхней полосы Боллинджера. Параметры полос Боллинджера используют 20-периодную скользящую среднюю с 2 стандартными отклонениями для определения диапазона волатильности рынка и областей перекупки / перепродажи. После запуска торговых сигналов система автоматически устанавливает соответствующие уровни стоп-лосса и целевых уровней, визуализируя их через различные стили линий.
Это всеобъемлющая торговая система, интегрирующая несколько концепций технического анализа. Благодаря сочетанию индикаторов полос Боллинджера и ценового прорыва стратегия может захватить возможности реверсии в перекупленных и перепроданных областях рынка.
/*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)