Logo hamster-bot
RU EN PT

Загрузка…

← Все стратегии

ZigZag, ZZ

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

В основе лежит логика, похожая на индикатор ZigZag:
● Когда рынок начинает разворачиваться вверх, фиксируется локальный минимум
● Когда разворачивается вниз — локальный максимум
Эти точки становятся ориентирами. Из них формируются уровни, которые рынок должен пробить, чтобы подтвердить движение.

Реверсивная (flip long ↔ short)
Позиция всегда открыта и переворачивается из short в long. (Если не используются модификаторы стратегии - они описаны ниже в блоке «Параметры и модификаторы»)

⚠️ Стратегия генерирует убыточные сделки когда рынок в боковике и во время V-образных разворотов.

Рабочий тип ордера: Рыночный Стоп ордер (На некоторых биржах может еще называться как Условный или Триггерный)

Пример установки условных ордеров

● Зеленым цветом обозначено где устанавливается условный ордер на покупку. Пробой последнего значимого максимума.
● Красным на продажу. Цена пробивает последний минимум.

После запуска стратегии если нет позиции и цена находится между уровней то будут установлены 1 ордер на открытие long позиции и 1 на short. Если цена не между уровней или есть открытая позиция то будет установлен 1 ордер.

Если открыта позиция то по стратегии должен быть только 1 ордер. По умолчанию размер этого ордера будет = размер позиции * 2. Чтобы перевернуть позицию (закрыть и открыть новую на такой же размер)

Strategy Trend Zig Zag и ZZ - в чем разница

Strategy Trend Zig Zag (zigzag, выбрана по умолчанию при создании бота) - простой вариант с минимумом настроек, аналог скрипта «Простая трендовая стратегия» в TradingView. Уровни строятся так же, как в ZZ2, позиция переворачивается стоп-ордерами. Модификаторы и фильтры из блока «Параметры и модификаторы» в нем не используются.

ZZ (zz) - полная версия: два типа уровней (ZZ2 и ZZ6) и все модификаторы, фильтры и настройки размера позиции, описанные ниже.

Типы уровней: ZZ2 и ZZ6

ZZ2 (по умолчанию) - уровни строятся по точкам разворота сглаженной цены. Подробно алгоритм разобран в блоке «Для любознательных».
depth - глубина поиска разворота (по умолчанию 5)
detection, detection_type, detection_source - длина, тип (по умолчанию EMA) и источник цены сглаживающей линии, по развороту которой определяются точки
rsi_len, rsi_value - дополнительное условие по RSI для точки разворота. При rsi_value = 0 не используется

ZZ6 - уровни строятся по двум каналам максимумов/минимумов: быстрому длиной zz6_len и медленному длиной zz6_len_slow (если не задана - zz6_len * 3). Уровень фиксируется, когда быстрый и медленный канал совпали (цена обновила экстремум) и быстрый канал начал разворачиваться.
В ZZ6 размер позиции зависит от риска: чем шире расстояние между уровнями (а значит дальше стоп), тем меньше лот.

Параметры и модификаторы

Режим работы

Настройка уровней

Фильтры входа

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

Размер позиции

Закрытие позиции

Бэктест
Протестировать во встроенном бэктестере

Скрипт (PineScript) для тестирования стратегии на исторических данных в тестере стратегий TradingView:

Рекомендации: (не строгие и их можно нарушать в исследовательских целях)
Рабочий таймфрейм от 4ч и выше.

Рекомендуемый таймфрейм

Для любознательных

Алгоритм построения уровней стратегии ZZ2. Используется не стандартный индикатор ЗигЗаг. Из кода видно как все просто и перерисовка исключена. Но уровни строятся с задержкой в несколько свечей (это абсолютно не мешает стратегии)

Фрагмент кода алгоритма ZZ2

Используются три последовательно сглаженные EMA. Это создает сильное сглаживание, уменьшая шум.
Переменная z фиксирует точки разворота. Если EMA разворачивается вверх → берется локальный минимум (l). Если вниз → локальный максимум (h). Эти точки (l и h) становятся основой для построения уровней.


Стратегию можно проверить на исторических данных в тестере и запустить в hamster-bot.