Розробка системи розпізнавання паттернів (голова і плечі, трикутники, клини)

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Розробка системи розпізнавання паттернів (голова і плечі, трикутники, клини)
Складний
від 2 тижнів до 3 місяців
Часті запитання

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

Етапи блокчейн-розробки

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1288
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    902
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1122
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    589
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    859

Розробка системи розпізнавання паттернів (голова та плечі, трикутники, клини)

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

Класифікація паттернів та їх алгоритмічне представлення

Всі паттерни можна розділити на три категорії за складністю детектування:

Розворотні паттерни (Head & Shoulders, Inverse H&S, Double Top/Bottom, Triple Top/Bottom) — формуються на значимих рівнях, сигналізують про зміну тренду.

Паттерни продовження (Ascending/Descending/Symmetrical Triangle, Bull/Bear Flag, Pennant, Wedge) — формуються в середині тренду як консолідація перед продовженням.

Паттерни каналу (Rising/Falling Channel, Rectangle) — ціна рухається між паралельними рівнями.

Алгоритм виявлення: метод опорних точок (Pivot Points)

Основний підхід — виділення локальних екстремумів (swing highs та swing lows) та аналіз їх послідовності.

Етап 1: Пошук pivot points

def find_pivots(highs, lows, window=5):
    pivot_highs = []
    pivot_lows = []
    for i in range(window, len(highs) - window):
        if highs[i] == max(highs[i-window:i+window+1]):
            pivot_highs.append((i, highs[i]))
        if lows[i] == min(lows[i-window:i+window+1]):
            pivot_lows.append((i, lows[i]))
    return pivot_highs, pivot_lows

Розмір вікна впливає на «масштаб» виявлених паттернів. Мале вікно дає паттерни на коротких таймфреймах, велике — на довгострокових.

Етап 2: Матчинг паттернів

Для «голови та плеч» потрібно знайти послідовність з 5 pivot points: left shoulder (high), neckline left (low), head (highest high), neckline right (low), right shoulder (high).

Умови для валідного H&S:

  • Head вище обох плеч (tolerance ±2%)
  • Обидва плеча приблизно одної висоти (різниця < 5%)
  • Neckline відносно горизонтальна (нахил < 15°)
  • Right shoulder не перевищує Head

Етап 3: Детектування трикутників

Трикутники визначаються через лінійну регресію за pivot points:

  • Symmetrical: нисходяча лінія за highs + висхідна за lows, конвергуючі до однієї точки
  • Ascending: горизонтальний опір + висхідна підтримка
  • Descending: горизонтальна підтримка + нисхідний опір

Якість трикутника оцінюється через R² коефіцієнт лінійних регресій. R² > 0.85 — хороший трикутник.

Етап 4: Клини (Wedges)

Клин відрізняється від трикутника тим, що обидві лінії спрямовані в один бік:

  • Rising Wedge (ведмежий сигнал): обидві лінії висхідні, верхня більш пологіша
  • Falling Wedge (бичий сигнал): обидві лінії нисхідні, нижня більш пологіша

Ключова умова: лінії конвергуються (кут між ними зменшується).

Оцінка якості паттерну та target projection

Кожен виявлений паттерн отримує score (0–100) на основі:

  • Симетричності (для H&S)
  • R² ліній (для трикутників)
  • Співвідношення обсягу (обсяг при формуванні має зменшуватися)
  • Завершеності паттерну (breakout уже відбувся чи ні)

Target projection — розрахунок цілі після breakout:

  • H&S: ціль = рівень neckline − висота голови
  • Трикутник: ціль = точка апексу ± висота основи
  • Клин: ціль = початок клину

Backtest та оцінка надійності

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

Типова надійність на крипторинку (за історичними даними BTC/ETH):

Паттерн Win Rate Середнє R/R
H&S (confirmed) 55–65% 1:1.5
Ascending Triangle 60–70% 1:1.8
Symmetrical Triangle 50–55% 1:1.2
Falling Wedge 60–68% 1:2.0

Архітектура системи

Backend: Python (pandas, numpy, scipy для лінійної регресії), обробка OHLCV даних з біржових API (CCXT library). Скан по всім інструментам запускається за розписанням (cron) на кожному закритті свічки.

База даних: PostgreSQL для зберігання виявлених паттернів з параметрами, статусом (forming/confirmed/failed) та результатами.

Frontend: React + TradingView Lightweight Charts. Паттерни відриховуються як SVG-оверлеї поверх цінового графіку — лінії плеч, neckline, лінії трикутника з підписами.

Алерти: При виявленні нового підтвердженого паттерну або при пробої рівня — сповіщення у Telegram або через webhook.

Масштабування

Для сканування 500+ інструментів у реальному часі використовується паралельна обробка через Python multiprocessing або Celery. Результати кешуються в Redis. Повний скан 500 інструментів на 4h таймфреймі займає 15–30 секунд на стандартному сервері.

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