Стратегия стоп-лосса Bollinger Breakout

Автор:Чао Чжан, Дата: 2023-10-27 16:50:24
Тэги:

img

Обзор

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

Логика стратегии

Стратегия использует средние, верхние и нижние полосы от индикатора Болинджерских полос. Средняя полоса - скользящая средняя, верхняя полоса - средняя полоса плюс 2 стандартных отклонения, а нижняя полоса - средняя полоса минус 2 стандартных отклонения.

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

В частности, логика стратегии заключается:

  1. Расчет полос Боллинджера средние, верхние и нижние полосы
  2. Если цена выйдет выше верхней полосы, займите длинный
  3. Если цена опустится ниже нижнего диапазона, перейдите на короткий.
  4. Если уже длинный, закрыть длинный, когда цена пройдет ниже нижней полосы
  5. Если уже короткий, закрыть короткий, когда цена превышает верхнюю полосу

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

Преимущества

  • Использование полос Боллинджера для сигналов входа отслеживает тенденции после прорывов
  • Ясные длинные/короткие сигналы, простые правила
  • Ограничения стратегии стоп-лосса на максимальную потерю на одну сделку
  • Параметрообразуемость для оптимизации стратегии

Риски

  • Частые небольшие сделки со стоп-лосом могут повлиять на общую прибыль/потери
  • Плохая настройка параметров может вызвать слишком много сигналов или пропущенные сделки
  • Рассматривает только цену, никаких других показателей для подтверждения
  • При отсутствии корректировки стоп-лосса вблизи прорыва не может увеличиваться потеря

Может оптимизировать с помощью комбинации индикаторов, регулирования стоп-лосс и т.д.

Возможности для расширения

  • Комбинируйте другие показатели, такие как объем, скользящие средние, чтобы подтвердить сигналы
  • Оптимизировать параметры Боллинджера для различных рынков
  • Регулируйте расстояние стоп-лосса вблизи прорыва, чтобы избежать перечувствительности
  • Торгуйте только после того, как развиваются тенденции, как правила Торговли Черепахой
  • Автооптимизация параметров с помощью алгоритмов машинного обучения

Заключение

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


/*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()

Больше