Зміст статті

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

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

Дані та ринкиВикористовуйте заповнені бари OHLC для акцій, ф'ючерсів або криптовалют з фіксованою біржею, сесією та угодою про коригування ціни. Детектор може обробляти негативні ціни, коли його порівняння залишаються дійсними; правила на основі відсотків потребують окремих запобіжних заходів.
Таймфрейми дослідженняM15, H=1, H=4 та денні бари – це окремі експерименти. Однакова кількість барів не відображає однаковий час, що минув, кількість сесій або можливостей виконання на різних ринках.
Максимум на 105 досягається на барі 2, але підтверджується на барі 4; мінімум на 99 підтверджується через два бари після його досягнення.Відкрити ілюстрацію в повному розмірі
Оригінальні синтетичні дані. Ілюстративний ряд максимумів відокремлює кожен екстремум від підтвердження із затримкою у два бари. Затримка — інформаційне обмеження, а не вимір прибутку.

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

Порядок дій: Ліве і праве вікна pivot: екстремуми без майбутніх даних
Повні кроки наведено нижче. На кожному етапі потрібно записати причину відхилення, якщо бракує даних або не виконано умови.
  1. Перевірте бариПрийміть повне вікно закритих спостережень.
  2. Відступіть назад на r барівОцініть кандидата i=t−r.
  3. Порівняйте обидві сторониЗастосуйте конвенцію зареєстрованого плато.
  4. Запишіть підтвердженняЗберігайте час виникнення й підтвердження окремо.
  5. Передайте подію стратегіїДозволяйте лише наступну інформацію для запуску торгів.

Екстремум має час виникнення та час підтвердження

На барі i новий максимум є лише кандидатом. З правим вікном r=3, ще три бари повинні закритися, перш ніж детектор зможе встановити, чи залишилися їхні максимуми нижче нього. Збережіть occurred_at=i та confirmed_at=i+3. Графік може намалювати маркер в i для зручності читання, але ордер, що використовує цю подію, не може існувати до підтвердження та відповідної затримки обробки даних.

TradingView описує геометрію pivot з вікнами по обидва боки [1] і застерігає: нанесення pivot на минулий бар може спотворювати час, коли він став відомим [2]. SciPy find_peaks використовує інше правило для плоских плато [3]. Тому однакового кінцевого зображення недостатньо для порівняння реалізацій: опорні точки та час їх доступності можуть відрізнятися.

Підтверджений розворот залишається історичним спостереженням, навіть якщо ціна пізніше пробиває його рівень. Розгляд кожного наступного прориву як доказу того, що старий розворот був неправильним, змішує визначення локального екстремуму з прогнозом постійного опору. Зберігайте спостереження окремо від гіпотез щодо їхнього майбутнього використання.

Детерміноване визначення з явним правилом рівних екстремумів

Запропонована базова лінія використовує l=r=2 та вибирає крайню праву точку рівних максимумів. H[i] має бути більшим або рівним кожному лівому максимуму та строго більшим за кожен правий максимум. Змініть нерівності для мінімумів. Ці параметри та правила визначення рівності є експериментальними налаштуваннями, а не оптимальними значеннями чи точним відтворенням певної бібліотеки.

Вимагати дійсних барів l+r+1 з упорядкованими, унікальними мітками часу та відомим торговим календарем. Якщо вікно перетинає відсутні дані, запишіть причину та пропустіть підтвердження. Заповнення відсутнього інтервалу вигаданим плоским торговим баром може змінити як плато, так і його затримку підтвердження. Заплановане закриття на ніч відрізняється від незрозумілого відсутнього бару.

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

on_closed_bar(t):
    i = t - r
    if i < l or window_has_missing_bar(i-l, t): return
    high_ok = H[i] >= max(H[i-l:i]) and H[i] > max(H[i+1:t+1])
    low_ok  = L[i] <= min(L[i-l:i]) and L[i] < min(L[i+1:t+1])
    if high_ok and low_ok: emit_ambiguous(i, confirmed_at=t)
    elif high_ok: emit_once('HIGH', i, H[i], confirmed_at=t)
    elif low_ok: emit_once('LOW', i, L[i], confirmed_at=t)

Числові приклади й випадки обов’язкового відхилення

Синтетичні максимуми 100, 102, 105, 104, 103 ідентифікують 105 за індексом 2. З l=r=2 подія стає доступною лише після закриття індексу 4. Для годинних барів, що закриваються з 09:00 до 13:00, екстремум стався о 11:00, а підтвердження відбулося о 13:00. Ордер на основі цього підтвердження може бути поданий лише після цього.

Замініть останній максимум на 106: кандидат 105 не підтвердиться. Видаляти опублікований pivot не потрібно — цей кандидат ніколи не був підтверджений. У ряду 100, 102, 105, 105, 104, 103 запропоноване правило вибирає другий, крайній правий максимум 105. Строгі нерівності з обох боків відхилили б плато; це інший детектор, що потребує окремої версії.

Зовнішній бар із H=108 та L=95 може мати максимум вище сусідніх максимумів і мінімум нижче сусідніх мінімумів. OHLC не встановлює, що було раніше: 108 чи 95. Збережіть обидва факти або прапорець неоднозначності, але не трактуйте їх як два послідовні кроки моделі «голова та плечі». Корисний тест задає тому самому бару OHLC два можливі внутрішньобарні шляхи й перевіряє, що детектор за самими барами не стверджує того, чого неможливо дізнатися з його вхідних даних.

Перетворення якорів на окрему торговельну гіпотезу

