Стратегия динамического пробоя диапазона
Обзор
Данная стратегия основана на индикаторе полос Боллинджера и реализует динамическую стратегию пробоя. Она объединяет фильтрацию по размеру тела свечи и цвету свечи для поиска точек входа при пробое вблизи нижней полосы Боллинджера. Выход осуществляется на основе фильтрации по размеру тела. Стратегия автоматически управляет количеством позиций и рисками.
Принцип стратегии
Расчет индикаторов
Сначала на основе минимумов рассчитываются базовая линия и нижняя полоса Боллинджера:
src = low
basis = sma(src, length)
dev = mult * stdev(src, length)
lower = basis - dev
где src — минимум, length — период расчета, basis — скользящая средняя, dev — стандартное отклонение, lower — нижняя полоса.
mult обычно равен 2, что означает, что нижняя полоса находится на расстоянии одного стандартного отклонения.
Условия фильтрации
Стратегия включает два фильтра:
Фильтрация по размеру тела свечи
Используются размер тела nbody и его среднее значение abody. Торговый сигнал генерируется только тогда, когда nbody превышает половину abody.
Фильтрация по цвету свечи
Если свеча закрывается выше открытия (close > open), длинная позиция не открывается. Это позволяет избежать ложных пробоев на вершине свечи.
Торговые сигналы
Сигнал на покупку генерируется при выполнении следующих условий:
low < lower // цена пробивает нижнюю полосу
close < open or usecol == false // фильтрация по цвету
nbody > abody / 2 or usebod == false // фильтрация по размеру тела
Закрытие позиции происходит, когда размер тела снова превышает половину среднего значения:
close > open and nbody > abody / 2
Управление позицией
Стратегия автоматически рассчитывает количество контрактов, обеспечивая экспоненциальный рост:
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]
Контроль рисков
Добавлены условия по году, месяцу и дню, ограничивающие торговлю заданным диапазоном дат:
when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))
Преимущества стратегии
Динамический торговый диапазон
Нижняя полоса Боллинджера представляет собой динамическую зону поддержки, позволяющую ловить отскоки после трендов.
Двойной механизм фильтрации
Комбинация фильтрации по размеру тела свечи и цвету эффективно отсеивает ложные пробои.
Автоматическое управление позицией
Позиция растет экспоненциально до 100%, риск управляется автоматически.
Заданный временной диапазон торговли
Установка временного интервала снижает риск, связанный с высокой волатильностью в определенные периоды.
Риски стратегии
Длительное нахождение вне рынка
При длительном бычьем рынке средняя и верхняя полосы Боллинджера быстро смещаются вверх, что может привести к длительному отсутствию позиций.
Решение
Можно добавить трендовый индикатор: если на среднесрочном/долгосрочном горизонте определяется бычий тренд, приостановить стратегию, чтобы избежать долгого простоя.
Неудачный пробой
После пробоя нижней полосы возможен откат и повторное тестирование нижней полосы.
Решение
Добавить стоп-лосс: установить стоп на определенном процентном расстоянии ниже уровня поддержки. Либо добавить логику повторного неудачного пробоя для быстрого закрытия позиции.
Оптимизация стратегии
Добавление стоп-лосса
На основе данных бэктестинга определить оптимальный уровень стоп-лосса ниже поддержки.
Оптимизация параметров фильтрации
Настроить период abody для фильтрации по размеру тела, использование цветового фильтра и т.д. Найти оптимальную комбинацию параметров.
Комбинирование с трендовым анализом
Добавить среднесрочный/долгосрочный трендовый анализ, останавливать стратегию при бычьем тренде. Это сократит время простоя.
Заключение
Данная стратегия объединяет поддержку полос Боллинджера, фильтрацию по размеру тела свечи и цвету, а также логику пробоя для поиска высоковероятностных отскоков. На практике можно постоянно оптимизировать параметры на основе результатов бэктестинга, а также добавить стоп-лосс и модуль трендового анализа для контроля рисков, что позволит добиться хорошей производительности.
- 1

