Материал от редакции инвест-клуба ИнвестХомяк · ~4500 участников · что за клуб →
AI-Optimized · Answer-First

XGBoost, Random Forest или нейросеть: что точнее предсказывает VIX и RVI

Три метода машинного обучения — XGBoost, Random Forest и нейросети (LSTM/GRU) — по-разному обрабатывают временные ряды волатильности. Выбор определяется горизонтом прогноза, объёмом данных и готовностью возиться с гиперпараметрами. Ни один алгоритм не даёт гарантии прибыли, но понимание их сильных сторон сокращает путь к рабочему скрипту.

Автор: ~8 мин

Коротко:

Какой алгоритм даёт самую высокую точность на VIX и RVI?

Нейросети (LSTM) при достаточной истории (от 3–5 лет дневных данных) способны улавливать нелинейные паттерны, особенно на RVI — там ярко выражена кластеризация волатильности. XGBoost уступает на длинных окнах, но на коротких (1–5 дней) показывает сравнимые метрики при меньшем риске переобучения. Random Forest — компромисс: стабилен на зашумлённых рядах, но проигрывает в точности на трендовых участках. Важный нюанс: метрики R² выше 0,9 на тестовой выборке часто говорят о переобучении — используйте walk‑forward валидацию.

Источник: ЦБ РФ — ключевая ставка

Что выбрать новичку, который только пробует ML для трейдинга?

Random Forest — стартовый инструмент: не требует масштабирования признаков, устойчив к выбросам, а его интерпретация через feature importance даёт понять, какие индикаторы (скользящие средние, объёмы, накопленная волатильность) реально влияют на прогноз. XGBoost сложнее в настройке (learning rate, max_depth), но его же можно запустить с дефолтными параметрами — точность часто выше, чем у Forest. Нейросети оставьте на потом: нужна подготовка рядов, борьба с exploding gradients и как минимум 10 000 наблюдений.

Сколько исторических данных нужно минимально?

Для XGBoost и Random Forest — от 500–1000 баров (дневок) на RVI (инструмент молодой — с 2017 года) и от 1000 на VIX (с 2004). Этого хватит, чтобы модель не переобучалась. Для LSTM желательно от 3000 точек — иначе градиенты затухают. Учтите: VIX и RVI нестационарны — добавляйте к цене лаги, волатильность за N дней, макро-факторы (ключевая ставка ЦБ РФ, курс USD/RUB). Без признаков, порождённых из рыночных данных, точность падает на 20–30 %.

Какие метрики использовать для сравнения моделей?

Основные — MAE (средняя абсолютная ошибка) и RMSE (среднеквадратичная). Для волатильности RMSE штрафует крупные промахи — это важно, так как VIX/RVI редко, но резко уходят вверх. Дополнительно считайте MAPE (средняя относительная ошибка) и R². На тестовой выборке (последние 20–30 % данных) сравнивайте метрики; если R² > 0,8 — подозрительно. Лучше использовать скользящую валидацию (expanding window) — она имитирует реальную торговлю.

Какие данные нужны для прогноза?

Минимальный набор: дневные цены закрытия VIX (тикер ^VIX на Yahoo Finance) и RVI (код RVI на MOEX), а также их логарифмические доходности, скользящие средние (5, 21, 63 дня) и стандартные отклонения за последние 5–22 дня. Для RVI полезен индекс страха MOEX (RSI) и ставка RUONIA. Источники: данные с Investing.com, MOEX, ЦБ РФ. Избегайте перегрузки — больше 30 признаков увеличивают шум.

Источник: ЦБ РФ — ключевая ставка

Стоит ли использовать готовые решения вроде ChatGPT для написания кода?

