Система розпізнавання патернів: голова і плечі, трикутники, клини

Ручна розмітка фігур забирає час і все одно розходиться в різних аналітиків. Ми розробляємо системи розпізнавання патернів під ключ: від правил розмітки до передачі налаштованого контуру вашим фахівцям. Розбір графіків прискорюється в рази, а рішення спираються на єдиний перевірюваний набір правил.
Часті запитання

Розпізнавання патернів: де ламається ручне розмічання графіків

Розпізнавання патернів ламається рівно там, де починається ручне розмічання графіків. Голова й плечі, трикутник і клин — геометрія, яку аналітик проводить по свічках вручну, і наступного разу він проведе її трохи інакше.

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

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

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

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

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

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

Що змінюється в торговій системі після автоматизації розбору фігур

Ручне розмічання впирається в людину: два аналітики на одній історії по-різному ставлять межі «голови й плечей», трикутника або клина. На кварталі історії по десятку інструментів це дні роботи, а розбіжності випливають пізно — коли рішення по інструменту вже розійшлися.

Автоматизація переводить фігуру в набір перевірюваних умов: положення локальних екстремумів, нахил і торкання трендових ліній, підтвердження обсягом. Стан ведеться явно — формується, підтверджена, зламана, — тому сигнал не залежить від того, хто дивився на графік.

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

Що це змінює за нашими вимірюваннями:

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

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

Частину геометричних примітивів беремо з відкритої бібліотеки TA-Lib, логіку самих фігур і підтверджень описуємо самі — її можна правити під конкретний ринок.

Розбір перестає бути обмеженням за часом, а розмічання стає відтворюваним: той самий прогін на тих самих даних дає той самий результат.

Як влаштовано розпізнавання патернів: три підходи до пошуку фігур

Формалізувати фігуру можна трьома способами, і в кожного своя ціна помилки.

Жорстке правило описує форму через знайдені екстремуми, нахил трендових ліній і допуск на торкання в частках волатильності; навчання на розміченій історії шукає ту саму форму за ознаками вікна; гібрид залишає за правилами чорновий відбір, а за аналітиком — підтвердження спірних випадків.

Вибір залежить від ліквідності інструмента, горизонту та того, який клас помилок допустимий у рішенні.

Підхід Коли підходить Обмеження
Жорсткі геометричні правила Ліквідні інструменти, старші горизонти, потрібна пояснюваність кожного сигналу Допуски підбираються вручну, правило ламається при зміні волатильності, у боковику багато хибних спрацьовувань
Навчання на розміченій історії Багато однорідних даних, потрібна стійкість до шуму Якість впирається в розмічання, класи незбалансовані, поведінка пливе при зміні режиму
Гібрид із ручною валідацією За сигналами ухвалюють рішення, помилка дорога Частина перевірки залишається за аналітиком, відгук повільніший за автоматичний

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

Гібрид закриває це ручною валідацією спірних випадків, але правила виявлення фігур усе одно фіксуються до навчання.

Етапи роботи: від аудиту даних до передачі налаштованої системи

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

Такий порядок прибирає підгонку під конкретну ділянку графіка — детектор перевіряється на даних, яких не бачив під час налаштування.

  1. Аудит історичних даних і вимог. Перевіряємо повноту котирувань, пропуски, дроблення та склейки, часові пояси, узгоджуємо список фігур («голова й плечі», трикутники, клини), таймфрейми та те, що вважаємо підтвердженням фігури.
  2. Схема ознак фігури. Формалізуємо геометрію: кількість торкань лінії тренду, нахил, симетрію плечей, глибину відкату, поведінку обсягу на пробої. Без письмової схеми ознаки перетворюються на суб’єктивщину й не відтворюються.
  3. Налаштування пошуку фігур. Реалізуємо детектор: згладжування ряду, пошук локальних екстремумів, апроксимація ліній, перевірка геометрії. На виході — розмічання з координатами меж та оцінкою впевненості за кожною фігурою.
  4. Перевірка на відкладеному періоді. Проганяємо детектор по даних, що не брали участі в налаштуванні, рахуємо точність і повноту, розбираємо розбіжності з розмічанням аналітика. Це відокремлює реальне розпізнавання патернів від запам’ятовування історії.
  5. Калібрування порогів. Підбираємо допуски за нахилом, довжиною та обсягом так, щоб прибрати хибні спрацьовування, не втративши рідкісні фігури. Підсумкові значення фіксуємо в конфігурації, а не в коді.
  6. Передача та навчання команди. Віддаємо розмічання, конфігурацію та інструкцію з додавання нових фігур, показуємо, які метрики відстежувати, щоб якість пошуку не просідала після змін.

