Зачем хранить котировки в базах данных и как это используют в трейдинге
Когда люди начинают работать с рыночными данными, часто возникает вопрос: зачем вообще нужны базы данных? Почему нельзя просто хранить котировки в Excel или Google Sheets? На практике все упирается в объем данных, скорость работы и возможности анализа.
Что такое базы данных
База данных — это система для хранения, чтения и обработки большого объема информации. В трейдинге базы данных используются для хранения истории котировок: цен, объемов, сделок, индикаторов и другой рыночной информации.
Главная задача — не просто сохранить данные, а сделать так, чтобы с ними было удобно работать: быстро искать нужные периоды, строить статистику, тестировать стратегии и рассчитывать собственные показатели.
Зачем сохранять историю котировок
История котировок помогает анализировать закономерности и понимать, как рынок вел себя в прошлом.
Без исторических данных невозможно проводить бэктестинг стратегий, анализировать поведение цены, изучать объемы и волатильность, проверять гипотезы и рассчитывать собственные индикаторы.
Исторические данные — это фундамент любой системной торговли и исследований рынка.
Почему нельзя хранить котировки просто в таблицах
Технически можно. Но таблицы быстро начинают упираться в ограничения.
Базы данных дают гораздо более гибкие возможности для анализа данных, быстрого чтения и записи, фильтрации, агрегации и обработки миллионов строк.
У табличных редакторов часто есть ограничения по количеству строк и столбцов. Кроме того, большие таблицы начинают медленно работать и становятся неудобными в поддержке.
В базах данных таких ограничений практически нет. Мы можем хранить десятки миллионов строк котировок и быстро работать с ними даже при сложных запросах.
Откуда обычно берут данные для баз
Можно либо покупать готовые данные у поставщиков или самостоятельно писать скриты для сбора данных с биржи. Мы предпочитаем самостоятельно записывать данные напрямую с биржи. Это позволяет не зависеть от сторонних сервисов, лучше контролировать качество данных и не платить регулярно за доступ к чужой инфраструктуре.
Какие базы данных используются в трейдинге
В зависимости от задачи используются разные базы данных. В нашей работе наиболее удобными оказались PostgreSQL, ClickHouse и MongoDB. Мы комбинируем их между собой в зависимости от типа нагрузки.
Например:
- котировки и большие объемы рыночных данных мы записываем в ClickHouse;
- отчеты и прикладные данные храним в PostgreSQL.
Можно ли обновлять котировки автоматически
Да, можно. Но в нашем случае мы пока обновляем историю вручную раз в несколько месяцев, потому что для задач бэктестинга этого достаточно.
Если речь идет о высокочастотной торговле или real-time аналитике, тогда обновление обычно происходит непрерывно в режиме реального времени.
Как решается проблема качества данных
В работе с рыночными данными очень важен Data Quality — контроль качества данных. На практике всегда возникают проблемы: пропуски, ошибки, разные форматы, расхождения в типах данных, дубли и некорректные значения.
Для проверки качества обычно пишутся отдельные скрипты, которые автоматически ищут аномалии и очищают данные. Без этого любые расчеты и стратегии могут давать неправильные результаты.
Какие преимущества дают базы данных в трейдинге
Главное преимущество для нас — возможность построить собственное «озеро данных».
Мы можем:
- хранить свои агрегации;
- рассчитывать собственные индикаторы;
- собирать статистику по рынку;
- анализировать объемы;
- тестировать гипотезы;
- строить внутреннюю аналитику.
Так база данных становится фундаментом всей исследовательской инфраструктуры.
Как мы используем базы данных в инвестфонде
В нашем инвестфонде базы данных активно используются для проведения бэктестинга и изучения торговых стратегий. Мы сохраняем историю котировок, проводим расчеты, тестируем идеи и анализируем результаты на больших объемах данных. Без такой инфраструктуры системная работа с алгоритмическими стратегиями практически невозможна.