Стратегия торговли на канале Bollinger Band

Автор:Чао Чжан, Дата: 2023-09-12 17:05:56
Тэги:

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

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

  1. Вычислить среднюю линию BB, верхнюю и нижнюю полосы. Средняя линия - это n-периодная SMA, ширина полосы - кратное стандартному отклонению n-период.

  2. Продолжайте с нижней полосы, и коротко с верхней.

  3. Установите стоп-потерю на противоположной полосе для контроля риска.

  4. Задержка, чтобы получить больше прибыли, или фиксированная остановка.

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

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

  1. Брейк ББ точно определяет изменения тренда.

  2. Остановки на полосах позволяют своевременно выйти из тренда.

  3. Взаимное исключение позволяет избежать хеджирования в одном направлении.

Риски:

  1. Средний показатель BB и отклонение задержки, отсутствуют лучшие записи.

  2. Крышки распространены на разных рынках.

  3. Статические параметры Невозможно адаптировать меняющуюся волатильность.

В целом, эта стратегия рассматривает брейк-оты BB как типичную систему каналов.


/*backtest
start: 2022-09-05 00:00:00
end: 2023-09-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Kozlod - BB Strategy - 1 minute", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

// 
// author: Kozlod
// date: 2019-05-27
// RSI - BTCUSDT - 1m
// https://www.tradingview.com/u/Kozlod/
// https://t.me/quantnomad
//

source = close
length = input(45, minval=1)
mult = input(2.5, minval=0.001, maxval=50)

basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev

plot(upper)
plot(lower)

buyEntry  = crossover(source, lower)
sellEntry = crossunder(source, upper)

if (crossover(source, lower))
    strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands",  comment="BBandLE")
else
    strategy.cancel(id="BBandLE")

if (crossunder(source, upper))
    strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands",  comment="BBandSE")
else
    strategy.cancel(id="BBandSE")

Больше