Стратегия BB%B
Обзор
Стратегия BB%B — это количественная торговая стратегия, использующая процентное значение B индикатора полос Боллинджера для принятия инвестиционных решений. Она может генерировать сигналы на покупку или продажу, когда цена приближается к верхней или нижней границе полос Боллинджера, и относится к стратегиям следования за трендом.
Принцип стратегии
Стратегия сначала вычисляет скользящую среднюю цен закрытия за указанный период, а также стандартное отклонение, после чего получает верхнюю и нижнюю границы полос Боллинджера. Индикатор BB%B представляет собой отношение текущей цены минус нижняя граница к разнице между верхней и нижней границами, показывая положение текущей цены внутри полос Боллинджера. Когда BB%B опускается ниже порога перепроданности, генерируется сигнал на покупку; когда поднимается выше порога перекупленности — сигнал на продажу. После появления торгового сигнала, если BB%B откатывается к противоположному порогу, позиция закрывается.
Конкретно: стратегия сначала вычисляет SMA (простую скользящую среднюю) за 21 день от цен закрытия, а также верхнюю и нижнюю границы полос Боллинджера с коэффициентом 2 стандартных отклонения. Затем вычисляется значение BB%B для текущей цены закрытия. Если BB%B ниже -0,2 (настраиваемо) при отсутствии открытой позиции, открывается длинная позиция; если BB%B выше 1,2 (настраиваемо) при отсутствии открытой позиции, открывается короткая позиция. Сигнал закрытия: при длинной позиции, когда BB%B пересекает вверх 1,0 (настраиваемо); при короткой позиции, когда BB%B пересекает вниз 0,2 (настраиваемо).
Стратегия полагается на индикатор BB%B для определения завышенности или заниженности текущей цены, а также на скользящую среднюю для определения направления тренда. Когда цена выходит за пределы верхней или нижней границы полос Боллинджера, генерируется торговый сигнал. Частоту стратегии можно регулировать, изменяя параметры.
Преимущества
- Использование полос Боллинджера для определения перекупленности/перепроданности
Верхняя и нижняя границы полос Боллинджера представляют собой диапазон определённого количества стандартных отклонений от текущей цены. Когда цена приближается или касается верхней границы, это указывает на перекупленность; когда приближается или касается нижней — на перепроданность. Стратегия BB%B полностью использует эту особенность для определения подходящих моментов для покупки и продажи.
- Гибкая настройка, возможность регулировки частоты стратегии
Пороги BB%B, параметры скользящей средней и пороги отката в стратегии могут свободно настраиваться, что позволяет легко регулировать частоту операций. Использование более длинной скользящей средней и большего порога отката снижает частоту торговли.
- Комбинация с определением тренда
Помимо определения перекупленности/перепроданности по полосам Боллинджера, стратегия также использует скользящую среднюю для оценки общего тренда, избегая контртрендовых сделок.
- Механизм отката уменьшает ложные сигналы
При первом касании ценой верхней или нижней границы полос Боллинджера существует высокая вероятность перекупленности/перепроданности, но это также может быть краткосрочным ложным пробоем. Стратегия добавляет порог отката: позиция закрывается только при явном откате BB%B в противоположном направлении, что позволяет отфильтровать ложные сигналы.
Анализ рисков
- Невозможность определить направление тренда
Стратегия опирается только на индикатор полос Боллинджера для определения возможного разворота цены, игнорируя общий тренд, что может привести к убыткам от контртрендовых сделок.
- Неправильная установка порога отката может привести к упущенным возможностям
Если порог отката установлен слишком большим, стратегия может не успеть вовремя сменить направление позиции при развороте тренда, упуская возможность.
- Увеличение разницы в ценах между точками входа и выхода при расширении полос
При росте волатильности рынка расстояние между верхней и нижней границами полос Боллинджера увеличивается, что приводит к большей разнице в ценах между точками входа и выхода, увеличивая риск убытка по одной сделке.
- Относительно высокая частота торговли
По сравнению с долгосрочными стратегиями, данная стратегия имеет более высокую частоту сделок, что приводит к большим торговым издержкам и потерям от проскальзывания.
Направления оптимизации
- Добавление фильтрации сигналов с помощью трендовых индикаторов
Можно добавить индикаторы тренда, такие как MACD, KDJ, и генерировать торговые сигналы только при совпадении с направлением тренда, чтобы избежать контртрендовых сделок.
- Внедрение стоп-лосса
Установить фиксированное значение или процент стоп-лосса для контроля риска по одной сделке и предотвращения увеличения убытков.
- Оптимизация комбинаций параметров
Настроить длину скользящей средней, пороги BB%B, пороги отката и другие параметры для поиска оптимальной комбинации, чтобы отфильтровать больше шума и повысить стабильность стратегии.
- Учёт торговых издержек
В зависимости от торговых издержек по разным инструментам, скорректировать параметры стратегии, снизив частоту торговли и уменьшив влияние издержек.
Заключение
Стратегия BB%B — это простая и практичная количественная торговая стратегия. Она использует полосы Боллинджера для определения моментов возможного разворота цены и комбинирует их со скользящей средней для оценки общего тренда, совершая сделки вблизи зон перекупленности/перепроданности. Стратегия гибко настраивается, позволяя регулировать частоту операций. Однако она также несёт определённые риски, требующие дальнейшей оптимизации с учётом общего тренда, стоп-лосса, торговых издержек и других факторов для повышения стабильности и реальной прибыльности. При правильном использовании стратегия BB%B может стать эффективным элементом системы количественной торговли.
/*backtest
start: 2023-08-25 00:00:00
end: 2023-09-24 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
// strategy(title = "BB%B Strat", shorttitle = "BB%B Strat", format=format.price, precision=2, default_qty_type=strategy.percent_of_equity, default_qty_value=20)
length = input.int(21, minval=1)
src = input(close, title="Source")- 1
