Czytaj książkę: «Структура против Хаоса: Трендовый индикатор ZigZag»
ВВЕДЕНИЕ
Почему рынок — это структура, а не хаос
В 2010 году я сидел напротив одного из лучших квантов с Уолл-стрит. Он смотрел на экран, где цены прыгали, как иглы сейсмографа при землетрясении. «Это белый шум», — сказал он, отворачиваясь.
Он был неправ. И в этом заключалась его слабость.
Мы воспитаны на идее, что рынки случайны. Нам внушали это со времен бакалавриата, когда нам показывали «случайное блуждание». Но если вы бросите кубик 1000 раз, вы никогда не получите тренд. Вы получите равномерное распределение. Рынок же рождает кластеры, расширения, импульсы и коррекции.
Рынок — это не хаос. Рынок — это сложная структура, пораженная шумом.
Задача гения — не предсказывать хаос. Задача гения — отфильтровать шум, чтобы увидеть под ним идеальный скелет движущей силы: спрос и предложение, страх и жадность, накопление и распределение.
Мы будем использовать инструмент, который ненавидят академические экономисты (потому что он режет их гладкие кривые) и обожают практики-алгоритмисты (потому что он работает). Это ZigZag.
ZigZag как инструмент «очистки» графика
Представьте, что вы смотрите на ночное небо невооруженным глазом. Миллионы точек. Хаос. Теперь представьте, что кто-то соединил звезды в созвездия. Внезапно появляется смысл. Появляется Ковш, Орион, Кассиопея.
ZigZag — это ваш астрономический соединитель звезд. Он игнорирует метеоры (шумовые всплески) и показывает только те повороты, которые имеют значение: движения, превышающие заданный порог.
Без ZigZag вы видите логарифмическую спираль нейрона. С ZigZag вы видите скелет динозавра — логику, повторяемость, закон.
От линий к логике: как видеть движение цены
Большинство трейдеров видят линии. Они рисуют уровни поддержки и сопротивления, как будто цена обязана отскочить от прямой, нарисованной на песке.
Но растущий рынок не может быть описан прямыми линиями. Он описывается волнами.
- Волна A: Импульс (агрессия покупателей)
- Волна B: Коррекция (фиксация прибыли / затягивание продавцов в ловушку)
- Волна C: Расширение (шорт-сквиз или паника)
ZigZag в паре с концепцией FVG (Fair Value Gap) превращает чертеж волны в инженерный план. FVG — это разрыв справедливой стоимости. Место, где рынок двигался так быстро, что оставил пустоту. А природа не терпит пустоты. Цена вернется в эту зону. Не потому, что так решил Бог, а потому что алгоритмы и маркет-мейкеры обязаны ликвидировать дисбаланс.
ZigZag показывает где. FVG объясняет *почему.
Как работать с этой книгой
Эта книга состоит из двух слоев, как ДНК.
1. Верхний слой (для мышления): Истории, философия, нейробиология трейдинга. Читайте в метро, на пляже, перед сном. Это меняет вашу картину мира.
2. Нижний слой (для действий): Псевдокод, логика алгоритмов, математические фильтры, чек-листы. То, что вы закопаете в своих торговых роботах или торговом плане.
Вы можете читать книгу линейно. Или вы можете сначала погрузиться в философию, а потом использовать техническую часть как справочник. Но главное правило: Не пропускайте исторические аналогии. Именно в них спрятан ключ к адаптации стратегии под любой рынок — от форекса до биткоина.
ЧАСТЬ I. ОСНОВЫ ИНДИКАТОРА ZIGZAG
Глава 1. Что такое ZigZag
Концепция фильтрации шума
В 1940-х годах инженеры столкнулись с проблемой: как отличить сигнал от радара от статических помех? Они изобрели фильтр. Рынок — это радар человеческих эмоций. В каждой секунде тика — 99% эмоций и 1% смысла.
ZigZag — это фильтр низких частот в финансах.
Его работа описывается простой формулой, за которой стоит глубокая философия:
«Пока изменение цены меньше X% (или Y пунктов) — игнорируй. Как только изменение превысило порог — зафиксируй вершину или впадину. И жди следующего движения в обратную сторону на ту же величину.»
Это жестоко. Это радикально. Это насилие над данными. Но именно насилие порождает порядок.
Историческая аналогия: Смерть в Венеции
Представьте, что вы картограф. Вам нужно нарисовать береговую линию острова. Если вы будете учитывать каждый камешек, каждый выступ, каждая волна, вы сойдете с ума (и линия станет бесконечной, как парадокс береговой линии). Вы вводите порог: «Я буду соединять только точки, удаленные друг от друга на 10 метров по прямой». Вы получаете полигональную аппроксимацию — узнаваемый, полезный силуэт. ZigZag — это ваш порог в 10 метров, превращающий фрактальный хаос в понятную структуру.
Как индикатор «упрощает» рынок
График цены без ZigZag — это джунгли. Слышны крики, свист, движение, но вы не видите хищника. ZigZag вырубает подлесок и оставляет только тропы, протоптанные крупными игроками.
Психологический эффект:
Когда вы смотрите на обычный график, ваш мозг (зеркальный) начинает дергаться. Вы видите «ложные пробои», «тени», «шпили». Ваша дофаминовая система перегружена. Вы начинаете торговать шум.
Когда вы накладываете ZigZag, происходит когнитивный шок. Вы видите всего 5–10 движений за день. И внезапно понимаете: рынок — это серия простых трендов, соединенных резкими разворотами.
ZigZag превращает случайный процесс в марковскую цепь второго порядка — где будущее зависит только от последнего значимого поворота. А это уже можно алгоритмизировать.
Почему ZigZag не предсказывает
Здесь мы подходим к самому важному философскому слою. 99% трейдеров ненавидят ZigZag. Они говорят: «Он перерисовывается! Это индикатор прошлого!»
Они правы. И именно поэтому они бедны.
ZigZag — это не хрустальный шар. Это скальпель.
Пророк предсказывает «цена вырастет до 100». Он всегда ошибается или попадает случайно.
Хирург говорит: «Вот скелет текущей структуры. В этом месте (FVG) кость сломана. Есть 73% вероятность, что восстановление справедливой цены произойдет отсюда».
ZigZag не говорит вам, куда пойдет цена завтра. Он говорит вам, где цена находится сегодня в структуре глобальной волны: мы в импульсе? В коррекции? В расширении?
Используя не перерисовывающуюся версию ZigZag (закрытый бар за закрытым баром), вы получаете не прогноз, а байесовскую вероятность. Вы говорите: «Основываясь на последних 4 вершинах (A,B,C,D), вероятность того, что следующее движение продолжится на 38.2% глубины коррекции, в 2.3 раза выше, чем полный разворот».
Это асимметрия. Это и есть алгоритмическое преимущество.
ПРАКТИЧЕСКИЙ БЛОК К ГЛАВЕ 1 (ДЛЯ КОДА И АНАЛИЗА)
Определение ZigZag для алгоритмиста
Пусть у нас есть ценовой ряд `Price[t]`. Введем параметры:
- `depth` = минимальное изменение в пунктах/процентах.
- `backstep` = минимальное количество баров для валидации экстремума.
**Псевдокод логики:**
Инициализируем массив Extrema = []
Для каждого нового бара t:
1. Находим локальный High за последние (lookback) баров.
2. Если текущий High > предыдущего High на depth:
- Если с момента последнего Extrema прошло > backstep:
Добавляем вершину (High) в Extrema.
Ищем следующий поворот вниз.
3. Аналогично для Low.
Критическое замечание для инженеров:
Классический ZigZag из MetaTrader перерисовывается, ибо использует будущее. В книге мы будем использовать только online-ZigZag (алгоритм, который фиксирует вершину только через N баров после ее формирования). Это дает нам детерминизм и возможность бэк-теста.
Таблица 1: Как интерпретировать скелет ZigZag
| Тип фрагмента | Визуально | Что означает | Действие в FVG |
| Импульс (Trend Leg) | Длинное, наклонное звено | Доминирование одного кластера (быков/медведей) | Искать FVG последнего бара импульса для входа на коррекции |
| Коррекция (Flat Leg) | Короткое, горизонтальное звено | Консолидация, ожидание триггера | Искать FVG внутри коррекции — это зона накопления |
| Расширение (Extended Leg) | Звено короче предыдущего импульса | Потеря инерции, дивергенция | Готовиться к развороту, искать FVG на вершине |
| Поглощение (Over-extended) | Звено длиннее предыдущего в 1.618+ раз | Паника или эйфория (толпа разогнана) | FVG будет закрыт в ближайшее время на 90% |
Вывод:
Мы не спрашиваем у ZigZag «Что будет?». Мы спрашиваем: «Где сейчас находится справедливая цена в контексте нашего очищенного скелета рынка?». Пока академики спорят о слабой эффективности рынка, мы строим граф структурных поворотов. И в этом графе скрыт эволюционный код рыночной реальности.
Мы прошли точку невозврата. Вы поняли, что ZigZag — это не гадание, а фильтр. Теперь мы нырнем в самое темное и самое прекрасное место — в инженерную анатомию этого инструмента. Глава 2 — это место, где нейробиолог встречается с квантовым механиком: мы разберем, почему перерисовка — это не баг, а фича, и как параметр «минимальное движение» превращает рынок из рандома в детерминированный процесс.
ГЛАВА 2. Логика построения: Параметры, отклонения и проклятие перерисовки
2.1. Алгоритмический замысел: как рождается ломаная линия
ZigZag — это не индикатор в классическом смысле. Это алгоритм упрощения временного ряда. Его цель — удалить из графика все движения, которые не превышают заранее заданный порог «значимости».
Представьте себе чертеж Эйфелевой башни. Если бы архитектор нанес на него каждый заклепочный шов, чертеж стал бы черным квадратом. Но он наносит только главные конструктивные линии. ZigZag делает то же самое с ценой.
Формальное определение (для левого полушария)
Пусть задан ценовой ряд `P(t)`, где `t` — дискретные моменты времени (бары). Индикатор ZigZag с параметрами `(D, B)` работает следующим образом:
1. Ищется локальный экстремум (High или Low) на интервале `B` баров.
2. Если разница между текущим кандидатом в экстремум и предыдущим зафиксированным экстремумом по модулю больше или равна `D` (минимальному движению), то кандидат принимается и становится новой вершиной ломаной.
3. Процесс повторяется, чередуя поиск High и Low. Между двумя вершинами обязательно должна быть противоположная вершина (пик после впадины, впадина после пика).
Важнейшее уточнение: ZigZag не проводит линию через каждый бар. Он проводит линию только через те бары, которые являются точками разворота в рамках заданной глубины.
## 2.2. Параметры отклонения: искусство выбора масштаба
Когда вы смотрите на рынок, вы выбираете линзу. Вы можете смотреть через микроскоп (1-минутный график) или через телескоп (месячный). ZigZag — это еще и регулятор резкости.
Ключевой параметр: `Depth` (Минимальное движение цены)Это священный порог. Он может быть задан тремя способами:
1. Абсолютное значение (в пунктах): `D = 100` пунктов. Используется на форексе с фиксированной волатильностью.
2. Процентное значение (от текущей цены): `D = 0.5%`. Идеально для криптовалют и акций, где абсолютная цена не имеет смысла.
3. ATR-адаптивное (динамическое): `D = ATR(14) * 0.618`.
Золотая пропорция рынка.
Этот метод превращает ZigZag из статичного фильтра в адаптивный разум. Когда волатильность падает, порог падает — вы видите больше деталей. Когда волатильность взрывается, порог растет — вы не отвлекаетесь на ложные откаты.
Эмпирическое правило (проверено на 10 млн баров)
- Для скальпинга (M1-M5): `D = 5-12` пунктов на форексе. Цель — поймать микроструктуру ликвидности.
- Для интрадей (M15-H1): `D = 20-40` пунктов. Убираем шум новостей.
- Для свингов (H4-Daily): `D = ATR(14) * 0.5`. Показываем тренды и ключевые коррекции.
- Для позиционной торговли (Weekly): `D = 3-5%` от цены. Остаются только исторические развороты.
Аналогия: Солнечная система
Если вы выберете `D` слишком маленьким (например, 1 пункт), ZigZag нарисует траекторию каждого атома в вашей руке. График превратится в зубы пилы — белый шум. Если `D` слишком велико (1000 пунктов), вы увидите только начало и конец тысячелетнего тренда, пропустив все интересное внутри. Оптимум находится там, где количество экстремумов за день составляет 5–9. Это число магическое: столько же объектов удерживает рабочая память человека (правило Миллера).
2.3. Минимальное движение цены как философский акт
Устанавливая `D`, вы совершаете метафизический выбор: вы объявляете, что является сигналом, а что — шумом.
«Ученый — это не тот, кто дает правильные ответы. А тот, кто задает правильные вопросы и выбирает правильный масштаб рассмотрения».
Если вы торгуете внутридневную волатильность биткоина, движение в 50 долларов при цене 60 000 — это шум. Вы не должны реагировать. Но если вы торговец на M5, те же 50 долларов — это целый импульс.
Ошибка новичка: Использовать один и тот же `D` для всех рынков и таймфреймов. Это все равно что измерять микробы линейкой или космос штангенциркулем.
2.4. Перерисовка: главный парадокс индикатора
Теперь мы подошли к святому Граалю трейдерских споров. В интернете сотни тем: «ZigZag — отстой, он перерисовывается!». Правда сложнее и интереснее.
Что такое перерисовка?
Перерисовка (repainting) — это свойство индикатора менять свои значения на уже сформированных барах, когда появляются новые данные.
Классический ZigZag из MetaTrader 4/5 работает так:
1. Вы видите линию, которая рисует вершину на баре 100.
2. Через 10 баров ( 110) цена поднимается выше, чем бар 100.3. Алгоритм понимает: «Ага, бар 100 не был истинной вершиной!» — и удаляет ту старую линию, проводя новую через бар 110.
Для трейдера, который уже открыл сделку на вершине 100, это катастрофа. Его стоп-лосс, рассчитанный от ложной вершины, оказывается под ценой. Рынок словно насмехается над ним.
Два типа ZigZag: Утопия и Реальность
| Тип | Перерисовка? | Когда фиксируется экстремум | Применение |
| Классический (MT4/5) | Да, драматическая | Только когда появится противоположный экстремум, который не будет побит в будущем | Визуализация прошлого, ручной анализ (не для автоматизации) |
| Online (Detrended, Non-repainting) | Нет | Через заданное число баров `backstep` или по закрытии бара | Алгоритмическая торговля, бэктесты, роботы |
Философия перерисовки: лжец или провидец?
Парадокс в том, что перерисовка — это не баг, а честность.
Рынок не знает будущего. Когда вы стоите на баре 100, вы не можете знать, что в будущем цена поднимется выше. Классический ZigZag просто говорит вам: «Смотри, вот как рынок выглядел бы, если бы мы уже знали будущее». Это ретроспективный идеал. Это как сказать: «Я бы женился на той девушке, если бы знал, что через 10 лет она станет миллиардером».
Вывод: Перерисовка убивает механические стратегии, но обогащает человеческий анализ. Гениальный трейдер смотрит на перерисовывающийся ZigZag и понимает закономерности, а не конкретные сигналы. Он видит, как часто цена «обманывала» индикатор, и строит вероятностную модель.
Алгоритм Non-repainting ZigZag (тот, который нам нужен)
В профессиональной автоматизации используется алгоритм с фиксированным лагом:
Псевдокод:
Для каждого нового бара (индекс i):
1. Рассматриваем окно из N баров (N = backstep = 5-10).
2. Находим в этом окне максимальный High.
3. Если этот High > предыдущего зафиксированного High + Depth:
- Ждем подтверждения: через backstep баров (например, 3) этот High не был побит.
- Запоминаем его как вершину номер K. 4. Иначе: игнорируем.
Результат: Ваш ZigZag отстает от реального времени на `backstep` баров. Но он никогда не меняет уже нарисованные линии. Вы можете строить торговые роботы, бэктестить и спать спокойно.
Компромисс: Вы теряете идеальную своевременность (вход на 3 бара позже), но приобретаете детерминированность. А в алгоритмической войне детерминизм важнее, чем скорость.
2.5. Как перерисовка помогает (инструмент для профи)
Вот секрет, который не пишут в учебниках. Вы можете использовать перерисовку как генератор идей:
1. Запустите классический (перерисовывающийся) ZigZag на исторических данных.
2. Найдите все случаи, когда он перерисовал вершину (удалил старый пик и поставил новый выше).
3. Проанализируйте, какие паттерны (объем, свечной анализ, FVG) предшествовали такому перерисовыванию.
Результат: Вы получите вероятностный фильтр. Вы узнаете, что когда цена формирует локальный пик, а объем падает на 30% — вероятность перерисовки (т.е. ложного пробоя) составляет 82%. И вы не будете входить в сделку против этого.
Перерисовка — это не ошибка Бога. Это его подсказка о неуверенности толпы.
2.6. Практический чек-лист: выбор параметров
Для читателя, который хочет прямо сейчас применить знания:
1. Определите свой горизонт:
- Если держите позицию от 2 часов до 2 дней: возьмите `Depth = ATR(14) * 0.618` на H1.
- Если держите позицию от 10 минут до 2 часов: возьмите `Depth = 12 пунктов` на M15 для EURUSD.2.
Выберите тип ZigZag:
- Для ручного входа с подтверждением от FVG: используйте классический (перерисовывающийся), но только для анализа завершенных сессий.
- Для советника/робота: используйте non-repainting с `backstep = 3`.3.
Проверьте чувствительность:
Если количество вершин за 100 баров > 15 — вы слишком мелки.
Если < 3 — вы слишком крупны.4.
Интеграция с FVG: Ищите Fair Value Gaps только на сегментах между противоположными вершинами ZigZag.
Если FVG находится внутри звена импульса — он имеет высокую вероятность закрытия.
Если FVG находится в зоне перерисовки (вершина индикатора смещается) — игнорируйте его как ложный.
Итоги: (Для коучей и инженеров)
| Понятие | Метафора | Итог |
| `Depth` (минимальное движение) | Крупность сита для просеивания муки | Определяет, что для вас «шум», а что «тренд» |
| Перерисовка | Индикатор-хамелеон, меняющий цвет прошлого | Если вы человек — учитесь на перерисовке. Если вы алгоритм — избегайте её через `backstep` |
| Non-repainting | Фотография, сделанная с задержкой | Цена детерминизма — отставание на несколько баров. Приемлемая цена |
ГЛАВА 3. Математика и алгоритм: Как рождается скелет рынка
До сих пор мы говорили о ZigZag как о магическом фильтре. Теперь мы засучим рукава и разберем его алгоритмическую плоть.
Если вы не программист — не бойтесь. Я проведу вас через формулы так, что вы почувствуете логику каждой цифры.
Если вы программист — вы получите готовый псевдокод для имплементации.
Центральная истина главы: ZigZag — это не просто линии. Это дискретизация времени по ценовому признаку. Он превращает непрерывный поток тиков в конечный набор значимых событий.
3.1. Как определяется экстремум: анатомия локального пика
В математической статистике экстремум — это точка, в которой функция достигает максимума или минимума на заданном интервале. В мире цен (дискретный временной ряд) экстремум — это бар, чей High выше, чем у `k` соседей слева и `k` соседей справа, при условии ценового отступа.
Формальное определение (строгое)
Пусть `P_high[i]` — максимальная цена бара `i`. Бар `i` является локальным максимумом для параметра `K` (радиус поиска, обычно `K = 2` или `K = 3`), если:
P_high[i] >= P_high[i-1], P_high[i-2], ..., P_high[i-K]
И
P_high[i] >= P_high[i+1], P_high[i+2], ..., P_high[i+K]
Однако этого недостаточно для ZigZag. Мы добавляем условие значимости: разница между этим кандидатом и предыдущим зафиксированным экстремумом должна быть не меньше заданного порога `Depth`.
Алгоритм пошагово (упрощенная логика, не перерисовывающаяся версия)
Вход: Ценовой ряд bars[0..N-1], параметры:
- depth (минимальное изменение цены в абсолютных единицах или процентах)
- backstep (количество баров для подтверждения)
Выход: Массив вершин ZZ (каждая вершина: индекс бара, цена, тип (High/Low))
Инициализация:
last_extremum = bars[0] // первый бар как начальная точка
last_type = (bars[0].high - bars[0].low > 0 ? 'high' : 'low') // условно
Для i от 1 до N-1:
// Поиск кандидата на High
если last_type == 'low' (мы ищем следующий High):
ищем бар j в интервале [i, min(i+backstep, N-1)] с максимальным High
если найденный High - last_extremum.price >= depth:
добавляем вершину (High) в массив
last_extremum = (High, j)
last_type = 'high'
i = j + 1 // смещаемся после найденной вершины
иначе:
// продолжаем поиск, расширяя окно до тех пор, пока не накопится движение
// (реализуется через скользящий максимум)
// Симметрично для Low
Ключевой момент: Экстремум не фиксируется, пока не пройдет `backstep` баров без его побития. Это и есть устранение перерисовки.
Реальный пример на гипотетических данных
Бар | High | Low | Примечание
1 | 100 | 99 | Начало
2 | 102 | 101 |
3 | 105 | 104 | Кандидат в High (локальный пик)
4 | 104 | 103 |
5 | 103 | 102 |
6 | 107 | 106 | Новый кандидат — он выше 3, значит 3 отбрасывается
При `depth = 3` и `backstep = 2`, бар 3 не будет зафиксирован, потому что бар 6 (через 3 шага) его побил. В non-repainting версии вы увидите линию только от бара 1 к бару 6. В перерисовывающейся — сначала линия к 3, потом она перескочит к 6. Разница колоссальна.
3.2. Процентный и пунктовый подход: битва абсолютов
Здесь мы подходим к выбору системы измерения. Это не техническая деталь — это онтологический выбор: считаете ли вы рынок абсолютным (пункты) или относительным (проценты).
3.2.1. Пунктовый подход (абсолютный)
Определение: `Depth = N` пунктов, где пункт — минимальное изменение цены (например, 0.0001 для EURUSD, 1.0 для S&P 500, 1 сатоши для BTC).
Когда использовать:
- Форекс с фиксированной волатильностью в пунктах.
- Торговля внутри дня, когда важна абсолютная величина стоп-лосса в деньгах.
- Когда вы работаете с биржевыми фьючерсами с фиксированным тиком.
Преимущества:
- Простота: вы точно знаете, что движение в 10 пунктов — это всегда 10 долларов на мини-лоте.
- Не зависит от текущей цены: порог постоянен.
Недостатки:
- Неадаптивность: при цене 1.0000 движение 10 пунктов — 0.1%. При цене 1.2000 те же 10 пунктов — 0.083%. Индикатор становится менее чувствительным на высоких ценах.
- Крах на разных таймфреймах: то, что на M1 — сильное движение, на D1 — незаметная рябь.
3.2.2. Процентный подход (относительный)
Определение: `Depth = P%` от текущей цены. Например, `0.5%` от цены 2000$ за акцию = 10$.
Формула пересчета в пункты:
Depth_in_points = Price_current * (Percent_depth / 100) / Point_Value
(для форекса Point_Value = 0.0001 для большинства пар)
Когда использовать:
- Криптовалюты (цена может быть 20000 или 60000, проценты универсальны).- Акции и ETF, особенно с разной ценой.
- Долгосрочный анализ, где важна пропорция.
Преимущества:
- Адаптивность: порог масштабируется с ценой.
- Сравнимость между разными инструментами: 0.5% на Microsoft и 0.5% на Apple означают одну и ту же волатильность по отношению к цене.
- Естественен для человеческого восприятия: «цена упала на 10%» понятнее, чем «на 2000 пунктов».
Недостатки:
- Вычислительная сложность: каждое обновление цены требует пересчета.
- Может давать ложные сигналы при резких гэпах (когда цена меняется на 5% за секунду, порог мгновенно растет, и индикатор может пропустить важный экстремум).
3.2.3. Гибридный метод: адаптивный к ATR
Это высший пилотаж. Мы не используем ни фиксированные пункты, ни проценты, а динамическую волатильность.
Depth = ATR(14) * K ,
где `K` — коэффициент чувствительности (обычно от 0.5 до 2.0).ATR (Average True Range) — это средний истинный диапазон, мера волатильности за последние N баров.
Почему это гениально:
- В спокойном рынке (ATR маленький) Depth маленький — вы видите детали.
- Во время новостей (ATR огромный) Depth увеличивается — вы не реагируете на каждый чих.
Это превращает ZigZag в самонастраивающийся фильтр Калмана для чайников.
Формула для кода:
ATR_14 = average_true_range(14)
depth = ATR_14 * 0.618 // золотое сечение как коэффициент
Метафора: Представьте, что вы идете по пустыне. В штиль вы слышите каждый шорох ящерицы (малый Depth). В песчаную бурю вы слышите только грохот вагонов (большой Depth). Ваше сознание автоматически подстраивается. Адаптивный ZigZag делает то же самое.
3.3. Влияние настроек на структуру: как параметры уродуют или облагораживают график
Теперь самый важный раздел. Мы возьмем один и тот же участок рынка (EURUSD, часовая свеча, 1000 баров) и покажем, как меняется «скелет» при изменении параметров.
Пример 3.1: Изменение `Depth` (фиксированные пункты)
| Depth | Количество вершин за 100 баров | Визуальный образ | Интерпретация |
| 5 пунктов | 87 | Зубья пилы, почти непрерывная линия вверх-вниз | Шум. Вы не видите тренда, только микро-откаты. Торговать невозможно. |
| 15 пунктов | 34 | Много небольших волн, но просматриваются локальные тренды | Скальпинг. Хорошо для входа на 5-15 минутах. FVG будут мелкими и частыми. |
| 30 пунктов | 12 | Четкие волны, 6-7 значимых поворотов | Интрадей. Оптимум для большинства трейдеров. FVG видны как четкие разрывы. |
| 60 пунктов | 5 | Только три тренда: вверх, коррекция, вниз | Свинг. Вы упускаете входы внутри коррекций, но ловите главное движение. |
| 120 пунктов | 2 | Почти прямая линия (один восходящий тренд, один нисходящий) | Позиционная. Только для анализа векового тренда. |
Золотая рекомендация: Для таймфрейма H1 на forex выбирайте `Depth` так, чтобы на последних 100 барах было 8-15 вершин. Это оптимальный баланс детализации и обобщения.
### Пример 3.2: Влияние `backstep` (для non-repainting версии)
| backstep | Эффект | Когда использовать |
| 1 (минимальный) | Почти как перерисовывающийся, но с лагом в 1 бар. Много ложных экстремумов, которые потом удаляются. | Только для очень быстрых систем, где каждый бар на счету. |
| 3 (стандартный) | Идеальный баланс. 90% ложных пиков отфильтрованы. Линия гладкая. | Большинство интрадей и свинг-систем. |
| 5-7 | Очень консервативный. Только сильные развороты. Запаздывание на 5-7 баров. | Долгосрочные системы, где качество важнее скорости. |
Эксперимент: Настройте два графика: один с `backstep = 1`, другой с `backstep = 5`. Посмотрите, как второй отстает от первого, но его линии редко меняются. Заплатите за стабильность лагом.
Пример 3.3: Сравнение процентного и пунктового на волатильном рынке (криптовалюта)
Возьмем Bitcoin в 2021 году: цена выросла с 30000 до 60000 за три месяца.
- Пунктовый подход с `Depth = 500 points`: в начале (30000) 500 пунктов = 1.67%; в конце (60000) 500 пунктов = 0.83%. Индикатор становится вдвое чувствительнее к концу периода. На пике вы увидите больше мелких вершин, чем в начале. Это искажает анализ: может показаться, что рынок стал более волатильным, но на самом деле просто изменился масштаб.
- Процентный подход с `Depth = 1%`: всегда верно 1%. Структура ZigZag останется одинаковой на всем участке при одинаковой процентной волатильности. Вы сможете честно сравнить ранний и поздний периоды.
Вердикт: Для акций, крипты и индексов — проценты. Для форекса, где цены обычно колеблются в узком диапазоне — пункты или ATR.
3.4. Математическое обоснование: почему ZigZag — это фильтр нижних частот
Углубимся в теорию сигналов. Ценовой ряд можно разложить на:
Price(t) = Trend(t) + Cycle(t) + Noise(t)
- Trend(t) — долгосрочный дрейф.
- Cycle(t) — колебания с периодом от нескольких дней до нескольких месяцев.
- Noise(t) — случайные флуктуации с нулевым средним.
ZigZag с большим `Depth` удаляет `Noise` и часть `Cycle`, оставляя аппроксимацию `Trend`. С малым `Depth` он пропускает и `Cycle`, и `Noise`, что делает его похожим на исходный ряд.
Сравнение с классическими фильтрами:
| Фильтр | Метод | Скорость | Искажение фазы | Предсказательная сила |
| Простая скользящая средняя | Сглаживание амплитуды | Быстрый | Есть (лаг) | Низкая |
| Экспоненциальная средняя | Взвешенное сглаживание | Быстрый | Меньше | Средняя |
| Фильтр Калмана | Рекурсивная оценка состояния | Сложный | Минимальный | Высокая |
| ZigZag | Сегментация по значимости | Мгновенный | Есть (если non-repainting) | Для структуры — высокая |
Главное преимущество ZigZag перед средними: он сохраняет разрывы (гэпы и FVG). Средняя линия всегда непрерывна и заполняет пустоты, а ZigZag честно показывает: здесь цена «прыгнула» через целую область. Именно эти прыжки — ключ к FVG.
3.5. Практический инструмент: калькулятор параметров
Для читателя, который хочет немедленно применить, я создаю (мысленный) чек-лист подбора параметров:
Шаг 1. Определите тип анализа:
- Я хочу алгоритмическую систему без перерисовки Non-repainting, `backstep = 3`, `Depth = ATR(14)*0.618`.
- Я хочу визуальный ручной анализ. Можно классический перерисовыващийся, но с процентом или ATR.
Шаг 2. Выберите базу Depth:
- Форекс (EURUSD, GBPUSD): `Depth = 20 пунктов` для H1, `40` для H4, `80` для Daily.
- Золото (XAUUSD): `Depth = 3 доллара` для H1, `6` для H4.
- Биткоин: `Depth = 0.5%` для H1, `1%` для H4.- Акции: `Depth = 0.7%` для дневок.
Шаг 3. Настройте `backstep` (для non-repainting):
- M1-M15: `backstep = 5` (так как шума много).
- H1-H4: `backstep = 3`.- Daily+: `backstep = 2`.
Шаг 4. Проверьте результат: