Обычные базы данных не рассчитаны на миллионы тиков в секунду. QuestDB — рассчитана. Разбираемся, что это такое и зачем она нужна трейдеру.
Что такое QuestDB
QuestDB — это база данных, заточенная специально под временны́е ряды.
Временной ряд — это любые данные, где главное — это момент времени: цена акции в 14:32:05.347, объём сделки в 14:32:05.391 и так далее.
Обычный PostgreSQL или MySQL хранит данные как таблицы в произвольном порядке.
QuestDB хранит всё по колонкам и сортирует по времени — это принципиально меняет скорость работы с финансовыми данными.
4M+строк в секунду на запись!
Почему обычная БД не подходит
Представь: ты собираешь тиковые данные по 50 инструментам одновременно. Каждый тик — это строка в базе. Биржа шлёт сотни тысяч обновлений в секунду. PostgreSQL начнёт задыхаться уже через несколько минут — транзакции, блокировки, индексы по всем колонкам.
Алготрейдинг — это не просто «сохранить цену». Это писать быстро, читать быстро, считать скользящие средние за миллисекунды и не терять ни одного тика под нагрузкой.
QuestDB решает эту проблему архитектурно: данные пишутся последовательно в append-only режиме, без блокировок. Читать и писать можно одновременно без конфликтов.
Два способа работы с базой
QuestDB поддерживает два протокола подключения, и они дополняют друг друга:
Порт 8812
SQL-запросы, аналитика, чтение данных. Любая библиотека для Postgres работает без изменений. (чтение, SQL)
Порт 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), и она строит графики, дашборды, алерты — всё в браузере в реальном времени.








