
Обзор
Эта стратегия основана на индикаторе буринской зоны, основной идеей которой является ожидание возвращения цены во внутреннюю часть буринской зоны после того, как цена прорвется через буринскую зону или выйдет из нее, а затем создать позицию, идентичную направлению прорыва, в точке возвращения. Эта стратегия использует характеристику того, что цены обычно переворачиваются в крайних районах, чтобы захватить рыночные поворотные точки с помощью комбинации условий прорыва буринской зоны и возвращения с целью получения более высокой выигрышной ставки.
Стратегический принцип
- Вычислить среднюю, верхнюю и нижнюю полосы Бринского пояса. Средняя полоса - это скользящая средняя, а верхняя и нижняя полосы - средняя полоса плюс минус стандартная разница.
- Определите, прорвала ли цена верхнюю или нижнюю полосу Брин-Бенда. Если цена закрытия превышает верхнюю полосу, то считается, что она прорвалась вверх; если цена закрытия прорвалась вниз, то считается, что она прорвалась вниз.
- Если происходит взрыв вверх, записывается наивысшая цена, которая пробилась через K-линию, как пик. Если происходит взрыв вниз, записывается наименьшая цена, которая пробилась через K-линию, как пик.
- После прорыва ждите, пока цена вернется внутрь пояса бурин. Если в это время цена закрытия находится между верхним и нижним треками, то считается, что цена вернулась.
- В случае, когда цена возвращается, если предыдущая K-линия прорвется вверх,[1]and inside), то открывается многоголовый; если предыдущая K-линия прорывается вниз[1]И внутри) - пустые.
- Управление позицией: если держать позицию с несколькими главами, то цена на закрытие пройдет по средней траектории; если держать позицию с пустыми главами, то цена на закрытие пройдет по средней траектории, то она будет пустой.
Анализ преимуществ
- Брин обладает сильной адаптивностью и способностью динамически корректироваться в зависимости от колебаний цен, что очень полезно для улавливания тенденций и колебаний.
- По сравнению с простой стратегией прорыва в булинской полосе, добавлены условия для возвращения, что позволяет в определенной степени избежать преследования и улучшить качество входа в игру.
- Условия равновесия используются в качестве ориентира, просты в использовании и могут лучше защищать прибыль.
- Вы можете настроить параметры ленты Брин, такие как длина, коэффициент отклонения и т. д., с большой гибкостью.
Анализ рисков
- Неправильный выбор параметров Брин-полосы может привести к раннему или позднему вхождению в игру, что может повлиять на эффективность стратегии. Это может быть смягчено путем оптимизации параметров.
- При колебаниях цен в районе Брин-Бенда может возникать частое открытие позиций, что приводит к увеличению стоимости торгов.
- Если тенденция будет сильной и цена долго не вернется в пределы Брин-пояса, она может потерять прибыль от тренда.
- Использование одного только индикатора Брин-пояса может не работать для некоторых сортов или в некоторых ситуациях, и требует использования других сигналов.
Направление оптимизации
- Можно рассмотреть возможность введения дополнительных фильтрующих условий, таких как более надежное прорыв после некоторого времени движения цены над линией Брин, или индикаторы определения тенденции, такие как угол MA и ADX, для вспомогательного определения.
- В связи с тем, что в стране наблюдаются сильные землетрясения, можно увеличить лимиты и таймеры, чтобы избежать открытия позиций вслепую.
- В случае с равным положением, можно использовать ATR или равнолинию, чтобы контролировать время выхода на поле.
- Параметры оптимизируются и анализируются характеристики различных знаков и циклов, выбираются подходящие знаки и циклы торговли.
- Можно рассмотреть возможность включения управления позициями, например, увеличение позиций при сокращении волатильности и уменьшение позиций при увеличении волатильности.
Подвести итог
Брин-поясное торговое решение является простой и практичной количественной торговой стратегией. Она использует реакцию цены на экстремальные ситуации, создает условия для открытия позиции с помощью инструмента Брин-пояса, может в определенной степени улавливать начальные и конечные точки тенденции, контролировать частые сделки. В то же время в стратегии есть такие проблемы, как выбор параметров, плохая работа в условиях шока и недостаточная уловка тенденции.
Исходный код стратегии
/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-27 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(shorttitle="BB", title="Bollinger Bands", overlay=true)
length = input.int(20, minval=1)
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(1.7, minval=0.001, maxval=50, title="StdDev")
ma(source, length, _type) =>
switch _type
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))
break_up = close > upper
break_down = close < lower
inside = close > lower and close < upper
sell_condition = break_up[1] and inside
buy_condition = break_down[1] and inside
// Conditions to close trades
close_sell_condition = close > basis
close_buy_condition = close < basis
trade_condition = sell_condition or buy_condition
// Tracking the high of the breakout candle
var float peak = na
if (not trade_condition)
peak := close
if (break_up and peak < high)
peak := high
if (break_down and peak > low)
peak := low
// Entering positions
if (buy_condition)
strategy.entry("Buy", strategy.long)
if (sell_condition)
strategy.entry("Sell", strategy.short)
// Exiting positions when close crosses the basis
if (strategy.position_size > 0 and close_sell_condition) // If in a long position and close crosses above basis
strategy.close("Buy")
if (strategy.position_size < 0 and close_buy_condition) // If in a short position and close crosses below basis
strategy.close("Sell")