Содержание статьи

Доказательства и область применения

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

Данные и рынкиИспользуйте последовательную последовательность закрытий или торговых событий. Эти варианты выборки представляют собой разные эксперименты, и их результаты не следует смешивать в одном исследовании.
Таймфреймы исследованияM30, H=1 и дневные бары — это примеры исследовательских данных. Один и тот же множитель ATR не обязательно описывает одно и то же экономическое движение, задержку или стоимость исполнения на разных рынках.
Цена достигает отметки 105, но подтверждает максимум только на уровне 102; последующий минимум на уровне 100 подтверждается после отскока к 103.Открыть иллюстрацию в полном размере
Синтетические цены закрытия. Первые два участка используют иллюстративный фиксированный порог в три пункта. Метки экстремумов и подтверждений относятся к разным барам.

Практическая последовательность действий

Порядок действий: ATR ZigZag: подтверждение экстремумов без будущих данных
Все шаги подробно описаны ниже. На каждом этапе нужно записывать причину отклонения при нехватке данных или невыполнении условий.
  1. Начните участок движенияСохраните направление, предварительный экстремум и опорное значение ATR.
  2. Обновите экстремумПродолжение движения меняет только активного кандидата.
  3. Измерьте разворотСравните расстояние разворота с зафиксированным порогом.
  4. Опубликовать событиеПри достижении порога сохраните время экстремума и время подтверждения.
  5. Переключите состояниеНачните противоположный участок с новым зафиксированным порогом.

Продолжительность свинга определяется событиями.

Восходящий тренд может длиться три или тридцать баров. Механизм поддерживает самую высокую цену закрытия, наблюдаемую во время активного тренда, но подтверждает её только после достаточно большого падения. Поэтому задержка подтверждения является переменной, в отличие от фиксированного окна правой точки разворота. Повышение порогового значения позволяет игнорировать больше мелких колебаний, при этом точки поворота обычно распознаются позже.

Исследование, основанное на анализе внутреннего времени, описывает изменение направления с помощью процентных пороговых значений [1]. ZigZag от TradingView имеет собственную конструкцию опорного сегмента и может изменять свой конечный сегмент [2]. В данной статье вместо этого указывается неизменяемый поток подтвержденных событий, при этом текущий кандидат хранится отдельно. Изменение предварительной конечной точки допустимо, если она явно является предварительной; представление ее в виде исторического торгового сигнала недопустимо.

Детектор помечает завершенное движение в соответствии со своими правилами. Он не утверждает, что подтвержденный максимум — это самая высокая цена, которую когда-либо достигнет рынок. Цена может немедленно развернуться снова. Разделение обнаружения событий, интерпретации тренда и управления сделками как в коде, так и в отчетности позволяет исключить возможность ошибочной оценки корректности на одном уровне при оценке успешности на другом.

Фиксируйте порог в начале участка движения

Предлагаемое правило берет значение A_ref из ATR14 на баре непосредственно перед началом нового участка и сохраняет значение q×A_ref неизменным на протяжении всего этого участка. q=2 — это исследовательская настройка. Необходимо явно определить истинный диапазон и выбранный метод сглаживания; в реализациях ATR могут использоваться другие соглашения о сглаживании ([3]). Пересчет порога для каждого бара приведет к созданию другого детектора.

Длительный период может нести пороговое значение из более раннего режима волатильности. Это преднамеренный компромисс ради стабильности, а не доказательство экономической целесообразности замораживания. Если изучаются адаптивные пороговые значения, регистрируйте эту версию отдельно и сохраняйте каждое обновление порогового значения. Никогда не заменяйте исторические пороговые значения последними значениями ATR при построении готового графика.

Базовая линия использует цены закрытия, чтобы избежать искусственного определения порядка максимума и минимума бара. Инициализируйте UP на первом закрытии после прогрева и не помечайте это начальное значение как подтвержденный минимум. При переключении на DOWN текущая цена закрытия становится предварительным минимумом. Если требуемый параметр ATR отсутствует или имеет неположительное значение, приостановите обнаружение до тех пор, пока не будут выполнены требования инициализации.

