Стратегия прорыва полос Боллинджера Momentum


Дата создания: 2024-01-04 15:52:31 Последнее изменение: 2024-01-04 15:52:31
Копировать: 1 Количество просмотров: 642
1
Подписаться
1621
Подписчики

Стратегия прорыва полос Боллинджера Momentum

Обзор

Momentum Bollinger Bands Breakout Strategy (MBS) - это объединенная стратегия количественного трейдинга, которая использует высокие и низкие траектории в движущихся полосах для определения цены, в сочетании с движущимися средними для дополнительной ценовой фильтрации, для подачи сигнала покупки и продажи в условиях определенного количества движения.

Стратегический принцип

Эта стратегия основана на индикаторе бринговых поясов и индикаторе движущихся средних ма, которые относятся к индикаторам трендового типа. Бринговые пояса используют концепцию стандартного отклонения, чтобы изобразить высокие и низкие колебания цен.

Основная логика стратегии:

  1. Инициализация параметров ленты Бурин, вычисление средней, верхней и нижней полос.

  2. Инициализация параметров скользящих средних.

  3. Сигнал покупать: делайте больше, когда цена спускается вверх и прорывает нисходящую линию Бринского пояса, а движущаяся средняя находится ниже нисходящей линии.

  4. Сигнал продажи: когда цена сверху вниз прорывается вверх по Бринской полосе и движущаяся средняя находится над верхней полосой, деактивировать.

  5. Сигнал выхода: когда цена вновь входит в пределы зоны Брин, свернуть позицию.

Эта стратегия использует в своем составе индикаторы Бринских полос и движущихся средних для получения торговых сигналов при определенных динамических условиях, что является типичной стратегией отслеживания тенденций.

Стратегические преимущества

  1. Используя четкость буринской полосы для определения диапазона колебаний цен, движущаяся средняя для определения направления ценовой тенденции, в сочетании с фильтрацией двойных показателей, образующийся торговый сигнал имеет высокую надежность.

  2. При прорыве цены через границу буринской зоны требуется прорыв и в движущейся средней, чтобы обеспечить достаточную поддержку движения и избежать ложного прорыва.

  3. Параметры стратегии устанавливаются с достаточной гибкостью, чтобы можно было адаптировать параметры Брин-полосы и циклы движущихся средних для различных сортов и рыночных условий.

  4. Стратегические идеи четкие, понятные, простые в реализации и проверке.

Стратегический риск

  1. Сам по себе волатильный индикатор Брин-Бенд имеет потенциальную отсталость от рыночных колебаний и может создавать неэффективные торговые сигналы в быстро меняющихся тенденциях.

  2. Когда скользящая средняя используется в качестве фильтрующего индикатора, ее параметры напрямую влияют на частоту стратегии. Неправильная настройка параметров может привести к пропущенным торговым возможностям.

  3. Для создания эффективного сигнала необходимо одновременно полагаться на индикаторы Брин-пояса и движущихся средних, и если один из них не работает, то вся стратегия подвергается воздействию.

  4. Стратегии прорыва более радикальны и легко застрявают, когда цены испытывают обратную попытку на границе Брин-полосы.

Направление оптимизации стратегии

  1. Оптимизация параметров буринских поясов, адаптированных к различным циклам и колебаниям, например, изменение параметров буринских поясов, параметров кратности стандартного отклонения.

  2. Оптимизация циклических параметров скользящих средних, балансировка частоты и эффекты фильтрации.

  3. Добавление стратегии “стоп-лосс” для контроля максимальных убытков от одной сделки.

  4. В сочетании с другими индикаторами, такими как RSI, MACD и т. Д., формируются портфельные индикаторы, обогащающие стратегические торговые сигналы.

  5. В сочетании с моделями машинного обучения, они помогают определить направление ценовых тенденций и успешность прорыва.

Подвести итог

Эта стратегия объединяет индикатор Брин-Бенда и индикатор движущейся средней, создавая сигналы входа и выхода на рынок при условии обеспечения определенного количества ценовых прорывов. Идея стратегии ясна, проста в реализации и позволяет эффективно отслеживать трендовые явления. Но в то же время существует определенный риск отступления, который требует оптимизации в отношении параметров параметров и остановок, чтобы адаптироваться к изменениям на рынке.

Исходный код стратегии
/*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))