Розробка системи розпізнавання свічкових паттернів

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

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

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

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

  • 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

Розробка системи розпізнавання свічних паттернів

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

Класифікація свічних паттернів

Односвічні паттерни (найпростіші, висока частота):

  • Doji (хрест, гравіруючий камінь, стрекоза)
  • Hammer / Inverted Hammer
  • Shooting Star
  • Spinning Top
  • Marubozu (повністю залита свіча)

Двохсвічні паттерни:

  • Bullish/Bearish Engulfing
  • Harami (бичий/ведмежий)
  • Piercing Line / Dark Cloud Cover
  • Tweezer Top/Bottom

Трисвічні паттерни (найнадійніші):

  • Morning Star / Evening Star
  • Three White Soldiers / Three Black Crows
  • Three Inside Up/Down
  • Abandoned Baby

Алгоритм розпізнавання

Кожен паттерн описується набором математичних умов щодо параметрів свічок (open, high, low, close, volume).

Приклад: Bullish Engulfing

def is_bullish_engulfing(prev, curr):
    prev_bearish = prev['close'] < prev['open']
    curr_bullish = curr['close'] > curr['open']
    curr_body_size = curr['close'] - curr['open']
    prev_body_size = prev['open'] - prev['close']
    engulfs = (curr['open'] <= prev['close'] and 
               curr['close'] >= prev['open'])
    min_body_ratio = curr_body_size / prev_body_size >= 1.1
    return prev_bearish and curr_bullish and engulfs and min_body_ratio

Приклад: Doji

def is_doji(candle, threshold=0.1):
    body = abs(candle['close'] - candle['open'])
    range_ = candle['high'] - candle['low']
    return (body / range_) <= threshold if range_ > 0 else False

Нормалізація свічок — абсолютні значення тіла та фітилів порівнюються через коефіцієнти, а не абсолютні цифри. Тіло > 70% від діапазону = сильна свіча. Тіло < 10% = doji. Фітилі > 2× тіла = hammer/shooting star.

Контекстна фільтрація

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

Трендовий контекст — Hammer валідний лише при нисхідному тренді, Shooting Star — при висхідному. Тренд визначається через EMA(20) або лінійну регресію за останні N свічок.

Рівні підтримки/опору — паттерн біля ключового рівня має вищу вагу, ніж в середині діапазону.

Обсяг — паттерн з обсягом вище середнього значно надійніший. Morning Star з високим обсягом на третій свічці — сильний сигнал розвороту.

ATR-фільтр — в періоди низької волатильності (ATR нижче N%) паттерни ігноруються як статистичний шум.

Backtesting та win rate

Бібліотека TA-Lib (Python/C) містить готові функції для розпізнавання більшості класичних паттернів. Ми використовуємо її як baseline та доповнюємо власними реалізаціями з контекстною фільтрацією.

Backtesting на BTC/USDT (1h, 2020–2024):

Паттерн Кількість сигналів Win Rate (без контексту) Win Rate (з фільтром тренду)
Bullish Engulfing 1840 52% 61%
Morning Star 412 56% 67%
Hammer 2190 49% 58%
Three White Soldiers 186 64% 71%

Мультитаймфреймовий скан

Система сканує всі задані інструменти одночасно на кількох таймфреймах (15m, 1h, 4h, 1d). Паттерн, підтверджений на кількох таймфреймах одночасно — пріоритетний сигнал.

Ієрархія пріоритетів: денний > 4h > 1h > 15m. Сигнал від паттерну на 4h при наявності підтвердження на 1d отримує score +30%.

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

Python: pandas для роботи з OHLCV, TA-Lib для базових паттернів, власні функції для розширених паттернів з контекстом. CCXT для підключення до біржових API.

Scheduler: APScheduler або Celery Beat для регулярного сканування при закритті свічки.

База паттернів: PostgreSQL — таблиця з полями: instrument, timeframe, pattern_type, candle_timestamp, score, context (JSON), status (active/expired/triggered).

Сповіщення: Telegram Bot з форматованими повідомленнями: назва паттерну, інструмент, таймфрейм, поточна ціна, можливий target.

Візуалізація: виділення свічок паттерну кольором/іконками на цінному графіку. TradingView Lightweight Charts або кастомний canvas renderer.

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