Моментная стратегия прорыва полос Боллинджера - это количественная стратегия торговли, которая сочетает в себе индикатор полос Боллинджера и индикатор скользящей средней для совершения операций прорыва в определенных условиях импульса. Стратегия в основном использует верхние и нижние рельсы полос Боллинджера для определения цен и добавляет дополнительную фильтрацию цен с движущимися средними, выдавая сигналы купли и продажи в определенных условиях импульса для совершения операций прорыва на верхних и нижних рельсах полос Боллинджера.
Стратегия основана в основном на индикаторе полос Боллинджера и индикаторе скользящей средней средней. полосы Боллинджера и скользящие средние относятся к индикаторам, следующим за трендом. полосы Боллинджера используют концепцию стандартного отклонения для изображения высокого и низкого диапазона колебаний цен. скользящая средняя сглаживает данные о ценах и оценивает направление ценовой тенденции.
Основная логика стратегии заключается в следующем:
Инициализировать параметры полос Боллинджера и рассчитать средний рельс, верхний рельс и нижний рельс.
Инициализируйте параметры скользящей средней.
Сигнал покупки: когда цена проходит через нижнюю рельсу полос Боллинджера снизу вверх, а скользящая средняя находится ниже нижней рельсы, делайте длинный ход.
Сигнал продажи: когда цена проходит через верхний рельс полос Боллинджера сверху вниз и скользящая средняя находится выше верхнего рельса, перейдите на короткий.
Сигнал выхода: когда цена вновь входит в диапазон полос Боллинджера, закрыть позицию.
Стратегия сочетает в себе использование полос Боллинджера и показателей скользящей средней для генерации торговых сигналов при определенных условиях импульса, что является типичной стратегией, следующей за трендом.
Используя полосы Боллинджера для четкого определения диапазона колебаний цен и скользящую среднюю для определения направления тренда цен, торговые сигналы, образованные комбинацией фильтрации двойных индикаторов, имеют относительно высокую надежность.
В дополнение к тому, что цена прорывается через границу полос Боллинджера, для прорыва также требуется скользящая средняя, что обеспечивает достаточную поддержку импульса, чтобы избежать ложных прорывов.
Параметры стратегии устанавливаются разумно и гибко, что позволяет корректировать параметры полос Боллинджера и циклов скользящих средних, чтобы адаптироваться к различным сортам и рыночным условиям.
Идея стратегии ясна и понятна, легко реализовать и проверить.
Показатель волатильности Bollinger Bands сам по себе имеет потенциальное отставание в быстро меняющихся тенденциях, что может генерировать недействительные торговые сигналы.
При использовании в качестве фильтрующего индикатора, настройка его параметров напрямую влияет на частоту стратегии.
Опираясь как на индикатор полос Боллинджера, так и на индикатор скользящей средней для формирования эффективных сигналов, если один из них потерпит неудачу, вся стратегия будет затронута.
Когда цены отступают, чтобы проверить границу полос Боллинджера, они склонны к ловушке.
Оптимизировать параметры полос Боллинджера для адаптации к сортам с различными циклами и волатильностью, например, изменение параметров мультипликатора периода и стандартного отклонения полос Боллинджера.
Оптимизировать параметры цикла скользящей средней для сбалансирования частоты и эффекта фильтрации.
Увеличьте стратегию стоп-лосса для контроля максимальных потерь на сделку.
Объединяется с другими индикаторами, такими как RSI и MACD, для формирования сложных индикаторов и обогащения торговых сигналов для стратегии.
Комбинируйте модели машинного обучения, чтобы помочь оценить направление ценового тренда и уровень успеха прорыва.
Эта стратегия объединяет индикатор полос Боллинджера с индикатором скользящей средней, чтобы генерировать сигналы входа и выхода после обеспечения определенного импульса ценового прорыва. Идея стратегии ясна и проста в реализации и может эффективно отслеживать тренды рынков. Но в то же время есть также определенные риски отката.
/*backtest start: 2022-12-28 00:00:00 end: 2024-01-03 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // strategy("Advanced Bollinger Bands Strategy", overlay=true) //BB Values wall1= input(defval=true,title="===BB Values===",type=input.bool) source = input(defval=close,title="BB Source",type=input.source) length = input(20,title="BB Length", minval=1) mult = input(2.0,title="BB Multiplier",minval=0.001, maxval=50) basis = sma(source, length) dev = mult * stdev(source, length) upper = basis + dev lower = basis - dev offset = input(0, " BB Offset", type = input.integer, minval = -500, maxval = 500) plot(basis, "Basis", color=#872323, offset = offset) p1 = plot(upper, "Upper", color=color.teal, offset = offset) p2 = plot(lower, "Lower", color=color.teal, offset = offset) fill(p1, p2, title = "Background", color=#198787, transp=95) //Moving Average Values wall2= input(defval=true,title="===MA Values===",type=input.bool) nfl= input(defval=14,title="Moving Average Period",type=input.integer,minval=1,maxval=100) source1= input(defval=close,title="Moving Average Source",type=input.source) noisefilter= sma(source1,nfl) plot(noisefilter,style=plot.style_line,linewidth=2,color=color.yellow,title=" Moving Average Filter") bgcolor(noisefilter<lower?color.green:noisefilter>upper?color.red:na,title="Moving Average Filter") //Strategy Conditions wall3= input(defval=true,title="===Strategy Conditions===",type=input.bool) bl= input(defval=false,title="Exit at Basis Line?",type=input.bool) nflb= input(defval=false,title="Use Moving Average Filter?",type=input.bool) //Strategy Condition buyEntry = crossover(source, lower) sellEntry = crossunder(source, upper) if (nflb?(crossover(source,lower) and noisefilter<lower): crossover(source, lower)) strategy.entry("BBandLE", strategy.long, oca_name="BollingerBands", comment="BBandLE") else strategy.cancel(id="BBandLE") if (nflb?(crossunder(source,lower) and noisefilter>upper): crossunder(source, lower)) strategy.entry("BBandSE", strategy.short, oca_name="BollingerBands", comment="BBandSE") else strategy.cancel(id="BBandSE") strategy.close_all(when=bl?crossover(source,basis) or crossunder(source,basis):crossover(source,upper) or crossunder(source,lower))