Сам детектор не розміщує ордерів. Один запропонований експеримент купує лише після того, як подальше закриття перетне підтверджений максимум pivot плюс буфер: buffer=max(2 ticks,0.1×ATR from before the trigger bar). Тут беруться два тики та ATR до сигнального бару. Вхід на наступному відкритті за доступною для виконання ціною і заздалегідь виставлений стоп-ордер на купівлю — різні моделі виконання; виберіть одну до оцінки результатів.

Раніше підтверджений мінімум pivot може задавати структурний стоп, а фіксований строк K барів обмежує, як довго максимум залишається потенційним рівнем. Не записуйте пробій, що нібито стався до доступності потрібної опорної точки. Якщо через інший детектор чи затримку даних рівень уже перетнуто, відхиліть застарілу модель або визначте окрему стратегію пізнього входу.

Зберігайте сирий потік pivot незмінним. Чергування максимумів і мінімумів — подальше перетворення: два послідовні максимуми можуть потребувати об’єднання або заміни кандидата, але ці операції мають мати версії та часові позначки. Опублікована модель не може непомітно отримати кращу опорну точку з пізніших даних. Явно записуйте анулювання, закінчення строку чи створення кандидата на заміну.

Тест виконання має включати ціновий геп між сигналом і виконанням, недоступність позики паперів для короткої позиції у дзеркальній стратегії та перетин стопа до наступного відкриття. Коректна подія детектора може не привести до угоди або привести до економічно невигідної угоди; звіт має розрізняти ці результати.

Ознаки обсягу належать до конкретних часових позначок

Зберігайте обсяг на occurred_at і на confirmed_at в окремих стовпцях. Перший описує торгову активність на екстремумі, другий — під час подальшого підтвердження. Ознака за наступними трьома барами доступна під час підтвердження, а не заднім числом на барі pivot. Її часова позначка має бути після найновішого використаного входу.

Запропоноване порівняння перевіряє модель лише за ціною проти додавання RVOL на подальшому тригері: поточний обсяг ділиться на медіану обсягів попередніх 20 барів; експериментальний поріг — 1.5. Для внутрішньоденних акцій база в той самий час сесії зазвичай краще визначена, ніж змішування відкриття із серединою дня. Тиковий обсяг FX вимірює оновлення конкретного постачальника й автоматично не означає кількість проторгованих контрактів.

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

Перевірте коректність подій до оцінки дохідності

Повторно обробляйте кожен початковий відрізок даних і порівнюйте всі події, опубліковані до його кінця. Додавання 100 барів не повинно змінювати ідентифікатор, ціну, тип чи час підтвердження старої події. Порівнюйте записи, не знімки екрана. Додайте тестові набори для плато, зовнішніх барів, пропусків, зміни розміру тика та від’ємних цін, якщо інструмент їх допускає.

Вимірюйте кількість pivot на 1,000 барів, затримку підтвердження, відстань між опорними точками та частку побудованих згодом моделей, уже недійсних на час, коли відома їхня остання опорна точка. Ці показники пояснюють зміну набору можливостей при зміні детектора ще до аналізу прибутку.

Порівняйте l=r=2 із 3 та 5 на даних розробки й зафіксуйте вибір до фінального тесту. Асиметричні вікна перевіряйте як окремо зареєстровані конфігурації. Візуально привабливіші опорні точки не доводять вищого математичного сподівання після витрат. Фінальна оцінка торгівлі має врахувати спред, комісії, гепи, виконання стопів, розмір позиції та втрачені можливості через затримку підтвердження.

Поширені помилки

Вхід точно в ретроспективно позначену крайню точку

Помилка — використовувати позначку, нанесену на минулий бар, як час ордера. Повторний розрахунок на початкових відрізках виявляє використання інформації, ще недоступної на той час.

Плутанина локальних опорних точок із опорними точками сесії

Локальні екстремуми та формули P, R та S на основі сеансу – це різні інструменти з різними вхідними даними.

Вибір масштабу після перегляду результатів

Кожна пара l/r є дослідницькою спробою. Зберігайте невдалі варіанти разом із вибраною конфігурацією.

Список перевірки перед застосуванням методу

Позначайте кожен пункт після перевірки на власних даних. Прогрес зберігається в цьому браузері й не засвідчує прибутковість стратегії.

0/8 пунктів

Поширені запитання

Чи усуває r=0 затримку?

Можна отримати детектор екстремумів лише за минулими даними, але без підтвердження розвороту подальшими барами праворуч. Це інший сигнал, що потребує окремої оцінки.

Чи може ціна пробити підтверджений розворот?

Так. Історичний екстремум залишається правильно визначеним; пізніший прорив опору не стирає спостереження.

Джерела дослідження

Кожне джерело підтверджує визначення або докази, описані поруч. Псевдокод, штучні приклади та запропоновані параметри потребують окремої перевірки.

  1. Auto trendlinesTradingView. Вивчено визначення pivot з вікнами по обидва боки; комерційні приклади не вважаються доказом прибутковості. Перевірено: .
  2. Pine Script: RepaintingTradingView. Прочитайте розділи про побудову графіків у минулому та плинні, незавершені дані. Перевірено: .
  3. scipy.signal.find_peaksSciPy. Вивчено поведінку на плато та за пропусків даних; це специфікація API, а не фінансовий доказ. Перевірено: .

Пов’язані методи

Примітка про ризики

Матеріал призначений для навчання й планування досліджень, а не є фінансовою порадою. Backtest моделює минулі дані, не гарантує майбутніх результатів і не здійснює реальних угод. Методи бібліотеки не обов’язково реалізовані в застосунку. Дивіться методологію і навчальний центр.

Перевірте правила, перш ніж ризикувати реальним капіталом

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

Завантажити Backtest в App Store