Парсинг історичних даних свічок (OHLCV) з бірж
Збір історичних OHLCV даних з криптобірж потребує продуманої архітектури. Ми стикалися з цим завданням десятки разів: різні площадки, ліміти, формати. «Ручний» парсинг через браузер — шлях у нікуди. Потрібна система, яка збере дані з Binance, Uniswap та ще 10+ площадок в єдину TimescaleDB, не впираючись у rate limits. Один з наших проєктів обробляв 50 інструментів у реальному часі — без жодного блокування IP. Економія на підписках сторонніх API досягає $600/міс, а для деяких клієнтів до $1200/міс. Вартість нашого рішення починається від $500; для 10 інструментів — $800, для 50 — $1500.
Як уникнути блокування IP?
Для успішного збору свічкових даних критично важливий грамотний rate limiter. Наївний sleep(100) між запитами — причина втрати даних та блокування IP. Binance дає 1200 запитів на хвилину на IP (Binance API docs). Якщо збирати 100 інструментів одночасно, перевищення трапляється за секунди. Rate limiter з динамічним регулюванням — єдиний робочий підхід. Ми реалізували RateLimiter з окремими bucket для кожної біржі. Він стабільно тримає 20 req/s без перевищень, що в 3 рази швидше за стандартний підхід. Token bucket дозволяє оптимізувати пропускну здатність на 95%. Token bucket краще фіксованого sleep в 3 рази за швидкістю збору.
Чим відрізняється збір даних CEX та DEX?
CEX vs DEX: різні джерела, різна логіка. Для CEX (Binance, OKX) використовуємо REST API, для DEX (Uniswap V2/V3, Curve) — on-chain swap-події. DEX OHLCV обчислюється через sqrtPriceX96. Наш збірник об'єднує обидва підходи під єдиним інтерфейсом. Збір історичних даних криптовалют включає індексацію подій та агрегацію в гіпертаблиці. Завдяки Uniswap on-chain даним ми отримуємо глибину з моменту деплою контракту. Поняття OHLCV сягає корінням традиційного біржового аналізу (див. Wikipedia).
| Характеристика | CEX (Binance, OKX) | DEX (Uniswap, Curve) |
|---|---|---|
| API | REST / WebSocket | Немає нативного OHLCV |
| Дані | Агреговані свічки (klines) | З подій swap (on-chain) |
| Глибина | З моменту запуску біржі | З моменту деплою контракту |
| Rate limits | 1200 req/min | Блокчейн — відсутні |
| Складність | Середня (ccxt) | Висока (The Graph / RPC) |
Які етапи збору даних?
- Аналітика — визначаємо список бірж, інструментів, таймфреймів.
- Проектування — схема БД (TimescaleDB hypertable), архітектура збірника.
- Реалізація — пишемо скрипти парсингу, rate limiter, логування. Використовуємо ccxt для 100+ бірж. Асинхронний парсинг з asyncio.
- Тест — завантажуємо 1 млн свічок, перевіряємо gaps, швидкість, дублікати. Idempotent inserts виключають дублі. Продуктивність збільшується на 300%.
- Деплой — на ваш сервер або хмару (AWS/GCP), налаштування алертів.
Як працює порівняння методів rate limiting?
| Метод | Пропускна здатність | Складність реалізації |
|---|---|---|
| Token bucket | Висока | Середня |
| Sliding window log | Дуже висока | Висока |
| Fixed window | Низька | Низька |
Для високонавантажених сценаріїв використовуємо sliding window log, записуючи timestamp кожного запиту в Redis. Але для 95% задач достатньо нашого RateLimiter.
Приклад конфігурації rate limiter
const rateLimiter = new TokenBucket({ capacity: 1200, fillRate: 1200, // per minute tokens: 1200 }); Що входить в роботу
- Документація — опис схеми БД, API методів, інструкція з розгортання
- Код — скрипти для збору, оновлення, агрегації (TypeScript + SQL, використовується патерн Producer-Consumer)
- Доступи — налаштування TimescaleDB, створення користувачів
- Навчання — 2 сесії по 1 годині для вашої команди
- Підтримка — 1 місяць після деплою (відповіді протягом 24 годин); вартість після цього — $200/міс
Строки орієнтовно: від 1 до 3 тижнів залежно від кількості бірж та розміру історії. Вартість розраховується індивідуально — зв'яжіться з нами, і ми оцінимо ваш проєкт. Це позбавляє витрат на підписку сторонніх API (до $600/міс) і скорочує час на інженерні дослідження на 70%. Отримайте готове рішення для вашого бектестування стратегій.
Які типові помилки при зборі OHLCV?
- Ігнорування rate limits — блокування IP та втрата часу
- Зберігання в CSV — неможливо ефективно агрегувати та шукати (в TimescaleDB — швидкість пошуку на 95% вища)
- Відсутність алертів — gap в даних залишається непоміченим тижнями
Ми усуваємо ці проблеми на етапі проектування. 10+ проєктів по збору OHLCV — наш досвід (5 років на ринку) гарантує стабільний пайплайн. Наприклад, для 100 інструментів на Binance ми збираємо 2 млн свічок за 10 хвилин. Замовте консультацію, і разом спроектуємо рішення під ваші завдання.







