Розробка AI-моделі аналізу потоку ордерів Order Flow

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1566 послуг
Розробка AI-моделі аналізу потоку ордерів Order Flow
Складний
~5 днів
Часті запитання

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

Етапи розробки AI-рішення

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

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

Розробка AI-моделі аналізу потоку ордерів

Аналіз Order Flow — вивчення угод, а не заявок. Якщо Order Book показує наміри, то Order Flow показує реальні дії: хто агресивно купує або продає, знімаючи ліквідність з книги. Це основа для розуміння "розумних грошей" та дисбалансу попиту/пропозиції.

Ключові концепції Order Flow

Aggressor vs. Passive: Кожна угода ініціюється либо покупцем (market buy — піднімає ask), либо продавцем (market sell — удаляє bid). Класифікація за tick rule або Lee-Ready:

  • Угода за ціною > попередньої → buyer-initiated
  • Угода за ціною < попередньої → seller-initiated
  • За тією ж ціною → дивимось на попередній рух

Delta (Cumulative Volume Delta, CVD):

Delta = Buyer_Volume - Seller_Volume
CVD = Σ Delta за період

Позитивний CVD при зростанні ціни = підтвердження тренду. Негативний CVD при зростанні ціни = дивергенція (потенційний розворот).

Absorption: великий пасивний учасник "поглинає" агресивні ордери без руху ціни. Це рівень підтримки/опору з великим гравцем.

Feature Engineering з Order Flow

Trade-level ознаки:

def compute_order_flow_features(trades_df, window_seconds=60):
    features = {}

    # Класифікація Buyer/Seller
    trades_df['initiator'] = np.where(trades_df['side'] == 'buy', 1, -1)

    # Кружні агрегації
    features['buy_volume'] = trades_df[trades_df.initiator==1]['volume'].rolling(f'{window_seconds}s').sum()
    features['sell_volume'] = trades_df[trades_df.initiator==-1]['volume'].rolling(f'{window_seconds}s').sum()
    features['cvd'] = features['buy_volume'] - features['sell_volume']
    features['trade_imbalance'] = features['cvd'] / (features['buy_volume'] + features['sell_volume'])

    # Розподіл розміру угоди
    features['avg_buy_size'] = (features['buy_volume'] / buy_count)
    features['avg_sell_size'] = (features['sell_volume'] / sell_count)
    features['large_buy_ratio'] = (large_buy_volume / total_volume)  # угоди > 95th percentile

    return features

Volume Profile: Гістограма обсягу за цінових рівнів за період (VPOC = Volume Point of Control — рівень з максимальним обсягом). Використовується як рівень підтримки/опору.

Time and Sales аналіз: Паттерни в послідовності угод: скупчення великих покупок за короткий час = великий гравець входить в позицію.

Footprint Chart як вхідні дані

Footprint (або Cluster Chart) — Order Book + Order Flow об'єднані:

  • Кожна свічка розділена на цінові рівні
  • Кожен рівень: [buyer_volume × seller_volume]
  • Видно дивергенції: багато покупок на рівні, але ціна не виросла → absorption

ML на footprint даних:

# Footprint як матриця: [time_bins × price_levels × 2 (buy/sell)]
# Наприклад: 100 одноминутних барів × 20 цінових рівнів × 2

class FootprintCNN(nn.Module):
    def __init__(self):
        super().__init__()
        self.conv1 = nn.Conv3d(1, 32, kernel_size=(3, 3, 2))
        self.conv2 = nn.Conv3d(32, 64, kernel_size=(3, 3, 1))
        self.flatten = nn.Flatten()
        self.fc = nn.Linear(64 * ..., 1)

Volume Weighted Average Price (VWAP) аналіз

VWAP — еталон для інституційного виконання. Відхилення ціни від VWAP з урахуванням обсягу:

VWAP deviation signal:

  • Ціна вище VWAP + великі обсяги покупок → тренд підтверджений
  • Ціна вище VWAP + продавець домінує в обсягу → потенційний розворот

TWAP vs. VWAP виконання: Для великих ордерів — прогнозування оптимального часу виконання для мінімізації market impact. RL-агент оптимізує стратегію виконання.

Завдання прогнозування

Короткострокові (1-10 хв):

  • Напрямок mid-price за наступні N угод
  • Вірогідність значущого руху в наступні X секунд
  • Оцінка негайного market impact від розміщення ордера

Якість виконання:

  • Проковзування: прогнозування відхилення виконання від теоретичної ціни
  • Оптимальний розмір ордера: максимальний розмір без значущого market impact

Складені дисбаланси та великі рівні

"Stacked imbalance" — кілька сусідніх цінових рівнів з перевагою покупок/продажів. Статистично це рівні підтримки/опору.

ML-виявлення значущих рівнів:

def detect_imbalance_levels(footprint_data, threshold=0.7):
    """
    Рівень значущий, якщо buy_vol / (buy_vol + sell_vol) > threshold
    АБО sell_vol / ... > threshold
    І сумарний обсяг в топ-20% доби
    """

Дані та інфраструктура

Джерела тікових даних:

  • Dukascopy (forex): безплатні історичні тікові дані
  • Kinetick (фьючерси): real-time тікові дані, $50/місяць
  • IQFeed: комплексні дані ринку США
  • Binance WebSocket: крипто L3 (за угодами)

Зберігання: ClickHouse ідеальний для тікових даних: колонарне зберігання, < 1 мс запити на мільярди рядків. TimescaleDB як альтернатива PostgreSQL.

Часовая шкала: Order Flow Feature Engineering + базова регресія — 3-4 тижні. Footprint CNN з backtesting та production pipeline — 3-4 місяці.