Javelin & Cassandra
Привет, Джавелин! Я тут копалась в данных по высокочастотной торговле и заметила интересные паттерны на уровне микросекунд. Хочешь вместе их разберем и попробуем предсказать небольшие изменения цены?
Конечно, давай посмотрим на мельчайшие детали и попробуем предугадать, что будет дальше. У меня тетрадь готова, будем работать точно.
Отлично, я вытащу необработанные данные по тикам, очищу их и проведу скользящую статистику. Начнем с простой модели ARMA, а потом посмотрим, помогут ли какие-нибудь нелинейные признаки. Принеси тетрадь.
Поняла. Блокнот под рукой, данные обработаны, статистика готова. Сначала запустим ARMA, потом добавим нелинейные корректировки. Жду твоего сигнала.
Отлично, давай сначала загрузим очищенные данные и подберем ARMA(1,1) к логарифмическим доходностям. Потом сравним остатки с помощью GARCH, чтобы выявить кластеризацию волатильности. Как получим эту базовую модель, попробуем построить оценку плотности ядра для остатков и посмотрим, улучшит ли небольшая нейронная сеть прогноз. Сейчас начну запускать скрипты.
Запусти ARMA, проверь остатки, потом GARCH. После этого попробуй KDE на остатках и подай это в небольшую нейросеть. Держи процесс отлаженным – никаких лишних шагов. Давай посмотрим на метрики ошибки. Мы всё сделали по инструкции. Звучит здорово – поддерживай чёткость и лаконичность действий. Как только у тебя будут остатки и результаты GARCH, я посмотрю вывод KDE и работу нейросети. Сохраняй концентрацию.
Привет! ARMA(1,1) прошла отлично; остатки выглядят почти как белый шум, только небольшая автокорреляция на лаге 2. Я подогнала GARCH(1,1) к квадратам остатков, и она хорошо улавливает скачки – AIC упал примерно на 15 пунктов. Потом применила Gaussian KDE к остаткам, а затем подала значения плотности в однослойную нейронную сеть с 10 нейронами. Сеть снизила среднеквадратичную ошибку с 0.00123 до 0.00107 на проверочной выборке, примерно на 12%. Все шаги завершились без лишних итераций.
Отлично поработала, этот 12% спад – серьезный результат. Теперь проверь, нет ли переобучения, сравни потери на тренировочном и проверочном наборах. Потом, может, стоит попробовать ARMA более высокого порядка, чтобы учесть эту автокорреляцию со сдвигом на два периода, прежде чем углублять нейронную сеть. Будь сосредоточена и держи все под контролем.
Обучающая MAE была 0.00110, валидационная — 0.00107, почти одинаковы, так что явных признаков переобучения нет. Я увеличила порядок ARMA до (2,1), чтобы учесть автокорреляцию со сдвигом на два периода. Новая ARMA(2,1) уменьшила дисперсию остатков на 4%. Сейчас запущу тот же пайплайн KDE + небольшая нейросеть на этих остатках и сообщу об ошибке. Окей. Я запустила ARMA(2,1) и остатки выглядят более гомоскедастичными. KDE-усиленная нейросеть теперь выдаёт валидационную MAE 0.00104 — ещё улучшение примерно на 3%. Обучающая ошибка осталась на уровне 0.00105, модель всё ещё не переобучается. Следующий шаг: попробовать двухслойную нейросеть с ReLU и dropout, чтобы выжать ещё немного улучшений. Обучающая ошибка 0.00105, валидационная — 0.00104 — всё ещё в пределах пары сотых, переобучения нет. Добавлю второй скрытый слой с 8 нейронами и dropout 20%, затем переобучу. Если валидационная ошибка опустится ниже 0.00102, будем считать это победой. Окей. Я добавила второй скрытый слой с 8 нейронами, применила dropout 20% и переобучила. Валидационная MAE упала до 0.00102, ещё улучшение на 2%. Обучающая ошибка остаётся на уровне 0.00103, всё очень близко. Пока нет признаков переобучения. Следующий шаг: протестировать модель на отдельном наборе данных, чтобы убедиться в её способности к обобщению.
Отлично, ты дошла до 0.00102. Возьми новый валидационный набор, запусти ту же самую цепочку, проверь MAE. Если останется около 0.00102 – у нас стабильная модель. Если подскочит – нужно будет перебалансировать данные или добавить регуляризацию. Держи всё под контролем.