Я уже около двух лет проектирую торговую экосистему, в основе которой лежат данные.
И, пожалуй, одна из самых забавных моих ошибок в начале пути — мне казалось, что сбор данных будет одной из самых простых задач.
Первую версию я действительно сделал довольно быстро. Несколько недель работы: данные поступают, сохраняются, стратегия их получает. Казалось — вопрос закрыт.
Ага, конечно 🥸
По мере развития проекта менялись сами требования к данным. Того, чего хватало одной стратегии, уже не хватало следующей. Появлялись новые источники, новые поля, обрывы, пропуски, ошибки синхронизации. Нужно было контролировать качество, восстанавливать потоки и следить, чтобы исследование не получало красивый результат просто потому, что где-то в данных образовалась дыра.
Объём постепенно вырос до сотен гигабайт. Хранилища, серверы, резервирование, провайдеры, мониторинг — у данных появилась собственная инфраструктура.
И спустя два года я всё ещё возвращаюсь к её модернизации.
Потому что растёт система — растут и требования к тому, на чём она стоит.
Последние две недели я занимался очередным таким этапом: автоматизацией сбора опционных данных.
Исторические данные по опционам у нас уже были. Для первых исследований хватало периодических снимков рынка. Но когда поверх базового торгового контура начинаешь исследовать хеджирование и торговлю волатильностью, требования меняются радикально.
Представьте опционную доску: множество страйков и экспираций, цены, IV, delta, gamma, theta, vega и другие параметры.
Теперь представьте, что состояние этой доски нужно автоматически фиксировать по множеству инструментов с высокой частотой.
Это уже не «табличка с котировками».
Это непрерывный поток, в котором за короткое время появляются миллионы строк, а ежедневный объём начинает измеряться десятками гигабайт.
И собрать данные — только половина задачи.
Их нужно привести к единому формату, проверить, отфильтровать повреждённые или неполные записи, разбить поток на управляемые части, временно удерживать их в кэше, записать в хранилище, затем снова собрать в пригодный для исследований набор — и при этом не допустить незаметных дыр во времени.
Всё это должно происходить автоматически.
Сотни миллионов строк проходят через pipeline практически без участия человека.
А человек в идеале должен увидеть только одно:
данные готовы к исследованию.
Сегодня впервые за долгое время система прошла полный день без очередного грозного алерта о сбое.
Мелочь.
Но после двух недель, проведённых внутри этого конвейера, воспринимается как маленькая инженерная победа.
Конечно, история на этом не заканчивается.
Пока текущего набора достаточно. Следующий уровень для опционов — полноценные order book и trades. А там объём и требования к инфраструктуре снова изменятся.
Наверное, через какое-то время я опять посмотрю на сегодняшний pipeline и скажу:
«Как вообще мы считали, что этого достаточно?»
Примерно так и развивается весь проект.
И теперь я гораздо лучше понимаю, почему качественные рыночные данные стоят дорого.
Очень дорого.
Потому что платишь не за строки.
Ты платишь за уверенность, что в нужный момент эти строки действительно есть, они правильные, последовательные — и им можно доверять.




