Торговая стратегия скрининга сигнала пересечения полос Боллинджера

BB SMA DEV SIGNAL
Дата создания: 2025-02-18 14:47:16 Последнее изменение: 2025-02-18 14:47:16
Копировать: 1 Количество просмотров: 454
1
Подписаться
1617
Подписчики

Торговая стратегия скрининга сигнала пересечения полос Боллинджера

Обзор

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

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

Основные элементы стратегии:

  1. Вычисление по Бринской полосе: используется 55-циклическая простая движущаяся средняя ((SMA) в качестве средней полосы, стандартная дифференциация умножена на 1.0, рассчитывается вверх и вниз по полосе.
  2. Логика генерирования сигнала:
    • Когда цена закрытия выходит на трейлер, генерируется многозначный сигнал
    • Сигналы об отрыве генерируются, когда цена закрытия прорывает низкую траекторию
  3. Механизм подтверждения сигнала: с помощью функции barssince рассчитывается количество циклов от расстояния до последнего прорыва, чтобы определить окончательное направление сделки путем сравнения циклического расстояния от пустого сигнала.
  4. Визуализация: на графике показаны торговые сигналы с помощью треугольной маркировки, различные цвета используются для разделения поля.

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

  1. Ясность сигнала: создание торгового сигнала с помощью четкой перекрестной связи цены с брин-полосами, избегая неопределенности.
  2. Тренд-слежение: стратегия по своей сути является тренд-следующей и позволяет получить лучшую прибыль в сильных ситуациях.
  3. Визуальная интуиция: распознавание торгового сигнала очень интуитивно с помощью цветовой наполнения и формовой маркировки.
  4. Гибкость параметров: цикличность и кратность стандартного разрыва по Брин-Бенду могут быть скорректированы в зависимости от различных рыночных условий.
  5. Комплексная система: включает в себя полную функцию генерации сигнала, визуализации и сигнализации.

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

  1. Риск возникновения шокирующих рынков: частое возникновение ложных сигналов на рынках, в которых наблюдаются поперечные колебания.
  2. Риск отставания: Сигнал может быть отсталым из-за использования скользящей средней с более длительным периодом (55).
  3. Риск реверсии: в случае резкого переворота тренда, возможна большая регрессия.
  4. Чувствительные параметры: выбор параметров по Брин-полосе оказывает большое влияние на эффективность стратегии.

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

  1. Введение подтверждения объёма сдачи: может быть добавлено показатель объёма сдачи в качестве вспомогательного условия подтверждения сигнала.
  2. Оптимизация динамических параметров: кратность стандартного разрыва по Бринской полосе, которая может быть динамически скорректирована в зависимости от рыночных колебаний.
  3. Добавление фильтра тренда: можно добавить индикатор тренда с более длинным периодом, чтобы отфильтровать ложные сигналы.
  4. Совершенствование механизма остановки убытков: рекомендуется увеличить подвижные или фиксированные остановки убытков для контроля риска.
  5. Классификация состояния рынка: можно добавить модуль распознавания состояния рынка, используя различные параметры в разных состояниях рынка.

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

Это классическая стратегия слежения за тенденциями, основанная на Brin Belt, для захвата рыночных тенденций через перекрестную связь цены и Brin Belt. Конструкция стратегии проста и понятна, имеет хорошие визуальные эффекты и механизм генерации сигналов.

Исходный код стратегии
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-16 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands Filter [Strategy]", overlay=true)

// -- INPUTS (kratke tooltipy, ziadne prelomenie riadku)
src    = input.source(close, title="Source", tooltip="Source for BB calc")
length = input.int(55, minval=1, title="SMA length", tooltip="Period for BB basis")
mult   = input.float(1.0, minval=0.1, maxval=5, title="Std Dev", tooltip="Std Dev multiplier")
CC     = input.bool(true, "Color Bars", tooltip="If true, color bars by BB logic")

// -- Bollinger calc
basis = ta.sma(src, length)
dev   = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// -- Long/Short logic
longCondition  = close > upper
shortCondition = close < lower

L1 = ta.barssince(longCondition)
S1 = ta.barssince(shortCondition)

longSignal  = L1 < S1 and not (L1 < S1)[1]
shortSignal = S1 < L1 and not (S1 < L1)[1]

// -- Plot signals
plotshape(shortSignal ? close : na, color=color.red, style=shape.triangledown, size=size.small, location=location.abovebar, title="Short Signal")
plotshape(longSignal  ? close : na, color=color.green, style=shape.triangleup,  size=size.small, location=location.belowbar, title="Long Signal")

// -- Plot BB lines
plot(upper, color=color.new(color.red,  40), title="Upper BB")
plot(lower, color=color.new(color.green,40), title="Lower BB")
plot(basis, color=color.new(color.blue, 10), title="Basis")

// -- Fill
fill(plot(na), plot(na)) // 'dummy' fill reset
fill(plot(upper, display=display.none), plot(basis, display=display.none), color=color.new(color.teal, 80))
fill(plot(lower, display=display.none), plot(basis, display=display.none), color=color.new(color.orange, 80))

// -- barcolor
bcol = close > upper ? color.lime : close < lower ? color.red : na
barcolor(CC ? bcol : na)

// -- Alerts
alertcondition(longSignal,  title="Long - BB",  message="BB Filter Long")
alertcondition(shortSignal, title="Short - BB", message="BB Filter Short")

// -- Strategy entries
if longSignal
    strategy.entry("Long", strategy.long)

if shortSignal
    strategy.entry("Short", strategy.short)