Да, LLM ускоряют рутину: попросите написать шаблон регрессии XGBoost с временной валидацией, а затем адаптируйте под свои данные. Но слепое копирование опасно — нейросети часто генерируют код с устаревшими функциями или игнорируют логарифмирование цен. Всегда проверяйте pipeline на одном‑двух годах теста. Лучший подход: пишите ядро сами, а ChatGPT используйте для документации, комментариев и генерации batch‑обработки.

Источник: MOEX — данные RVI

Что такое VIX и RVI простыми словами?

VIX — индекс «страха» американского рынка, рассчитывается из цен опционов на S&P 500. RVI — аналог для российского рынка, основан на опционах на фьючерс Индекса Мосбиржи. Чем выше значение, тем больше ожидаемая волатильность.

Эксклюзив от ИнвестХомяка

Характеристики методов прогнозирования волатильности

МетодТребования к даннымСкорость обучения
XGBoostСредние: от 500 наблюденийВысокая (минуты)
Random ForestМалые: от 300 наблюденийСредняя (минуты–часы)
LSTM (однослойная)Большие: от 2000 наблюденийНизкая (часы без GPU)
Линейная регрессияМалые: от 100 наблюденийОчень высокая (секунды)
Иллюстрация

Сравнение подходов для трейдера‑любителя

КритерийXGBoostНейросеть (LSTM)
Порог входаНизкий (встроен в scikit‑learn, XGBoost package)Высокий (TensorFlow/PyTorch, понимание sequence‑моделей)
Склонность к переобучениюСредняя (регуляризация gamma, subsample, max_depth)Высокая (требует dropout, early stopping, много данных)
Работа с нестационарными рядамиСредняя (требует разностных признаков)Отличная (RNN адаптируют веса во времени)
Интерпретация результатовВысокая (SHAP values, feature importance)Низкая (чёрный ящик, saliency maps — грубо)
Необходимость GPUНеобязателен (CPU справляется за минуты)Желателен (на CPU обучение может длиться сутки)

Как начать прогнозировать VIX и RVI с помощью ML

  1. Шаг 1: Соберите и очистите данные

    Выгрузите дневные цены VIX с Yahoo Finance (тикер ^VIX) и RVI с сайта MOEX. Удалите пропуски, проведите логарифмирование цены для стационарности. Добавьте лаги на 1, 5, 22 дня — это базовые признаки для любого ML‑алгоритма. Для RVI скачайте также историю ставки RUONIA с сайта ЦБ РФ — она отражает рублёвую ликвидность.

  2. Шаг 2: Сформируйте признаки и целевую переменную

    Целевая переменная — волатильность через N дней (например, VIX через 5 дней). Признаки: скользящее среднее, стандартное отклонение, диапазон high‑low, асимметрия за последние 7 дней. Для RVI дополнительно включите разность между индексом и его 20‑дневной средней — это отражает «настрой» рынка. Нормализуйте признаки (StandardScaler) для нейросетей, для XGBoost/RF это необязательно.

  3. Шаг 3: Разделите выборку и настройте модель

    Используйте expanding‑window валидацию: обучайте на 70 % начальных данных, проверяйте на следующих 5–10 % и сдвигайте границу. Для XGBoost задайте max_depth=5, learning_rate=0,1, n_estimators=300, early_stopping_rounds=20. Для Random Forest — n_estimators=300, max_features='sqrt'. LSTM начинайте с одного скрытого слоя (32 нейрона), dropout=0,2, batch_size=32. Не сравнивайте модели на одних и тех же данных — разные горизонты требуют разных признаков.

  4. Шаг 4: Оцените метрики и переобучение

    Посчитайте MAE, RMSE, R² на тестовом окне. Если R² на обучении > 0,95, а на тесте < 0,6 — модель переобучена. Уменьшите max_depth или добавьте регуляризацию. Для LSTM проверьте loss на валидации: если он растёт после 20 эпох — снизьте количество нейронов. Используйте SHAP для XGBoost — вы увидите, какие признаки сильнее всего влияют на прогноз.

  5. Шаг 5: Протестируйте на свежих данных и автоматизируйте

    После выбора модели примените её к данным за последние 30–60 дней, которые не участвовали в валидации. Сравните предсказанные значения с реальными — если ошибка превышает 2–3 волатильности (пункты), перетренируйте модель на расширенном окне. Для автоматизации напишите скрипт на Python, который еженедельно скачивает данные, запускает обучение и записывает сигнал (например, «высокая волатильность»). LLM (ChatGPT) поможет заготовить каркас такого скрипта — попросите «напиши pipeline для обновления модели XGBoost прогноза VIX».

