Сегодня я прочитал статью 2025 года под названием «Прогнозирование краткосрочных цен на криптовалюту с использованием данных книги заказов», автором которой является X аккаунт @Kev, все могут заглянуть. Основное открытие статьи: предварительная обработка высокочастотных данных важнее сложности модели, то есть после качественной очистки данных, ручное проектирование признаков + простая модель показывает результаты, сопоставимые с полностью автоматическими (нейронные сети, автоматически обучающие признаки) глубокими моделями, а иногда даже лучше. Это открытие стало общепринятым в традиционной финансовой сфере, но исследований в этой области на крипторынке не так много. Данные исследования были получены 30 января 2025 года из открытого API Bybit, используя сырые данные книги заказов L2. Каждые 100 мс делался снимок, каждый снимок содержал максимум 200 уровней ордеров. Основной эксперимент использовал 100 000 записей (примерно 166 минут), последовательный эксперимент расширился до 1 000 000 записей (примерно 28 часов). Данные доступны бесплатно, поэтому воспроизводимость статьи довольно хорошая. Метод исследования заключался в разделении данных на три группы: без фильтрации, фильтрация SG и фильтрация Калмана, после чего каждая группа вводилась в 6 моделей, чтобы предсказать направление цены через 100 мс / 500 мс / 1 с в двух категориях: бинарной (вверх/вниз) и тройной (вверх/стабильно/вниз). Всего было проведено 3(предобработка данных)×6 (6 групп моделей)×2 (результаты предсказания бинарные или тройные)×3 (три временных окна предсказания) = 108 групп экспериментов. Модели были сгруппированы по сложности следующим образом: - Простые модели (логистическая регрессия и XGBoost): ручное проектирование признаков (например, разница в объемах покупок и продаж, дисбаланс спроса и предложения) используется в качестве входных данных для модели. Самые быстрые, и мы можем понять, как модель принимает решения на основе признаков, знаем, почему так. - Гибридные модели (CNN+CatBoost и CNN+XGBoost): больше не требуется ручное проектирование признаков, нейронная сеть сама изучает признаки данных, а затем эти признаки вводятся в дерево решений. Преимущество в том, что могут быть обнаружены комбинации признаков, о которых человек не мог бы подумать, недостаток в том, что эти признаки трудно интерпретировать, знаем, почему так, но не знаем, почему именно так. - Глубокие модели (DeepLOB и его упрощенная версия): полностью энд-ту-энд нейронная сеть, от извлечения признаков (и отличие от предыдущего в том, что теперь можно извлекать последовательную информацию в качестве признаков) до окончательного решения все выполняется автоматически, знаем, почему так, но не знаем, почему именно так. Оценочный показатель — это точность предсказания (в техническом плане называется F1-оценка, одновременно измеряет "сколько раз вы предсказали рост, когда он действительно произошел" и "сколько раз вы поймали рост, когда он действительно произошел", от 0 до 1, чем выше, тем лучше). Также фиксируется время обучения. 80% данных используется для обучения, 20% для тестирования, перекрестная проверка не проводилась, так как временные данные не подходят для случайного перемешивания. Основная идея 1: Качество данных важнее выбора модели Например, для прогноза трехклассовой модели с 500 мс и 40 уровнями книги заказов: - При использовании того же XGBoost, точность предсказания на исходных данных составила 0.45, после сглаживания SG она возросла до 0.54, что составляет примерно 21% улучшения. - При замене модели на более сложную DeepLOB, точность на исходных данных оказалась даже ниже (0.43). Даже если DeepLOB также использовал сглаживание SG (0.52), он все равно уступал XGBoost+SG (0.54). Улучшение качества данных значительно превышает эффект повышения сложности модели. Почему фильтрация SG так эффективна? Исходные данные книги заказов очень шумные, цены и объемы ордеров резко колеблются на миллисекундном уровне, в отрасли обычно считается, что это "мигание", вызванное быстрым изменением котировок маркет-мейкерами. Фильтрация SG использует небольшое окно, которое скользит по данным, и в каждой позиции в окне подгоняет гладкую кривую, беря значение центра кривой в качестве сглаженного результата. В отличие от простого скользящего среднего, она не стирает настоящие точки поворота тренда — потому что она использует кривую для подгонки формы данных, а не грубо берет среднее. В scipy можно вызвать одной строкой кода, окно 21, полином третьей степени — это параметры, которые показали наилучшие результаты в статье, и могут служить отправной точкой для исследований. 2. Окно принятия решений ограничивает сложность модели Здесь нужно различать два понятия: - Время обучения — это время обучения оффлайн модели (однократное) - Время вывода — это время, за которое модель делает предсказание при поступлении новых данных в реальном времени Частота вывода зависит от дизайна стратегии, длительность окна принятия решений определяет верхний предел скорости вывода, а верхний предел скорости вывода ограничивает сложность модели. ...