ML-модель аналізу технічних індикаторів RSI, MACD і Bollinger Bands

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

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

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

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

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

Хибні сигнали індикаторів тут не шум, а наслідок того, що індикатори описують ціну, а не причину її руху.

Основна поломка відбувається на навчанні. Підгонка під історію — це коли AI-модель технічних індикаторів знаходить поєднання значень RSI, MACD і Bollinger Bands, що збігалися зі зростанням у минулому вікні, але не мають повторюваної причини.

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

Аналіз RSI, MACD і Bollinger Bands втрачає силу в момент зміни характеру ряду: змінюється волатильність, співвідношення тренду й боковику, зв’язки між інструментами. Ознаки, відібрані на спокійній ділянці, перестають передбачати — і це не деградація ваг, а зсув самих даних.

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

Точність сигналів, затримка відгуку та стійкість до зміни режиму

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

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

  • Частка хибних спрацювань. Рахуємо не загальну точність, а частку входів, закритих за захисною умовою раніше за цільовий рівень — за кожним режимом окремо, а не в середньому за вибіркою.
  • Затримка відгуку. Від закриття бару з підтвердженим сигналом до розрахунку цільової позиції тримаємо частки бару, інакше вхід проходить за ціною гіршою за ту, на якій пораховано ознаку.
  • Боковик. Окремий прогін на ділянках без спрямованого руху: смуги Боллінджера стискаються, і модель не повинна відкривати вхід на кожному дотику до межі.
  • Трендова ділянка. Перевіряємо утримання позиції крізь відкати — сигнал не повинен перевертатися від першого повернення ціни до середньої.
  • Якість ознак. RSI, MACD і смуги рахуємо за однією методикою та одним періодом згладжування (TA-Lib як еталон) — розходження дає систематичний зсув сигналу.
  • Стійкість до зміни режиму. Момент перемикання фіксуємо за волатильністю, а не ручним правилом, і дивимося частку помилок у перші години після зміни.
  • Відтворюваність. Повторний прогін того самого відрізка дає ті самі сигнали — без цього метрики точності нічого не означають.

Варіанти побудови: від порогових правил до гібридних схем

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

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

Варіант Коли підходить Обмеження
Правила на індикаторах Потрібна повна пояснюваність рішення, історії мало, сигнал перевіряється вручну Ламається при зміні волатильності, пороги доводиться перебирати заново
Модель на табличних ознаках Індикатори вже зведено в один зріз на момент рішення, важливі їхні нелінійні поєднання Втрачає порядок подій: вхід у зону та вихід із неї виглядають однаково
Модель на послідовності Важливий сам шлях індикатора — серії, дивергенції, накопичення сигналу Потрібна довга історія й акуратна розмітка, підтримка дорожча
Гібридна схема Режим ринку змінюється, потрібні і пояснюваність, і гнучкість Потребує контуру регулярного донавчання та контролю зсуву розподілу

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

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

Етапи впровадження: від аудиту котирувань до експлуатації

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

  1. Аудит історичних даних. Зводимо котирування з різних джерел до єдиного кроку за часом, розмічаємо пропуски та розриви торгових сесій. Перевіряємо ряд на заглядання вперед: значення поточного бару не повинно потрапляти в розрахунок до моменту прийняття рішення.

  2. Проєктування ознак. RSI, MACD і Bollinger Bands рахуємо на ковзних вікнах із лагами, додаємо похідні — розходження ціни з індикатором, ширину смуг, зміну знака гістограми. Для кожної ознаки фіксуємо формулу, вікно та джерело.

  3. Навчання та підбір параметрів. Ряд розбиваємо за часом, а не випадково, інакше модель запам’ятовує сусідні бари й показує завищену якість. Параметри підбираємо на ділянці, яка не перетинається з перевірною.

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

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

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

Що залишається у вас: код, ознаки, регламенти, документація

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

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

Як скоротили частку хибних сигналів на боковику: розбір проєкту

Замовник — команда алгоритмічної торгівлі AlgoDesk: сигнали генерувалися автоматично за RSI, MACD і Bollinger Bands, але контур не розрізняв тренд і діапазон.

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

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

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

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

  • Частка сигналів, закритих за стопом одразу після входу на боковику: 61% → 23%.
  • Середня кількість входів на годину всередині діапазону: 14 → 5.
  • Прибутковість на трендових ділянках: у попередньому коридорі, затримка входу — одна свічка.
  • Просадка в діапазонні тижні: менша приблизно втричі.
  • Ручних зняттів сигналу трейдером: з десятків за зміну до поодиноких.

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

Чим відрізняється розбір індикаторів від прогнозу за сирими котируваннями?

Сирі котирування — зашумлений ряд: мікроструктурний шум, розриви на новинах, зміна волатильності.

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

Індикатори — стиснене подання того самого ряду: RSI, MACD і Bollinger Bands уже згладжені й нормовані, тому вхід виходить компактнішим і стійкішим до одиничних викидів.

Розбір індикаторів виграє там, де важлива пояснюваність результату. Перетин MACD, вихід RSI із зони перекупленості, дотик до межі каналу — рішення розкладається на перевірювані умови, які можна прогнати за історією та обговорити з ризик-контролем. Хибних спрацювань на коротких вікнах менше, а обсягу даних для навчання потрібно помітно скромніше.

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

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

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

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

Перенавчання, витоки даних і розриви: часті сумніви

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

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

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

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

Що робити з розривами та пропусками в ряду?

RSI, MACD і смуги Боллінджера рахуються за неперервним вікном, і пропуск усередині ламає значення.

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

Як розумієте, що модель працює не в одному режимі ринку?

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

Наскільки пояснюваний результат?

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

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

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

Цього достатньо, щоб оцінити склад даних, етапність і обсяг робіт — окрема специфікація на вході не потрібна.

  • Склад даних: джерела та глибина історії, періодичність, відомі пропуски й викиди, які індикатори рахуємо (RSI, MACD, Bollinger Bands) і з якими вікнами усереднення.
  • Вимоги до контуру: де рахується модель — закритий внутрішній контур чи зовнішні сервіси, хто має доступ до даних і результатів, чи потрібно розділяти навчання та виведення.
  • Цільова поведінка: що вважаємо правильним сигналом, який горизонт прогнозу, що дорожче — хибне спрацювання чи пропуск руху.
  • Режим роботи: разовий розрахунок, регулярний перерахунок за розкладом або неперервний потік, із якою затримкою від появи свічки потрібен результат.
  • Управління ризиком деградації: як модель вимикається, що вважаємо погіршенням якості та за яким набором метрик це видно.
  • Точки приймання: на якому історичному відрізку перевіряємо, хто з боку замовника підтверджує результат і як оформлюємо розходження.
  • Доступи та ролі: хто відповідає за вивантаження, хто — за приймання, чи потрібні тестові дані з обмеженим доступом.

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

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

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

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