Зміст статті

Докази та сфера застосування

Джерела пояснюють зміну напрямку, поведінку ZigZag та ATR. Детектор за цінами закриття з одним зафіксованим порогом на хвилю — незалежна пропозиція реалізації, а не результат прибутковості чи точна копія опублікованого індикатора.

Дані та ринкиВикористовуйте послідовну послідовність закриття або торгових подій. Ці варіанти вибірки є різними експериментами і не повинні бути поєднані в одному результаті.
Таймфрейми дослідженняM30, H=1 та денні бари є дослідницькими прикладами. Той самий множник ATR не обов'язково описує однаковий економічний рух, затримку чи вартість виконання на різних ринках.
Ціна досягає 105, але підтверджує максимум лише на 102; наступний мінімум на 100 підтверджується після відскоку до 103.Відкрити ілюстрацію в повному розмірі
Синтетичні ціни закриття. Перші дві хвилі використовують ілюстративний фіксований поріг у три пункти. Позначки екстремумів і підтверджень розташовані на різних барах.

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

Порядок дій: ATR Зигзаг: підтвердження коливань з порогом причинного розвороту
Повні кроки наведено нижче. На кожному етапі потрібно записати причину відхилення, якщо бракує даних або не виконано умови.
  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 нехай хвиля DOWN досягне 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