Розпізнавання патернів: де ламається ручне розмічання графіків
Розпізнавання патернів ламається рівно там, де починається ручне розмічання графіків. Голова й плечі, трикутник і клин — геометрія, яку аналітик проводить по свічках вручну, і наступного разу він проведе її трохи інакше.
Зсунулася на пару свічок лінія шиї — і фігура формально не підтверджена, хоча ринок відпрацював саме її.
На історії в кілька сотень епізодів розбіжність накопичується. Два розмітники дають різні вибірки, та сама конфігурація потрапляє то в навчальний набір, то в перевірний, і порівняння гіпотез втрачає сенс — порівнювати стає нічого.
Зворотний бік ще дорожчий: поки межі фігури уточнюються очима, зростає затримка торгового сигналу, і вхід за трикутником трапляється, коли рух уже пройдено.
Нічні сесії та рідкісні інструменти додають своє — епізод пропущено, статистика по фігурі зміщена в бік тих годин, коли аналітик був біля монітора.
Причина не в кваліфікації розмітника, а у відсутності формалізованих критеріїв: де закінчується формування фігури, який розмах вважаємо значущим, скільки свічок підтверджують пробій і що вважаємо його скасуванням.
Без цих правил розпізнавання патернів залишається експертною думкою, яку не можна ні відтворити, ні перевірити на історії. Далі розбираємо, як це закривається перенесенням логіки фігур у код і на чому саме ловлять хибні спрацьовування.
Що змінюється в торговій системі після автоматизації розбору фігур
Ручне розмічання впирається в людину: два аналітики на одній історії по-різному ставлять межі «голови й плечей», трикутника або клина. На кварталі історії по десятку інструментів це дні роботи, а розбіжності випливають пізно — коли рішення по інструменту вже розійшлися.
Автоматизація переводить фігуру в набір перевірюваних умов: положення локальних екстремумів, нахил і торкання трендових ліній, підтвердження обсягом. Стан ведеться явно — формується, підтверджена, зламана, — тому сигнал не залежить від того, хто дивився на графік.
Окремий шар перевірок відкидає кандидата, якщо всередині вікна є розрив або пропуск котирувань: такі стики збирали фігуру з несуміжних барів і давали гірший клас хибних входів.
Що це змінює за нашими вимірюваннями:
| Показник | Ручний розбір | Автоматичний |
|---|---|---|
| Розбір кварталу історії | дні роботи аналітика | один прогін по всій вибірці |
| Межі фігури в різних аналітиків | розходяться | єдині правила, розбіжність у межах допуску |
| Пропуск фігури | залежить від завантаження | історія проходить повністю |
| Розрив або пропуск котирувань | фігура склеюється з несуміжних барів | вікно позначається, фігура не будується |
Контроль якості тримається на еталонному наборі — кілька сотень фігур, розмічених вручну, включно зі спірними. Прогін після кожної зміни правил показує окремо частку хибних спрацьовувань і окремо частку пропущених: спроба придушити одну метрику за рахунок іншої видна одразу.
Частину геометричних примітивів беремо з відкритої бібліотеки TA-Lib, логіку самих фігур і підтверджень описуємо самі — її можна правити під конкретний ринок.
Розбір перестає бути обмеженням за часом, а розмічання стає відтворюваним: той самий прогін на тих самих даних дає той самий результат.
Як влаштовано розпізнавання патернів: три підходи до пошуку фігур
Формалізувати фігуру можна трьома способами, і в кожного своя ціна помилки.
Жорстке правило описує форму через знайдені екстремуми, нахил трендових ліній і допуск на торкання в частках волатильності; навчання на розміченій історії шукає ту саму форму за ознаками вікна; гібрид залишає за правилами чорновий відбір, а за аналітиком — підтвердження спірних випадків.
Вибір залежить від ліквідності інструмента, горизонту та того, який клас помилок допустимий у рішенні.
| Підхід | Коли підходить | Обмеження |
|---|---|---|
| Жорсткі геометричні правила | Ліквідні інструменти, старші горизонти, потрібна пояснюваність кожного сигналу | Допуски підбираються вручну, правило ламається при зміні волатильності, у боковику багато хибних спрацьовувань |
| Навчання на розміченій історії | Багато однорідних даних, потрібна стійкість до шуму | Якість впирається в розмічання, класи незбалансовані, поведінка пливе при зміні режиму |
| Гібрид із ручною валідацією | За сигналами ухвалюють рішення, помилка дорога | Частина перевірки залишається за аналітиком, відгук повільніший за автоматичний |
Спільна слабкість усіх трьох — розмічання історичних даних. Якщо межі фігури на навчанні ставляться за вже відомим продовженням ціни, якість на історії виглядає високою, а на нових даних модель розсипається: перевіряти потрібно на ковзному вікні, навчаючи лише на минулому.
Гібрид закриває це ручною валідацією спірних випадків, але правила виявлення фігур усе одно фіксуються до навчання.
Етапи роботи: від аудиту даних до передачі налаштованої системи
Роботу ведемо ітераціями: спочатку фіксуємо, що саме вважаємо фігурою на історичних даних, потім будуємо відтворюваний пошук і тільки після цього підбираємо пороги.
Такий порядок прибирає підгонку під конкретну ділянку графіка — детектор перевіряється на даних, яких не бачив під час налаштування.
- Аудит історичних даних і вимог. Перевіряємо повноту котирувань, пропуски, дроблення та склейки, часові пояси, узгоджуємо список фігур («голова й плечі», трикутники, клини), таймфрейми та те, що вважаємо підтвердженням фігури.
- Схема ознак фігури. Формалізуємо геометрію: кількість торкань лінії тренду, нахил, симетрію плечей, глибину відкату, поведінку обсягу на пробої. Без письмової схеми ознаки перетворюються на суб’єктивщину й не відтворюються.
- Налаштування пошуку фігур. Реалізуємо детектор: згладжування ряду, пошук локальних екстремумів, апроксимація ліній, перевірка геометрії. На виході — розмічання з координатами меж та оцінкою впевненості за кожною фігурою.
- Перевірка на відкладеному періоді. Проганяємо детектор по даних, що не брали участі в налаштуванні, рахуємо точність і повноту, розбираємо розбіжності з розмічанням аналітика. Це відокремлює реальне розпізнавання патернів від запам’ятовування історії.
- Калібрування порогів. Підбираємо допуски за нахилом, довжиною та обсягом так, щоб прибрати хибні спрацьовування, не втративши рідкісні фігури. Підсумкові значення фіксуємо в конфігурації, а не в коді.
- Передача та навчання команди. Віддаємо розмічання, конфігурацію та інструкцію з додавання нових фігур, показуємо, які метрики відстежувати, щоб якість пошуку не просідала після змін.
Склад постачання: правила розмічання, схеми, регламенти оновлення
Розмічання патернів і параметри пошуку не повинні жити в голові розробника або в листуванні: при першій же розбіжності сигналів незрозуміло, чия правда. Тому разом із системою замовник отримує артефакти, за якими її можна експлуатувати, перевіряти й передавати іншій команді.
- Правила розмічання — критерії сформованої фігури: скільки свічок формують вершину й плечі, допустима асиметрія, як трактуються розриви та новинні імпульси. Розмітник і алгоритм дотримуються одного документа, тому розбіжність видно одразу.
- Схема ознак — таблиця «ознака → джерело → вікно розрахунку → вага в рішенні»: нахил трендової, глибина відкату, обсяг на пробої. Нова ознака додається без ламання вже налаштованих.
- Конфігурація пошуку фігур — пороги допуску, мінімальна амплітуда, вікно підтвердження, правила придушення дублів. Пороги винесені з коду: їх правлять без перезбирання сервісу.
- Регламент перенавчання та перегляду порогів — за якою вибіркою і з якою періодичністю звіряємо розмічання, які метрики вважаємо деградацією і хто затверджує зміну конфігурації.
- Журнал перевірок — контрольні набори з ручним розмічанням та історією прогонів: видно, після якої зміни просіла точність і який набір порогів спрацював краще.
- Документація по системі — інструкції для команди: як підняти сервіс розпізнавання, де дивитися відхилені сигнали, як відкотити конфігурацію до попередньої.
- Карта володіння — хто відповідає за розмічання, хто за ознаки, хто за пошук фігур: без неї артефакти старіють за квартал.
Розбір проєкту торгової платформи: розмічання до і після
Розмічання фігур жило в таблиці: аналітики вручну позначали «голову й плечі», трикутники та клини, кожна мітка — з інтервалом графіка, діапазоном барів і коментарем.
Ми прогнали вимірювання розбіжностей на одних і тих самих ділянках і отримали цифру, яка аудиторії зазвичай не подобається: незалежні розмітники збігаються лише в 71% випадків, а рідкісні формації — розширюваний трикутник, звужуваний клин — знаходив один аналітик із чотирьох.
Сигнал за підтвердженою фігурою доходив до торгового контуру через десятки секунд після закриття бару: частина руху на цей момент уже відпрацьована.
Що змінили по суті
Фігуру перестали описувати картинкою — вона стала набором формальних умов: кількість торкань лінії тренду, нахил, допустиме відхилення ціни від межі, мінімальна глибина відкату, обов’язковий підтверджувальний бар.
Розмічання аналітиків перенесли в Label Studio і прив’язали до інтервалу графіка, а спірні епізоди вивели в окрему чергу узгодження, щоб вони не розчинялися в загальній вибірці.
Метрики до і після
- Узгодженість розмічання між аналітиками: 71% → 94%.
- Частка спірних розмічених епізодів: 19% → 4%.
- Повнота виявлення рідкісних фігур: 0,4 → 0,9.
- Затримка сигналу після підтвердження: десятки секунд → одиниці секунд.
- Хибні спрацьовування на шумі: знизилися втричі за того самого порогу підтвердження.
Що довелося доопрацювати по ходу
Перша версія правил не розрізняла клин і трикутник на межі діапазону: формації з двома торканнями йшли в одну мітку.
Додали ознаку форми лінії шиї та вимогу до мінімальної кількості торкань — спірні епізоди просіли, але частина широких формацій випала з детекції, і поріг довелося калібрувати заново на історичних даних.
Окремо лагодили розбіжність між розмічанням на різних інтервалах: одну фігуру на денному й тижневому графіку аналітики датують по-різному, тому мітку прив’язали до інтервалу, на якому фігуру підтверджено.
Що робити, якщо фігури вже розмічені вручну?
Ручне розмічання історичних фігур — не сміття, а готова навчальна вибірка: у ній зафіксовано вашу трактовку ринку, яку з котирувань не відновити. Питання не в тому, довіряти їй чи ні, а в тому, чи узгоджені критерії між тими, хто розмічав.
Якщо розмічання збиралося роками різними людьми, якість розмічання — це перше, що перевіряють до будь-якого донавчання.
Рахуємо згоду за кожним типом фігур окремо: чи збігаються межі, точка підтвердження, мінімальна амплітуда. Де частка збігів низька, це не шум моделі, а спірне правило — його узгоджують до навчання.
Далі аудит випадкової вибірки: спірні фрагменти віддають на перерозмічання двом незалежним розмітникам, розбіжності йдуть в арбітраж за правилом, а не за голосуванням. Так якість стає вимірюваною, а не «на око».
Конфлікти розмічання майже завжди трьох видів: одна фігура розмічена з різними межами, одна ділянка графіка позначена і трикутником, і клином, або фігури перетинаються за часом.
Кожен конфлікт класифікується й закривається рішенням, яке фіксується в схемі розмічання з версією — інакше на наступній ітерації ті самі розбіжності повернуться.
Донавчання на своїх даних іде поверх базової моделі, а не з нуля, і з розбиттям вибірки за ринковими періодами: інакше система вивчить один режим і розвалиться на зміні волатильності. Правила розбору при цьому залишаються джерелом істини, а модель розширює охоплення розпізнавання.
Перенесення правил перевіряємо регресійним набором: старі розмічені фігури проганяємо до і після донавчання. Частка збігів не повинна падати — нові класи не мають права «з’їдати» попередні.
Якщо падає, правило вагоміше за модель: розмічання вивантажується з термінала TradingView, і розбіжність із ним видно вже на перших прогонах.
Технічні сумніви: шум, хибні фігури, стійкість до збоїв
На живих даних пошук фігур зустрічає розриви котирувань, неповні свічки та неоднозначне розмічання. Нижче — п’ять питань, які найчастіше випливають на прийманні, і те, як ми закриваємо кожне.
Як система справляється з шумом на молодших періодах?
Шум на графіку гасимо на вході: згладжування ряду, поріг за амплітудою фігури, підтвердження обсягом. Частина ранніх сигналів при цьому відсікається — пороги тримаємо в конфігурації й підбираємо під конкретний інструмент, а не зашиваємо в код.
Фігури рідкісні — як бути з трикутниками та клинами?
Рідкісні формації — трикутники, клини, голова й плечі — оцінюємо не окремо, а сімействами однотипних конфігурацій. Так набирається статистика для чесної оцінки точності, а не підгонки під поодинокі випадки.
Де гарантія, що модель не перенавчена?
Перевіряємо на відкладеному відрізку історії, який не брав участі в налаштуванні, і проганяємо правила послідовно за часом. Помітний розрив між точністю на налаштуванні та на перевірці — пряма ознака перенавчання, таку конфігурацію повертаємо на доопрацювання.
Що відбувається при розривах потоку даних?
Розриви потоку даних фіксуємо окремою подією: історія довантажується, а сигнал, на який не вистачило котирувань, позначається непідтвердженим — система не добудовує свічки мовчки. Після відновлення потоку розмічання перераховується на повному ряду.
Що входить у підтримку після впровадження?
Підтримка після впровадження — це оновлення порогів під зміну волатильності, контроль частки хибних спрацьовувань і правки правил розмічання. Доступи до потоку й порядок зміни конфігурації описуємо регламентом, щоб система не залишилася без власника.
Обговоримо вашу задачу: дані, фігури, вимоги до сигналів
Щоб оцінка та план робіт спиралися на ваші дані, а не на усереднені припущення, для розмови вистачить відповідей за трьома осями: історія цін, розмічання фігур і вимоги до сигналів. Нижче — що саме уточнюємо і як кожен пункт змінює обсяг робіт.
- Дані та історія. Інструменти й інтервали, джерело (біржа, брокер, власний архів), глибина у свічках, пропуски та розриви між сесіями, правила склейки контрактів.
- Розмічання фігур. Що обов’язково: голова й плечі у двох варіантах, трикутники, клини. З допусками — мінімальна висота й ширина фігури, кількість торкань ліній, кут нахилу.
- Критерій підтвердження. Пробій лінії шиї або межі із закріпленням, повернення ціни до пробитого рівня, підтвердження за обсягом. Від цього залежить затримка сигналу щодо моменту формування фігури.
- Вимоги до якості. Допустима частка хибних спрацьовувань, поведінка на неповних фігурах і на інструментах із низькою ліквідністю.
- Доставка сигналу. Черга повідомлень, запис у таблицю або виклик зовнішнього сервісу; формат повідомлення, затримка, чи потрібен журнал з історією спрацьовувань.
- Порядок впровадження та приймання. На якому історичному відрізку перевіряємо точність, хто на вашому боці приймає результат, чи потрібен тестовий контур із потоком даних у реальному часі.
Якщо частини даних немає — старт це не блокує: підкажемо, чим замінити і як зібрати історію під ваш випадок. Опишіть задачу у вільній формі — повернемося з оцінкою та планом робіт, де етапи й точки перевірки зафіксовані.