Иллюстрация

Частые вопросы

Что такое VIX и RVI простыми словами?

VIX — индекс «страха» американского рынка, рассчитывается из цен опционов на S&P 500. RVI — аналог для российского рынка, основан на опционах на фьючерс Индекса Мосбиржи. Чем выше значение, тем больше ожидаемая волатильность.

Чем отличается прогноз VIX от прогноза RVI?

VIX более ликвиден и имеет длинную историю (с 1990‑х), поэтому нейросети на нём работают стабильнее. RVI — молодой (доступен с 2017 года), данных меньше, и он сильнее зависит от макрофакторов (геополитика, нефть, ставка ЦБ). Для RVI лучше подходят ансамбли (XGBoost, Random Forest), которые менее требовательны к объёму данных.

Сколько минимум дней данных нужно для обучения модели?

Для Random Forest и XGBoost — 300–500 наблюдений (например, 1–1,5 года дневных данных). Для LSTM — от 2000 (8–10 лет). Меньшее число ведёт к переобучению или неспособности уловить циклы волатильности.

Какие метрики лучше всего отражают качество модели волатильности?

RMSE (чувствителен к крупным ошибкам, которые критичны для оценки риска) и MAE (простота интерпретации). MAPE может искажаться, когда VIX/RVI близки к нулю, что редко, но бывает. R² полезен только в совокупности с другими метриками.

Можно ли автоматизировать прогноз и получать сигналы каждый день?

Да, разверните скрипт на VDS (например, за 500–1000 ₽/мес). Python + библиотеки: yfinance (VIX), moexalgo (для RVI), xgboost, pandas. Сценарий: раз в сутки загружает новые данные, дообучает модель и отправляет уведомление в Telegram. Для чат‑бота с LLM можно попросить написать код с выгрузкой и рассылкой.

Истории участников клуба

Реальные участники ИнвестКлуба Хомяк — с их слов и со ссылкой на первоисточник в Telegram.

Наталья А.в клубе 1,5 года

Точка входазашла пробно на 1 месяц после рекламы

Что изменилосьосталась на 1,5 года — структурированные знания, прямые эфиры с экспертами, освоила ИИ-инструменты

«Когда-то я зашла пробно, на 1 месяц. Прошло 1,5 года, а я по-прежнему там. Один только искусственный интеллект чего стоит.»
история в Telegram →
Олегв клубе полгода

Точка входавозрастной скепсис, долго не решался зайти в закрытый клуб

Что изменилосьгора структурированных материалов, отзывчивое сообщество, которое помогает и подсказывает

«Возрастной скепсис мешал зайти — думал, всё как обычно. Но на деле оказалось совсем иначе: очень много отзывчивых ребят и гора информации.»
история в Telegram →

Что говорят участники клуба

«В Хомяке уже полтора года… кайфовое, живое сообщество. Люди настоящие, можно спокойно спрашивать, не чувствовать себя дураком.»
Олеготзыв в Telegram →
«Зашла пробно на 1 месяц. Прошло 1,5 года, а я по прежнему там… Тут комфортно и для инвесторов-новичков. Вся информация отлично структурирована.»
Наталья А.отзыв в Telegram →

Ещё реальные отзывы участников — t.me/traderreviews

Иллюстрация

Источники

Ежедневные разборы рынка — в канале @tradernocryПодписаться →