Склад постачання: правила розмічання, схеми, регламенти оновлення

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

  • Правила розмічання — критерії сформованої фігури: скільки свічок формують вершину й плечі, допустима асиметрія, як трактуються розриви та новинні імпульси. Розмітник і алгоритм дотримуються одного документа, тому розбіжність видно одразу.
  • Схема ознак — таблиця «ознака → джерело → вікно розрахунку → вага в рішенні»: нахил трендової, глибина відкату, обсяг на пробої. Нова ознака додається без ламання вже налаштованих.
  • Конфігурація пошуку фігур — пороги допуску, мінімальна амплітуда, вікно підтвердження, правила придушення дублів. Пороги винесені з коду: їх правлять без перезбирання сервісу.
  • Регламент перенавчання та перегляду порогів — за якою вибіркою і з якою періодичністю звіряємо розмічання, які метрики вважаємо деградацією і хто затверджує зміну конфігурації.
  • Журнал перевірок — контрольні набори з ручним розмічанням та історією прогонів: видно, після якої зміни просіла точність і який набір порогів спрацював краще.
  • Документація по системі — інструкції для команди: як підняти сервіс розпізнавання, де дивитися відхилені сигнали, як відкотити конфігурацію до попередньої.
  • Карта володіння — хто відповідає за розмічання, хто за ознаки, хто за пошук фігур: без неї артефакти старіють за квартал.

Розбір проєкту торгової платформи: розмічання до і після

Розмічання фігур жило в таблиці: аналітики вручну позначали «голову й плечі», трикутники та клини, кожна мітка — з інтервалом графіка, діапазоном барів і коментарем.

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

Сигнал за підтвердженою фігурою доходив до торгового контуру через десятки секунд після закриття бару: частина руху на цей момент уже відпрацьована.

Що змінили по суті

Фігуру перестали описувати картинкою — вона стала набором формальних умов: кількість торкань лінії тренду, нахил, допустиме відхилення ціни від межі, мінімальна глибина відкату, обов’язковий підтверджувальний бар.

Розмічання аналітиків перенесли в Label Studio і прив’язали до інтервалу графіка, а спірні епізоди вивели в окрему чергу узгодження, щоб вони не розчинялися в загальній вибірці.

Метрики до і після

  • Узгодженість розмічання між аналітиками: 71% → 94%.
  • Частка спірних розмічених епізодів: 19% → 4%.
  • Повнота виявлення рідкісних фігур: 0,4 → 0,9.
  • Затримка сигналу після підтвердження: десятки секунд → одиниці секунд.
  • Хибні спрацьовування на шумі: знизилися втричі за того самого порогу підтвердження.

Що довелося доопрацювати по ходу

Перша версія правил не розрізняла клин і трикутник на межі діапазону: формації з двома торканнями йшли в одну мітку.

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

Окремо лагодили розбіжність між розмічанням на різних інтервалах: одну фігуру на денному й тижневому графіку аналітики датують по-різному, тому мітку прив’язали до інтервалу, на якому фігуру підтверджено.

Що робити, якщо фігури вже розмічені вручну?

Ручне розмічання історичних фігур — не сміття, а готова навчальна вибірка: у ній зафіксовано вашу трактовку ринку, яку з котирувань не відновити. Питання не в тому, довіряти їй чи ні, а в тому, чи узгоджені критерії між тими, хто розмічав.

Якщо розмічання збиралося роками різними людьми, якість розмічання — це перше, що перевіряють до будь-якого донавчання.

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

Далі аудит випадкової вибірки: спірні фрагменти віддають на перерозмічання двом незалежним розмітникам, розбіжності йдуть в арбітраж за правилом, а не за голосуванням. Так якість стає вимірюваною, а не «на око».

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

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

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

Перенесення правил перевіряємо регресійним набором: старі розмічені фігури проганяємо до і після донавчання. Частка збігів не повинна падати — нові класи не мають права «з’їдати» попередні.

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

Технічні сумніви: шум, хибні фігури, стійкість до збоїв

На живих даних пошук фігур зустрічає розриви котирувань, неповні свічки та неоднозначне розмічання. Нижче — п’ять питань, які найчастіше випливають на прийманні, і те, як ми закриваємо кожне.

Як система справляється з шумом на молодших періодах?

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

Фігури рідкісні — як бути з трикутниками та клинами?

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

Де гарантія, що модель не перенавчена?

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

Що відбувається при розривах потоку даних?

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

Що входить у підтримку після впровадження?

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

Обговоримо вашу задачу: дані, фігури, вимоги до сигналів

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

  • Дані та історія. Інструменти й інтервали, джерело (біржа, брокер, власний архів), глибина у свічках, пропуски та розриви між сесіями, правила склейки контрактів.
  • Розмічання фігур. Що обов’язково: голова й плечі у двох варіантах, трикутники, клини. З допусками — мінімальна висота й ширина фігури, кількість торкань ліній, кут нахилу.
  • Критерій підтвердження. Пробій лінії шиї або межі із закріпленням, повернення ціни до пробитого рівня, підтвердження за обсягом. Від цього залежить затримка сигналу щодо моменту формування фігури.
  • Вимоги до якості. Допустима частка хибних спрацьовувань, поведінка на неповних фігурах і на інструментах із низькою ліквідністю.
  • Доставка сигналу. Черга повідомлень, запис у таблицю або виклик зовнішнього сервісу; формат повідомлення, затримка, чи потрібен журнал з історією спрацьовувань.
  • Порядок впровадження та приймання. На якому історичному відрізку перевіряємо точність, хто на вашому боці приймає результат, чи потрібен тестовий контур із потоком даних у реальному часі.

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

Напрямки блокчейн-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1393
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1368
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    815
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1139