К обычному разбору
Тренировка по собеседованиюТехническое собеседованиеWunderfundДата не указана

Wunderfund HFT: market data quality и latency

Идите сверху вниз: сначала попробуйте сами, затем откройте разбор. Если шаг с кодом, пишите решение прямо здесь и запускайте проверки на странице.

Шагов
4
Вопросов
4
Задач
0
1Вопрос15 мин

Как проверять качество биржевых market data

Есть поток биржевых событий: price, exchange timestamp, local timestamp и два канала доставки primary/secondary. Как понять, все ли в порядке с данными?

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

Нужно проверить временной интервал, задержку local - exchange, дубли primary/secondary, пропуски, нулевые/невозможные цены, out-of-order события и периоды, где один feed деградирует.

Подробный разбор

Сначала фиксируем схему: exchange timestamp - время события на бирже, local timestamp - время получения на нашей стороне, feed - primary или secondary. Основная derived-фича - latency = local - exchange. Она не должна быть отрицательной и должна иметь ожидаемое распределение по каждому feed.

Дальше идут проверки полноты: за какой период данные, нет ли дыр во времени, сколько событий в минуту, есть ли дубликаты одного биржевого события в primary и secondary, совпадают ли price и exchange timestamp у парных событий. Для HFT важно не просто "есть строки", а корректный порядок и задержки.

Отдельно проверяются значения: price не должен быть нулевым или отрицательным, не должно быть резких невозможных скачков без рыночной причины, не должно быть систематических пропусков в конкретные минуты. Хороший ответ заканчивается диагностикой: какие графики/агрегаты построить и какие алерты завести в production.

Типичные ошибки

  • Смотреть только describe() по price и не анализировать timestamps.
  • Не разделить primary и secondary feed.
  • Не проверить дыры во времени и out-of-order события.

Как сказать на собеседовании

  • Начни с latency = local_timestamp - exchange_timestamp.
  • Разделяй проверки schema, time coverage, feed consistency и market sanity.
2Вопрос10 мин

Какой market-data feed приходит раньше

По данным с primary и secondary feed нужно понять, через какой канал события приходят на сервер раньше. Как это посчитать корректно?

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

Нужно сопоставить одно и то же биржевое событие между feeds и сравнить local timestamps. Просто сравнивать среднюю latency по всем строкам можно, но лучше делать paired comparison.

Подробный разбор

Правильнее всего матчить одинаковые события: например по exchange timestamp, price и другим идентификаторам события, если они есть. Для каждой пары primary/secondary считаем разницу arrival_delta = local_secondary - local_primary. Если delta > 0, primary пришел раньше; если delta < 0, secondary раньше.

После этого смотрим распределение delta: median, p95/p99, долю случаев, где secondary быстрее, и зависимость от времени. Отдельно проверяем, что пары действительно соответствуют одному событию, иначе сравнение latency будет шумным.

Если полных пар нет, можно сравнить распределения latency по feed, но это менее надежно: разные feeds могли доставить разный набор событий.

Типичные ошибки

  • Сравнить средние timestamps без матчинга событий.
  • Не проверить случаи, где один из feeds не прислал событие.
  • Спрятать хвосты распределения за одним средним значением.

Как сказать на собеседовании

  • Скажи "paired events" и "distribution, not only mean".
  • Назови p50/p95/p99 и долю случаев, где secondary быстрее.
3Вопрос14 мин

Почему secondary иногда быстрее primary

В части событий secondary feed приходит быстрее primary. Как охарактеризовать эти случаи и найти причину?

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

Нужно выделить пары, где secondary быстрее, и сравнить их с нормальными парами по времени, burst-rate, exchange timestamp, цене, количеству событий и задержке primary.

Подробный разбор

Сначала строим признак secondary_faster = local_secondary < local_primary для matched events. Дальше не надо сразу гадать причину: нужно сравнить эти строки с обычными по нескольким срезам.

Полезные срезы: время дня, интервалы с большим числом тиков, latency primary, latency secondary, конкретные инструменты, price anomalies, пропуски в primary, out-of-order события. Если secondary быстрее только во время bursts, вероятная причина - primary начинает задерживаться при высокой нагрузке. Если это происходит в конкретные минуты, возможен сетевой или pipeline incident.

В production это превращается в мониторинг: доля secondary_faster по окнам, p95 latency по feed, missing paired events, zero/invalid price и alert на резкие отклонения.

Типичные ошибки

  • Сразу объяснять все "сетевой проблемой" без срезов.
  • Не сравнить anomalous subset с baseline subset.
  • Не смотреть bursts и time windows.

Как сказать на собеседовании

  • Формулируй как slice-and-compare.
  • Назови гипотезу про bursts, но подчеркни, что ее надо проверить.
4Вопрос12 мин

Какие аномалии искать в биржевом датасете

После базовых latency-вопросов интервьюер спрашивает: какие еще аномалии можно заметить в market-data файле?

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

Ищем дыры во времени, нулевые цены, дубликаты, out-of-order events, отрицательную latency, нестыковки между feeds и резкие скачки частоты событий.

Подробный разбор

Хороший список аномалий для market data:

  • пропуски во времени: минуты или секунды без событий, хотя рынок активен;
  • price = 0, отрицательные цены или невозможные скачки;
  • дубликаты одного события;
  • exchange timestamp идет назад или события приходят out of order;
  • local timestamp раньше exchange timestamp;
  • primary и secondary расходятся по price для одного события;
  • один feed систематически теряет события;
  • latency резко меняется в конкретных окнах.

Важно не просто перечислить, а сказать, как искать: график event count per minute, histogram latency by feed, paired feed diff, min/max price by window, duplicate key counts и отдельный отчет по anomalies.

Типичные ошибки

  • Ограничиться NaN/null checks.
  • Не учитывать временную природу данных.
  • Не разделять аномалии значений и аномалии доставки.

Как сказать на собеседовании

  • Дай чеклист и сразу назови агрегаты/графики.
  • Не забывай про zero price и gaps in time.