state = UP; extreme = first_close; extreme_i = first_i
threshold = q * ATR[first_i-1]
for each closed bar t after first_i:
    if state == UP:
        if C[t] > extreme: extreme, extreme_i = C[t], t
        elif extreme - C[t] >= threshold:
            emit HIGH(extreme_i, confirmed_at=t, price=extreme)
            state = DOWN; extreme, extreme_i = C[t], t
            threshold = q * ATR[t-1]
    else:
        if C[t] < extreme: extreme, extreme_i = C[t], t
        elif C[t] - extreme >= threshold:
            emit LOW(extreme_i, confirmed_at=t, price=extreme)
            state = UP; extreme, extreme_i = C[t], t
            threshold = q * ATR[t-1]

Численное подтверждение и неудачные результаты торговых операций

Синтетический пример: A_ref=1.5 и q=2 требуют разворота на три пункта. Закрытия идут по последовательности 100→102→105→104→103. Максимум 105 ещё предварительный: снижение составляет лишь два пункта. Следующее закрытие на 102 создаёт событие HIGH с ценой 105, временем экстремума на третьем наблюдении и подтверждением на шестом.

Замените это окончательное закрытие на 106, и предварительный максимум переместится на 106. Сигнал на короткую позицию не удален, поскольку ничего не было подтверждено. После подтвержденного снижения до 102 предположим, что нисходящая фаза достигает 100 и отскакивает к 103, при этом ее собственный замороженный порог также равен трем. Минимум на уровне 100 подтверждается на уровне 103. Завершающая линия соединяет привлекательные экстремумы, в то время как фактические решения стали возможны на уровнях 102 и 103.

Торговля может потерпеть неудачу даже после правильного обнаружения. Предлагаемая короткая позиция, открытая на следующем открытии 101.8 со стоп-лоссом на уровне 105.2, имеет запланированный ценовой риск в размере 3.4 пунктов. Если цена отскочит до 106, структурная гипотеза не подтвердится, и стоп-лосс может сместиться. Не следует классифицировать это как ошибку обнаружения; произошло изменение направления, но продолжения тренда не последовало.

Проверка границ должна включать разворот, точно равный пороговому значению, на одну ступень ниже него и на одну ступень выше него. Необходимо проверить, подтверждается ли равенство, как это делает базовая проверка. Также следует проверить равенство повторяющихся экстремумов: текущая реализация сохраняет метку времени более раннего события, поскольку она обновляется только при строго большем максимуме или строго меньшем минимуме.

Детектор не выбирает между торговлей на продолжение тренда и торговлей на разворот.

Возможны две отдельные гипотезы: следовать за недавно подтвержденным изменением направления или торговать против него. Предложенная базовая линия следует за ним на следующем открытии торгов, останавливается за только что подтвержденным экстремумом и выходит при противоположном изменении направления. Не следует выбирать между двумя интерпретациями отдельно для каждого сегмента исторического графика.

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

Для процентных порогов требуется правило знаменателя: снижение равно (peak−C)/peak, рост — (C−trough)/trough. Они несимметричны в пространстве логарифмической доходности. Разность логарифмов цен может дать симметричную альтернативу для строго положительных цен. Обычные отношения непригодны при нулевом или отрицательном опорном значении.

Тест выполнения должен воспроизводить внезапное изменение более чем на один пороговый уровень внутри бара. Базовая линия, основанная только на закрытии, генерирует максимум событие, поддерживаемое переходом состояния на этом закрытии; она не может восстановить каждое внутрибарное колебание. Версия, основанная на тиках, может генерировать больше событий, что является изменением разрешения входных данных, а не свидетельством некорректности реализации закрытия.

Сравнивайте объем, не путая вид деятельности и продолжительность.

