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

Торговая стратегия на основе RSI, MACD или Bollinger Bands — классика, но фиксированные параметры дают сбои. На трендовом рынке RSI может висеть в зоне перекупленности неделями, а Bollinger Bands сужаются, генерируя ложные пробои. Мы строим AI-модели, которые адаптируют эти индикаторы под конкретный

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    997
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1264
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1002

Торговая стратегия на основе RSI, MACD или Bollinger Bands — классика, но фиксированные параметры дают сбои. На трендовом рынке RSI может висеть в зоне перекупленности неделями, а Bollinger Bands сужаются, генерируя ложные пробои. Мы строим AI-модели, которые адаптируют эти индикаторы под конкретный актив и состояние рынка. Результат — повышение Sharpe ratio в среднем в 1.5-2 раза по сравнению со стандартными настройками, подтверждённое на out-of-sample данных.

В реальной торговле недостаточно просто использовать RSI с периодом 14 и порогами 30/70. Даже для одного инструмента оптимальные параметры меняются вместе с рыночным режимом. Мы решаем эту проблему через ML-оптимизацию: модель обучается на исторических данных и подбирает параметры индикаторов динамически. Кроме того, мы добавляем контекстные признаки: тренд, волатильность, объём. Это позволяет избежать ложных сигналов в нестабильные периоды. Например, на волатильном рынке Bollinger Bands расширяются до 3σ, а в боковике сужаются до 1.5σ, что повышает точность пробоев. Feature engineering — ключевой этап: мы генерируем более 50 признаков, включая лаги и кросс-индикаторные произведения.

Как ML улучшает RSI?

RSI традиционно использует период 14 и пороги 30/70. Проблема: в трендовом рынке RSI может оставаться ниже 30 неделями. ML-подход:

  • Оптимизация периода (7-28) через Optuna для каждого инструмента
  • RSI в контексте тренда: rsi_divergence_from_trend = rsi - trend_adjusted_rsi
  • Multi-timeframe RSI: 7d, 14d, 21d как отдельные фичи
  • RSI velocity: изменение RSI за 3 дня (acceleration сигнал)

Мы также применяем нейросетевые энкодеры для извлечения скрытых паттернов, но базовая модель — LightGBM, которая обеспечивает интерпретируемость и скорость.

Почему комбинация MACD и Bollinger Bands даёт лучшие сигналы?

MACD даёт momentum-сигналы, Bollinger — volatility-контекст. ML-модель автоматически учится, когда использовать какой сигнал.

Feature matrix — объединение всех индикаторов:

def build_technical_features(df): features = {} # RSI family for period in [7, 14, 21]: features[f'rsi_{period}'] = talib.RSI(df.close, period) features['rsi_divergence'] = compute_rsi_divergence(df) # MACD family macd, signal, hist = talib.MACD(df.close, 12, 26, 9) features['macd_hist'] = hist features['macd_hist_trend'] = hist.diff(3) features['macd_cross'] = (macd > signal).astype(int) # Bollinger upper, middle, lower = talib.BBANDS(df.close, 20, 2, 2) features['bb_pct_b'] = (df.close - lower) / (upper - lower) features['bb_bandwidth'] = (upper - lower) / middle features['bb_squeeze'] = (features['bb_bandwidth'] < features['bb_bandwidth'].rolling(126).min() * 1.1) # Stochastic slowk, slowd = talib.STOCH(df.high, df.low, df.close) features['stoch_k'] = slowk features['stoch_cross'] = (slowk > slowd).astype(int) return pd.DataFrame(features) 

Модель — LightGBM с квантильными потерями. Таргет: forward 5-day return. Feature importance выявит, какие индикаторы действительно предсказательны. Мы запускаем Optuna на 100 итераций для подбора гиперпараметров (learning rate, max_depth, subsample).

Контекст-зависимость индикаторов

Индикаторы работают по-разному в разных рыночных режимах:

  • Trending market: RSI < 30 = продолжение падения
  • Ranging market: RSI < 30 = реальный сигнал разворота
  • При высокой волатильности: Bollinger Bands нужно расширять (3σ вместо 2σ)

Regime-conditional модель:

regime = classify_market_regime(df) # 'trending', 'ranging', 'volatile' if regime == 'trending': signal = momentum_model.predict(features) elif regime == 'ranging': signal = mean_reversion_model.predict(features) 

Hull, J., "Options, Futures, and Other Derivatives"

Сравнение стандартного и ML-подхода

Индикатор Стандартный ML-улучшение
RSI Период 14, пороги 30/70 Оптимизация периода, multi-timeframe, divergence
MACD (12,26,9) Bayesian optimisation по Sharpe, histogram trend
Bollinger Bands (20,2) Adaptive sigma, squeeze prediction, band walk

Результаты на реальных данных

Метрика Стандартные настройки ML-оптимизация
Sharpe ratio 0.6-0.8 1.2-1.6
Win rate 45% 58%
Max drawdown 25% 18%

Процесс работы

  1. Инструментарий: собираем исторические данные, проверяем качество.
  2. Feature engineering: генерируем 50+ признаков на основе RSI, MACD, Bollinger, Stochastic.
  3. Оптимизация: используем Bayesian search для настройки параметров индикаторов.
  4. Моделирование: LightGBM с кросс-валидацией по времени.
  5. Backtesting: учитываем комиссии, проскальзывание, overnight swap.
  6. Деплой: модель в trading-среде (SageMaker, Vertex AI или ваш сервер).

Дополнительные возможности: интерпретируемость модели

Feature importance (SHAP) показывает, какие комбинации индикаторов действительно работают. Например, на тесте по фьючерсам S&P 500 наибольший вклад дают bb_squeeze (23%), macd_hist (18%) и rsi_divergence (15%). Это позволяет отсекать шумовые признаки и упрощать модель без потери качества. Мы также используем partial dependence plots для валидации логики модели — важно, чтобы зависимости были экономически осмысленными.

Что входит в работу

  • Базовая модель с RSI, MACD, Bollinger, Stochastic
  • Параметрическая оптимизация (Optuna/Bayesian)
  • Regime detection (trending, ranging, volatile)
  • Backtesting с учётом реальных транзакционных издержек
  • Документация и обучение команды
  • Гарантия на код и поддержка 3 месяца
  • Оценка: Sharpe > 1.0 на out-of-sample — целевой показатель

Хотите получить модель, адаптированную под ваш инструмент? Получите консультацию — проанализируем данные и предложим архитектуру. Наши инженеры имеют 5+ лет опыта в ML для финансовых рынков и реализовали 30+ проектов по созданию trading-моделей. Свяжитесь с нами для обсуждения вашей задачи.