Разработка системы генерации торговых сигналов на базе AI
Генерация торговых сигналов через AI — это не "нейросеть предсказывает цену". Это инженерная задача по извлечению статистически значимых паттернов из зашумлённых временных рядов и превращению их в actionable сигналы с контролируемым risk/reward. Разница принципиальная: первое — маркетинг, второе — реальная работа.
Архитектура системы
Система состоит из нескольких слоёв, каждый из которых решает конкретную задачу.
Feature Engineering Pipeline — самый важный этап. Качество сигналов определяется не сложностью модели, а качеством признаков. Сырые OHLCV-данные сами по себе слабы; ценность создаётся через:
- Технические индикаторы (RSI, MACD, Bollinger Bands, ATR) в нескольких таймфреймах
- Микроструктурные признаки: bid-ask spread, order book imbalance, trade flow imbalance
- On-chain метрики: exchange netflow, whale activity, funding rates
- Сентимент: Fear & Greed Index, социальные метрики (LunarCrush API), новостной фон
- Кросс-активные признаки: корреляция BTC/ETH, доминанс стейблкоинов
Model Layer — ансамбль моделей, каждая из которых специализирована:
- LSTM / Transformer — для последовательностей с долгосрочными зависимостями
- LightGBM / XGBoost — для табличных признаков, быстры и интерпретируемы
- Reinforcement Learning (PPO, SAC) — для адаптивных стратегий, обучающихся в динамической среде
Signal Aggregation — мета-модель или правила комбинирования выходов отдельных моделей в финальный сигнал с оценкой confidence.
Feature Engineering в деталях
Рассмотрим order book imbalance — один из наиболее ценных признаков для краткосрочных сигналов.
def order_book_imbalance(bids, asks, depth=10):
bid_volume = sum(qty for _, qty in bids[:depth])
ask_volume = sum(qty for _, qty in asks[:depth])
return (bid_volume - ask_volume) / (bid_volume + ask_volume)
Значение близкое к +1 указывает на давление покупателей, к -1 — продавцов. В комбинации с направлением последних сделок (trade flow imbalance) это даёт сильный предиктор краткосрочного движения цены.
Для временных рядов критически важна правильная нормализация. Цены нельзя нормализовать по всему датасету — это data leakage. Используем rolling z-score с окном 24-48 часов:
def rolling_zscore(series, window=24):
mean = series.rolling(window).mean()
std = series.rolling(window).std()
return (series - mean) / (std + 1e-8)
Модели и их применимость
| Модель | Горизонт | Сильные стороны | Слабые стороны |
|---|---|---|---|
| LSTM | 1h–24h | Последовательности, долгие зависимости | Медленное обучение, переобучение |
| Transformer | 4h–7d | Self-attention, параллельное обучение | Требует много данных |
| LightGBM | 15m–4h | Скорость, интерпретируемость | Плохо с last-mile временными зависимостями |
| PPO (RL) | Адаптивно | Учится на живом рынке | Нестабильность обучения |
На практике лучший результат даёт не выбор "лучшей" модели, а правильный ансамбль. Например, LightGBM как быстрый фильтр для отсева слабых сигналов, LSTM для оценки direction, RL-агент для управления размером позиции.
Pipeline обучения и переобучение
Главная проблема ML на финансовых данных — переобучение на исторические паттерны, которые не воспроизводятся в будущем. Стандартные методы борьбы:
Walk-forward validation — единственный корректный способ оценки временных рядов. Разбиваем данные на окна: обучаем на первых N периодах, тестируем на N+1, сдвигаем окно. Итоговые метрики агрегируются по всем окнам.
Purging и embargoing (по методологии Marcos Lopez de Prado из "Advances in Financial Machine Learning"). Между train и test множествами вставляется зазор, равный горизонту предсказания. Это исключает утечку информации через overlapping labels.
Ансамблирование разнородных моделей — если несколько независимых моделей соглашаются, вероятность случайного паттерна ниже.
Регуляризация confidence — модель не просто выдаёт "buy/sell", но и оценку уверенности. Сигналы с низкой уверенностью фильтруются или торгуются меньшим размером.
Continuous Learning и Model Drift
Рынок меняется. Модель, обученная год назад, деградирует. Система должна включать:
- Мониторинг дрейфа признаков: Population Stability Index (PSI) для каждого входного признака
- Мониторинг дрейфа предсказаний: KL-дивергенция между распределением сигналов исторически и сейчас
- Automated retraining: при обнаружении дрейфа — автоматическое переобучение на свежих данных
- A/B testing новых моделей на paper trading перед выкаткой в production
Инфраструктурно это реализуется через MLflow для трекинга экспериментов, Airflow или Prefect для orchestration pipeline переобучения, Feature Store (Feast или Hopsworks) для консистентного доступа к признакам в обучении и инференсе.
Сигналы и управление рисками
AI-сигнал — это не торговый приказ. Это вход в систему управления рисками. Каждый сигнал несёт:
- Направление (long/short/neutral)
- Confidence score (0.0–1.0)
- Рекомендуемый горизонт удержания
- Предполагаемый целевой уровень и stop-loss
Risk manager решает: торговать ли сигнал, каким размером, с какими параметрами исполнения. Это разделение ответственности критично: модель оптимизирует accuracy сигналов, risk manager — итоговый P&L с учётом транзакционных издержек и рисков.
Инфраструктура инференса
Latency инференса имеет значение. Для сигналов с горизонтом 1h+ Python + scikit-learn/TensorFlow работает нормально. Для краткосрочных стратегий (15m и ниже) нужен оптимизированный pipeline:
- Модель, экспортированная в ONNX формат
- Инференс через ONNX Runtime (в 3–10x быстрее обычного PyTorch)
- Feature engineering на Rust или Go для горячего пути
- Кэширование рассчитанных признаков в Redis
Итоговый latency инференса — 5–20ms для простых моделей, 50–100ms для сложных ансамблей. Для большинства crypto-стратегий этого достаточно.
Метрики качества системы
Accuracy предсказаний — не главная метрика. Система с 55% accuracy при хорошем risk/reward часто прибыльнее системы с 65% accuracy при плохом. Ключевые метрики:
- Information Coefficient (IC) — корреляция между предсказанным и реальным движением
- IR (Information Ratio) — IC / std(IC), устойчивость сигнала
- Profit Factor — соотношение валовой прибыли к валовым убыткам на исторических данных
- Calmar Ratio — годовая доходность / максимальная просадка
Система, стабильно генерирующая IC > 0.05 на out-of-sample данных с годичным горизонтом, — серьёзный результат, заслуживающий внедрения в production.







