База данных QuestDB — пожалуй лучший выбор для алготрейдинга

Обычные базы данных не рассчитаны на миллионы тиков в секунду. QuestDB — рассчитана. Разбираемся, что это такое и зачем она нужна трейдеру.

Что такое QuestDB

QuestDB — это база данных, заточенная специально под временны́е ряды.
Временной ряд — это любые данные, где главное — это момент времени: цена акции в 14:32:05.347, объём сделки в 14:32:05.391 и так далее.

Обычный PostgreSQL или MySQL хранит данные как таблицы в произвольном порядке.

QuestDB хранит всё по колонкам и сортирует по времени — это принципиально меняет скорость работы с финансовыми данными.

4M+строк в секунду на запись!

Почему обычная БД не подходит

Представь: ты собираешь тиковые данные по 50 инструментам одновременно. Каждый тик — это строка в базе. Биржа шлёт сотни тысяч обновлений в секунду. PostgreSQL начнёт задыхаться уже через несколько минут — транзакции, блокировки, индексы по всем колонкам.

Алготрейдинг — это не просто «сохранить цену». Это писать быстро, читать быстро, считать скользящие средние за миллисекунды и не терять ни одного тика под нагрузкой.

QuestDB решает эту проблему архитектурно: данные пишутся последовательно в append-only режиме, без блокировок. Читать и писать можно одновременно без конфликтов.

Два способа работы с базой

QuestDB поддерживает два протокола подключения, и они дополняют друг друга:

1) PostgreSQL Wire
Порт 8812

SQL-запросы, аналитика, чтение данных. Любая библиотека для Postgres работает без изменений. (чтение, SQL)

2) ILP / нативный
Порт 9009

Потоковая запись миллионов строк без подтверждения каждой. Максимальная скорость ingestion. (запись, стриминг)

На практике это выглядит так: тиковые данные пишутся через ILP с максимальной скоростью, а стратегия читает историю через SQL для расчёта сигналов.

Что умеет QuestDB из коробки

  • Хранение тиковых данных с наносекундной точностью временных меток
  • SQL с расширениями для временных рядов: SAMPLE BY, LATEST ON, ASOF JOIN
  • Автоматическое партиционирование по дням, неделям, месяцам — старые данные не замедляют новые запросы
  • Веб-консоль на localhost:9000 — пишешь SQL прямо в браузере и видишь графики
  • Совместимость с Grafana для построения дашбордов в реальном времени
  • Работа с Python через psycopg2, pandas, нативный клиент questdb

Типичный сценарий для трейдера

Стратегия на Python подключается к брокерскому API и получает поток котировок. Каждый тик через нативный клиент уходит в QuestDB — это происходит так быстро, что не создаёт никаких задержек в основном цикле.

Параллельно другой процесс каждую секунду делает SQL-запрос: считает VWAP за последние 5 минут, сравнивает с текущей ценой, принимает решение. Всё это работает одновременно без конфликтов.

После торгового дня вся история уже лежит в базе. Можно запускать бэктест прямо на реальных тиках, не выгружая данные никуда.

Открытый исходный код, бесплатно

QuestDB — open source, Community Edition полностью бесплатна. Скачиваешь один ZIP-файл, распаковываешь, запускаешь один exe. Никаких установщиков, никаких лицензий, никаких облачных аккаунтов. Работает локально на Windows, Mac и Linux.

Для индивидуального трейдера или небольшой команды — это полноценное production-решение без каких-либо ограничений.

QuestDB в первую очередь подходит для задач:

Среднечастотный алготрейдинг — стратегии с горизонтом от секунд до дней. Сигналы считаются раз в секунду или раз в минуту.

Сбор и хранение маркет-даты — записывать поток тиков со всех инструментов для последующего анализа и бэктестинга.

Бэктестинг на тиковых данных — прогонять стратегию на реальной истории с точностью до тика, используя SQL-запросы с SAMPLE BY и ASOF JOIN.

Мониторинг и аналитика — смотреть на поведение стратегии в реальном времени через Grafana, считать метрики исполнения. Grafana — это инструмент для визуализации данных. Её можно подключить к источнику данных (в том числе к QuestDB), и она строит графики, дашборды, алерты — всё в браузере в реальном времени.

Оцените статью
Репост в TG и VK
Алготрейдинг шаг за шагом. Создай торгового робота на Python с нуля по нашим урокам. Автоматизируй торговлю на бирже по собственной стратегии.