$MXU6
🧪 Может ли нейросеть предсказать IMOEX по макрофакторам? Спойлер: я поймал себя на переобучении
Решил проверить красивую гипотезу: рынок акций реагирует на долговой рынок. Взял макрофакторы — кривую ОФЗ (2Y/10Y из G-curve МосБиржи), RUONIA, наклон кривой, кредитный спред корпоратов — и скормил их рекуррентной нейросети (GRU/LSTM). Задача: предсказать знак доходности IMOEX на 5 дней вперёд.
📊 Данные: дневные, 2019–2026. Признаки (49 шт.): ОФЗ 2Y/10Y из G-curve МосБиржи, RUONIA, наклон кривой, кредитный спред корпоратов — уровни, разности, z-score. Без look-ahead: скейлер учится только на train, таргет сдвинут вперёд.
🤖 Модели: GRU/LSTM на окнах 30 дней (PyTorch) + MLP-бенчмарк (sklearn). Две постановки — классификация знака и регрессия доходности. Фит: Adam, dropout 0.2 + L2 + early stopping. Лучшую выбирал по Sharpe на валидации.
🏆 Кто победил (отбор на валидации, по горизонтам):
N=1 LSTM-классиф. val-Sharpe +0.82
N=5 GRU-классиф. val-Sharpe +1.37
N=10 GRU-регрессия val-Sharpe +1.52
Конфиг сети: 1 слой, hidden=32, lookback=30, dropout=0.2, L2=1e-4, lr=1e-3 (Adam).
💸 Торговля: позиция long / flat / short по порогу уверенности (калибруется на валидации). Сигнал на закрытии дня t → позиция работает в t+1, переоценка ежедневно. Издержки: 7 б.п. комиссия + 3 б.п. проскальзывание = 10 б.п. на оборот, списываются при смене позиции.
✅ Проверка честности: хронологический сплит 60/20/20 + walk-forward (5 фолдов, расширяющееся окно). Бенчмарк — Buy & Hold IMOEX.
📈 На валидации — все хорошо. Sharpe сигнала 1.4–1.5. Модель уверенно «видит» развороты, в кризис-2022 на бумаге даже зарабатывает на падении. Хочется бежать торговать.
❄️ На out-of-sample тесте — катастрофа:
val-Sharpe TEST (OOS) Buy&Hold
N=1 день +0.82 −0.98 −0.30
N=5 дней +1.37 −1.31 −0.27
N=10 дней +1.52 −0.87 −0.08
Sharpe схлопывается из плюса в минус. Стратегия проигрывает даже тупому «купи и держи». На всех горизонтах.
🔬 Главная проверка — walk-forward. Это когда обучаешь модель на прошлом, торгуешь следующий кусок, дообучаешь, торгуешь дальше — 5 раз подряд на разных режимах рынка 2022–2026. Самая честная метрика, которую невозможно подогнать.
Результат: Sharpe walk-forward −0.9 / −0.05 / −0.36. Болтается у нуля и ниже. Устойчивость отсутствует.
💡 Почему так — и почему это полезно:
Классический разрыв validation→test. Причины:
• короткий ряд (~1800 дней) и 49 признаков → сеть запоминает шум;
• подбор порога на валидации = ещё одна степень свободы для подгонки;
• режимные сломы: то, что «работало» до 2022, не переносится вперёд.
Самое интересное — если бы я остановился на валидации (как делают в 90% «прибыльных стратегий» из интернета), я бы поверил в Sharpe 1.5. Именно honest Out of Sample + walk-forward показывают правду.
📌 Вывод. Макрофакторы экономически осмысленны (наклон кривой и кредитный спред уверенно лезут в топ важности признаков), но в этой постановке предсказательной силы на новых данных нет. Гипотеза не подтверждена.
•
#бэктестинг #нейросети #IMOEX #машинное_обучение