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

Автор:Чао Чжан, Дата: 2024-02-27 16:11:44
Тэги:

img

Обзор

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

Принцип стратегии

Стратегия сначала рассчитывает средний рельс, верхний рельс и нижний рельс полосы Боллинджера. Средний рельс представляет собой WMA с длиной Лена, а верхние и нижние рельсы представляют собой стандартное отклонение умноженное на отклонение.

Когда цена проходит через верхний рельс, перейдите на короткий; когда цена проходит через нижний рельс, перейдите на длинный. После открытия позиции, установите стоп-лосс и возьмите цену прибыли. Стоп-лосс - это входное значение Стоп, а цена прибыли - входное значение Лимит.

Кроме того, стратегия также предусматривает возможность открытия реверсии. Когда проверяется Reversal Entry, обратные ордера будут сделаны, когда цена вновь войдет в полосу Боллинджера, которая принадлежит торговле MEAN REVERSION.

Независимо от того, является ли это открытием тренда или обратным открытием, настройки для остановки потери и получения прибыли одинаковы.

Анализ преимуществ

Стратегия сочетает в себе индикатор полосы Боллинджера и отслеживание стоп-лосса, чтобы эффективно контролировать риски, блокируя прибыль от тренда.

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

Анализ рисков

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

Если цена вновь входит в диапазон, то обратные заказы могут снизить прибыль.

Кроме того, неправильное настройка параметров также может усиливать риски.

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

Стратегия может быть оптимизирована в следующих аспектах:

  1. Добавьте адаптивную функциональность параметров. Len и отклонение могут быть динамически скорректированы в соответствии с волатильностью рынка, чтобы сделать полосу Боллинджера ближе к цене.

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

  3. Комбинируйте с другими индикаторами фильтруйте сигналы. Судите тенденцию тренда с помощью таких индикаторов, как MACD и KDJ, чтобы избежать неправильных сигналов или отсутствующих сигналов.

  4. Добавьте временные ограничения.Только торговля в течение определенного периода времени может уменьшить риски на ночь.

Резюме

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


/*backtest
start: 2024-02-19 00:00:00
end: 2024-02-26 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="BB Strategy (Basic)",overlay=true, initial_capital=25000, default_qty_value=1, commission_type=strategy.commission.cash_per_contract, commission_value=3.02)
len = input(20, minval=1, title="Length")
src = input(close, title="Source")
mult = input(2.0, "Deviation", minval=0.001, maxval=50)
//price_drop = input(.003, "When price drops (In Ticks) Enter Long", step=.001)
//price_climb = input(.003, "When price climbs (In Ticks) Enter Short", step=.001)
trail = input(true, "Trailing Stop(checked), Market stop(unchecked)")
stop = input(10000, "Stop (in ticks)", step=5)
limit = input(20000, "Limit Out", step=5)
//size = input(1, "Limit Position Size (pyramiding)", minval=1)
revt = input(true, "Reversal Entry(checked, Trend Entry(unchecked)")
timec = input(false, "Limit Time of Day (Buying Side)")

//calculations and plots
revti = if revt==false
    true
basis = wma(src, len)
dev = mult * stdev(src, len)
upper = basis + dev
lower = basis - dev
plot(basis, color=red)
p1 = plot(upper, color=teal)
p2 = plot(lower, color=teal)
fill(p1, p2)
u = crossover(high, upper) 
d = crossunder(low, lower)
//Time Session
sess = input("1600-0500", "Start/Stop trades (Est time)")
t = time(timeframe.period, sess)

//Orders
if(timec)
    strategy.entry("Enterlong", long=revt, when=d and t>1)
else
    strategy.entry("Enterlong", long=revt, when=d)
if(trail)
    strategy.exit("Exit","Enterlong", profit=limit, trail_points = 0, trail_offset = stop )
else
    strategy.exit("Exit","Enterlong", profit=limit, loss = stop )
    
if(timec)
    strategy.entry("Entershort", long=revti, when=u and t>1)
else
    strategy.entry("Entershort", long=revti, when=u)
if(trail)
    strategy.exit("Exit","Entershort", profit=limit, trail_points = 0, trail_offset = stop )
else
    strategy.exit("Exit","Entershort", profit=limit, loss = stop )
  



Больше