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