HFT notebook-heavy задача: постановка и признаки
На собеседовании показывают notebook-heavy задачу по HFT/time-series данным. Как подойти к постановке, признакам, валидации и базовому решению, если полноценный кодовый раннер под задачу пока не делаем?
Короткий ответ
Нужно сначала зафиксировать target и горизонт прогноза, затем строить признаки только из прошлого, валидироваться по времени и отдельно проверять leakage, latency и устойчивость на новых периодах.
Полный разбор
Для HFT/time-series задачи нельзя начинать с модели. Сначала нужно понять, что именно предсказываем: направление цены, доходность, вероятность движения, spread или другой target. Потом фиксируем горизонт прогноза и момент времени, в который модель должна принять решение.
Дальше признаки: лаги цены/объема, rolling statistics, imbalance, spread, volatility, агрегаты по окнам и признаки микроструктуры рынка. Все они должны считаться только из информации, доступной до момента предсказания.
Валидация должна быть временной: train на прошлом, validation на будущем, без random split. Для финансовых рядов особенно важно проверить leakage через нормализацию, rolling features, future joins и неявное использование будущих строк.
Baseline: простой rule-based или линейная модель/GBDT на лаговых признаках. Только после него имеет смысл обсуждать sequence-модели, если есть достаточно данных и понятная latency/cost граница.
Теория
Ключ в таких задачах — не назвать сложную архитектуру, а показать дисциплину работы с временными данными: causal features, temporal split, leakage checks, transaction costs и production latency.
Типичные ошибки
- Использовать random split для временного ряда.
- Считать rolling features или normalization по всему датасету.
- Начать с Transformer без target, горизонта и baseline.
Как отвечать на собеседовании
- Сначала спроси target, горизонт и момент принятия решения.
- Отдельно проговори, какие признаки доступны online, а какие являются leakage.