Эта стратегия генерирует торговые сигналы на основе индикатора Болинджерских полос и управляет позициями с использованием стоп-лосса/take-profit. Она отслеживает прорыв верхних и нижних полос Болинджерских полос, идет на длинный курс, когда цена превышает верхний диапазон, идет на короткий, когда цена превышает нижний диапазон, и выходит, когда цена превышает полосы в обратном направлении с использованием ордеров стоп-лосса.
Стратегия использует средние, верхние и нижние полосы от индикатора Болинджерских полос. Средняя полоса - скользящая средняя, верхняя полоса - средняя полоса плюс 2 стандартных отклонения, а нижняя полоса - средняя полоса минус 2 стандартных отклонения.
Сначала он рассчитывает средние, верхние и нижние полосы Боллингеровской полосы. Затем он проверяет, переходит ли цена выше верхней полосы или ниже нижней полосы. Если цена переходит выше верхней полосы, она идет на длинный. Если цена переходит ниже нижней полосы, она идет на короткий. Кроме того, если цена переходит полосы в обратном направлении, она выходит из позиций с помощью ордеров стоп-лосса.
В частности, логика стратегии заключается:
Это позволяет улавливать тенденции, когда цена совершает большие движения, ограничивая при этом потери с помощью стоп-лосса.
Может оптимизировать с помощью комбинации индикаторов, регулирования стоп-лосс и т.д.
Это относительно простая стратегия, основанная на полосах Боллинджера. Он может быстро занять позиции, когда цена прорывается, и использует стоп-лосс для контроля риска. Но полагаясь только на цену, это может привести к ошибочным оценкам, в то время как чувствительный стоп-лосс может увеличить частоту торговли. Мы можем еще больше улучшить его с помощью настройки параметров, сочетания индикаторов, корректировки стоп и т. Д. В целом он обеспечивает простую и надежную структуру квантовой торговли.
/*backtest start: 2023-09-26 00:00:00 end: 2023-10-26 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © ROBO_Trading //@version=5 strategy(title = "Bollinger Stop Strategy", shorttitle = "BBStop", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 10000, default_qty_value = 100, commission_value = 0.1) //Settings long = input(true) short = input(true) length = input.int(20, minval=1) mult = input.float(2.0, minval=0.001, maxval=50) source = input(close) showbb = input(true, title = "Show Bollinger Bands") showof = input(true, title = "Show Offset") startTime = input(defval = timestamp("01 Jan 2000 00:00 +0000"), title = "Start Time", inline = "time1") finalTime = input(defval = timestamp("31 Dec 2099 23:59 +0000"), title = "Final Time", inline = "time1") //Bollinger Bands basis = ta.sma(source, length) dev = mult * ta.stdev(source, length) upper = basis + dev lower = basis - dev //Show indicator offset = showof ? 1 : 0 colorBasis = showbb ? color.gray : na colorUpper = showbb ? color.blue : na colorLower = showbb ? color.blue : na colorBands = showbb ? color.blue : na p0 = plot(basis, "Basis", color = colorBasis, offset = offset) p1 = plot(upper, "Upper", color = colorUpper, offset = offset) p2 = plot(lower, "Lower", color = colorLower, offset = offset) fill(p1, p2, title = "Background", color = colorBands, transp = 90) //Trading truetime = true if basis > 0 and truetime if long strategy.entry("Long", strategy.long, stop = upper, when = truetime) if short strategy.entry("Short", strategy.short, stop = lower, when = truetime) if long == false strategy.exit("Exit", "Short", stop = upper) if short == false strategy.exit("Exit", "Long", stop = lower) if time > finalTime strategy.close_all()