KovehAnalytics
EURRUB
USDRUB
BRENT
SP500
EURRUB
USDRUB
MOEX
SBER
EURRUB
USDRUB
BRENT
SP500
EURRUB
USDRUB
MOEX
SBER

ML futures lab

Прогноз движения фьючерсов EUR/RUB и CNY/RUB.

Ансамбль из пяти моделей — AdaBoost, Gradient Boosting, Hist Gradient Boosting, Random Forest и логистическая регрессия — ежедневно обучается на истории MOEX и оценивает вероятность роста на следующий торговый день. Валидация walk-forward: каждая метрика посчитана только на данных, которых модель не видела при обучении.

Как это работает: модели и формулы

Постановка задачи

Бинарная классификация: вырастет ли цена завтра. Целевая переменная и базовый признак — лог-доходность:

y_t = 1, если P_(t+1) > P_t, иначе 0
r_t = ln(P_t / P_(t-1))

Признаки: доходности за 1–10 дней, отклонения от скользящих средних, волатильность, RSI, MACD, дневной размах и день недели.

RSI = 100 − 100 / (1 + EMA(gain,14) / EMA(loss,14))
MACD = (EMA₁₂(P) − EMA₂₆(P)) / P

AdaBoost

Последовательно строит слабые деревья, увеличивая вес наблюдений, на которых ошибся предыдущий шаг. Вес m-го классификатора зависит от его взвешенной ошибки ε_m:

α_m = ½ · ln((1 − ε_m) / ε_m)
w_i ← w_i · exp(−α_m · y_i · h_m(x_i))
F(x) = sign( Σ_m α_m · h_m(x) )

Gradient Boosting

Каждое новое дерево приближает антиградиент функции потерь (log-loss) по текущему прогнозу — «исправляет» остатки ансамбля. η — learning rate (у нас 0.05):

F_m(x) = F_(m−1)(x) + η · h_m(x),   h_m ≈ −∂L(y, F_(m−1)) / ∂F
L = −[y·ln(p) + (1−y)·ln(1−p)]

Hist Gradient Boosting — та же идея, но признаки бинятся в гистограммы (256 корзин), что на порядок ускоряет обучение (аналог LightGBM).

Random Forest и логистическая регрессия

Random Forest усредняет деревья на бутстрэп-выборках со случайным подмножеством признаков — снижает дисперсию. Логистическая регрессия — линейный бенчмарк:

P(y=1|x) = σ(wᵀx + b) = 1 / (1 + e^(−wᵀx−b))

Ансамблевый сигнал — среднее вероятностей пяти моделей. Walk-forward валидация: обучение на расширяющемся окне, прогноз строго вперёд, 5 фолдов.

P̂_ens = (1/M) · Σ_m P̂_m(y=1|x)
На дневных валютных данных ROC-AUC около 0.5 — норма: рынок близок к эффективному. Сигналы — это исследовательский инструмент, а не торговая рекомендация. Управляйте риском: размер позиции, стопы, издержки и проскальзывание способны съесть всё статистическое преимущество.