Более длинный сегмент часто имеет больший общий объем просто потому, что содержит больше наблюдений. Сохраняйте общий объем, количество баров, средний объем и смещение цены вместе. Предлагаемая функция учета усилий делит объем на max(displacement, tick), но большое значение этого коэффициента само по себе не позволяет установить степень поглощения или идентифицировать участников.

При подтверждённом HIGH активность от extreme_i+1 до confirmed_at относится к наблюдаемому интервалу разворота. Храните её отдельно от объёма до экстремума и задайте, какому участку принадлежит сам бар экстремума. Хотя граница становится ясной при подтверждении, полученный признак нельзя использовать так, будто он был известен в момент более раннего экстремума.

Полезное сравнение добавляет RVOL для того же времени сессии на момент подтверждения, сохраняя правила входа, стопа и размера позиции. Проверьте, улучшает ли он чистую доходность внутри групп волатильности или лишь выбирает быстрые бары с большим спредом. Учитывайте отклонённые сигналы и пропуски объёма, чтобы отчёт только по завершённым сделкам не скрывал изменение числа возможностей.

Влияние чувствительности теста и инициализации

Зарегистрируйте небольшую сетку q, например 1.5, 2 и 3. Выбирайте значение только на данных разработки и фиксируйте его до итоговой проверки. Сообщайте число событий, время вне рынка, задержку подтверждения в барах и единицах ATR, частоту гэпов через стопы. Результат, устойчивый лишь при q=2.03, но исчезающий при 2.0 и 2.1, требует исследования.

Повторное воспроизведение последовательных префиксов данных должно сохранять все созданные события HIGH и LOW, даже при изменении текущего предварительного экстремума. Для каждого события сохраняйте состояние, время экстремума, A_ref и порог. Более раннее начало воспроизведения проверяет чувствительность к инициализации и прогреву; иначе произвольное начальное направление может влиять на неожиданно длинную историю.

Сравните замороженные и непрерывно адаптируемые пороговые значения как разные зарегистрированные модели. Также изучите переходы с высокой волатильностью, когда замороженное пороговое значение может привести к множеству событий после периода затишья, и переходы в периоды затишья, когда оно может привести к очень небольшому количеству событий. Эти диагностические методы объясняют поведение; выбор благоприятного режима после наблюдения за доходностью потребует проведения еще одного исследования.

Частые ошибки

Торги с незавершенного последнего сегмента

Временная конечная точка может измениться. Не допускайте ее попадания в подтвержденный исторический поток сигналов.

Будущий ATR улучшает старые экстремумы

Сохраняйте текущий эталонный показатель ATR вместо пересчета старых пороговых значений на основе более поздней волатильности.

Удобное смешивание теней и закрытий

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

Список проверки перед использованием метода

Отмечайте пункты после проверки на своих данных. Прогресс сохраняется в этом браузере и не подтверждает прибыльность стратегии.

0/8 пунктов

Частые вопросы

ATR ZigZag лучше, чем ZigZag, основанный на процентном соотношении?

Это эмпирическая гипотеза. ATR адаптирует масштаб, но добавляет период расчёта, правило сглаживания и фиксации порога; их тоже нужно проверять.

Может ли цена обновить максимум после подтверждения HIGH?

Да. HIGH описывает завершенный этап по правилу детектора, а не окончательный максимум рынка или гарантированный прогноз снижения.

Источники исследования

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

  1. The Theory of Intrinsic Time: A PrimerJames B. Glattfelder and Richard B. Olsen. Изучены изменение направления и несколько масштабов; это не бэктест предлагаемого варианта ATR. Проверено: .
  2. Zigzag indicatorTradingView. Изучены построение индикатора, прогнозируемые пивоты и ограничения последнего сегмента. Проверено: .
  3. Average True RangeTradingView. Изучены истинный диапазон и варианты сглаживания. Проверено: .

Связанные методы

Примечание о рисках

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

Проверьте правила, прежде чем рисковать реальным капиталом

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

Скачать Backtest в App Store