Розробка AI-моделі аналізу патернів свічкових графіків

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

Чому розробка AI-моделі свічкових патернів дає збій

Найчастіше розробка AI-моделі для аналізу свічкових патернів ламається не на архітектурі, а на даних.

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

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

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

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

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

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

Що змінюється після впровадження моделі розпізнавання патернів

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

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

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

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

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

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

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

Готове рішення чи навчання під ваші дані: порівняння підходів

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

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

Нижче — три робочі варіанти, між якими реально обирають, і те, чим кожен із них обмежений.

Варіант Коли підходить Обмеження
Готова система розпізнавання Потрібен працюючий результат у короткий строк, формації типові Логіка закрита, розмітку та пороги спрацювання не виправити; на вашому ринку якість не підтверджено
Донавчання готової моделі під свій ринок Є своя історія спостережень і 2–3 тисячі розмічених прикладів Потребує дисципліни розмітки та окремого періоду перевірки, де умови ринку не змінювалися
Навчання з нуля на своїх даних Нетипові формації, свої правила входу та виходу, потрібна повна прозорість рішення Найдовший шлях: потрібен великий і чистий розмічений масив

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

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

Етапи роботи: від аудиту даних до передачі в експлуатацію

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

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

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

Що замовник отримує на руки: комплект і документація

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

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

Кейс: точність розпізнавання патернів до та після донавчання

Замовник — команда алгоритмічної торгівлі: сигнали за свічковими патернами йшли аналітикам на підтвердження. Історію свічок збирали з вивантажень TradingView і внутрішнього архіву угод.

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

Метрика До Після
Повнота розпізнавання рідкісних патернів 58% 91%
Частка сигналів на ручній перевірці 54% 12%
Розкид точності за місяцями ±11 в.п. ±2 в.п.

Що змінили

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

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

Перевірка на відкладених даних

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

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

Чим розмітка патернів відрізняється від технічного аналізу

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

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

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

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

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

Лише тоді мітка відтворювана, а модель навчається на закономірності, а не на смаках конкретного розмітника.

Різниця видна на результаті. Якщо в задачі написано «модель має розуміти тренд», розмітка розходиться між експертами, якість не сходиться, і незрозуміло, що виправляти — дані чи архітектуру.

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

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

Часті технічні сумніви перед стартом роботи

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

Як ви перевіряєте, що модель не підігнана під минулі дані?

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

Якщо якість тримається на всіх вікнах, а не лише на останньому, це ознака стійкості, а не запам’ятовування.

Що станеться при зміні ринкового режиму?

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

У якому форматі потрібні дані та розмітка?

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

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

Кому належать дані та результат?

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

Обговоримо задачу та повернемося з оцінкою й планом

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

  • Історію котирувань за потрібними інструментами: формат OHLCV, інтервали, глибину вибірки та місця пропусків у даних.
  • Опис патернів, які модель має знаходити: словесні критерії та приклади «сигнал є» / «сигналу немає».
  • Розмітку або правило її отримання: хто позначав ділянки графіка та як розв’язувалися спірні випадки.
  • Межі застосування: на яких інтервалах і інструментах модель працює, що вважаємо пропуском сигналу, а що помилкою.
  • Метрики приймання: частка правильних спрацювань, допустима затримка виявлення, частка хибних сигналів на історичних даних.
  • Цільове середовище: де модель буде рахувати та які є обмеження за затримкою й обсягом даних.
  • Відповідального з вашого боку з правом узгоджувати розмітку та приймати результат.

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

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

Напрямки AI-розробки

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

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