К тренажеру
ВопросHardmlsd-generalРеальный собес

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.