Начните с задачи
Подходящий поставщик зависит от того, что вы строите. Торговому терминалу нужны двусторонние котировки по всем торгуемым инструментам, реальное время и история для графиков. Проп-фирме - надёжные цены для правил оценки и понятные метки времени. Финансовому сайту - читаемые цены и права на публичный показ; задержка по биржевым инструментам там часто допустима.
До первого звонка запишите три вещи: инструменты, без которых нельзя стартовать, экраны, где будут цены, и кто их увидит - сотрудники, клиенты или все посетители. Каждый пункт ниже проще оценивать против этого списка.
Покрытие и нормализация
Покрытие - это не число символов, а ответ на вопрос: есть ли нужные клиентам инструменты, котируются ли они в их торговые часы и можно ли сопоставить названия с вашими. Попросите каталог инструментов и сверьте его со своим списком построчно.
Нормализация важна не меньше. Если данные приходят из нескольких источников, хороший поставщик отдаёт их в одном формате: единые символы и поля, метки времени по одному правилу, известная точность по каждому инструменту. Иначе вы пишете и поддерживаете отдельный адаптер на каждый класс активов.
- Есть ли машиночитаемый каталог: символ, название, класс активов, точность?
- Стабильны ли символы и как сообщают о добавлении и выводе инструментов?
- Все ли метки времени в UTC и учитываются ли торговые сессии бирж на стороне поставщика?
Bid/ask или цена последней сделки
Уточните тип цены по каждому классу активов. Где рынок двусторонний - forex, спот-металлы, акции США - брокеру нужны bid и ask: по ним торгует клиент и от них строится спред. На других рынках естественна одна цена последней сделки: крипта торгуется на многих площадках, индекс - расчётная величина, сырьё и облигации обычно показывают по опорной цене.
Если фид заполняет bid и ask одной и той же ценой last, для показа это нормально - главное знать об этом и не выводить нулевой спред. Подробнее - в статье bid, ask и спред.
Задержка: реальное время или около 15 минут
Здесь два вопроса. Первый - как быстро цена доходит до вас после получения поставщиком; у потокового фида это доли секунды. Второй - реальное ли это время вообще: биржевые данные часто распространяются с задержкой около 15 минут, если у вас нет права показывать их вживую.
Попросите список по классам активов: что в реальном времени, что с задержкой и как задержка помечена в данных. Не путайте задержку данных с частотой обновления интерфейса. Подробнее - котировки в реальном времени и с задержкой.
История и таймфреймы
Графикам нужны свечи, и глубина истории зависит от таймфрейма: дневные обычно хранятся годами, внутридневные - месяцами. Уточните глубину по каждому таймфрейму и как строятся свечи: из какой цены, от какого базового таймфрейма, в каком часовом поясе, учитываются ли сессии бирж. Живая свеча на вашей стороне должна строиться по тому же правилу. См. как из тиков строятся свечи.
Протоколы доставки
Обычно нужны и поток, и запросы. WebSocket - для живых цен: одно соединение, цены приходят при изменении. REST - для истории, каталога и разовых запросов. Если есть только опрос по REST, вы платите либо свежестью, либо лимитами. Прочитайте документацию до встречи с продажами: формат сообщений, подписки, восстановление после переподключения, лимиты. См. WebSocket или REST.
Резервирование и мониторинг
Любой источник иногда отказывает. Важно, что дальше: при резервировании класс активов автоматически переключается на другой источник, при одном источнике фид замолкает вместе с ним.
Спросите, как обнаруживают проблемы. Аптайма сервиса мало: соединение может быть живым, а отдельный инструмент - стоять. Хорошие признаки: мониторинг тишины по инструментам, алерты, публичное описание схемы надёжности, понятная цель аптайма и порядок оповещения об инцидентах.
Аутентификация и ключи
Подписанная аутентификация, например HMAC, не передаёт секрет по сети. Уточните, как выдаются, ротируются и отзываются ключи, можно ли разделить тест и прод, что происходит с открытыми соединениями при отзыве. Ключ фида никогда не кладите во фронтенд: подключайтесь с сервера и раздавайте цены клиентам оттуда.
Лицензирование и права на показ
У рыночных данных есть условия использования. Они зависят от того, кто видит данные, реальное это время или задержка и передаёте ли вы их дальше; условия разных бирж различаются и меняются. Это не юридическая консультация: уточняйте у поставщика письменно, что разрешает ваш сценарий, читайте его политику рыночных данных и проверяйте вывод у своего юриста.
Поддержка и SLA
Если цены встали в 03:00 UTC, нужен тот, кто ответит. Спросите, кто разбирает инциденты, как с ними связаться, за какое время отвечают и закреплено ли это в договоре. Инженер на связи во время интеграции экономит недели.
Цена и модель тарификации
Цена обычно зависит от состава инструментов и классов активов, реального времени или задержки и числа пользователей или экранов. Сравнивайте предложения на одной базе и спрашивайте, что меняет цену. Настороженно относитесь к оплате за каждый запрос или сообщение в потоке: расходы растут с активностью рынка, а не с вашим бизнесом.
Как провести пилот
Короткий пилот скажет больше любой презентации:
- Заранее согласуйте список инструментов и критерии успеха: покрытие, частота обновлений в часы пик, пропуски, поведение при переподключении.
- Подключитесь с тестового сервера, подпишитесь на реальный список и пишите каждый тик со временем прихода несколько торговых дней, включая открытие рынка.
- Загрузите историю по тем же инструментам и сравните последние свечи с построенными из потока.
- Намеренно оборвите соединение и проверьте, как быстро возвращаются цены и не теряется ли что-то.
- Задайте вопрос в поддержку и замерьте время ответа.
Вопросы поставщику
Таблица для первого звонка. Во второй колонке - как читать ответ.
| Вопрос | Что значит ответ |
|---|---|
| Где bid/ask, а где цена последней сделки - по классам активов? | Чёткий ответ по каждому классу - поставщик знает свои данные. Размытый - узнаете в проде. |
| Что в реальном времени, а что с задержкой? | Что можно показывать вживую и где нужна пометка о задержке. |
| Сколько независимых источников на класс активов, переключение автоматическое? | Один источник на рынок - его сбои станут вашими. |
| Как вы узнаёте, что инструмент перестал обновляться? | Мониторинг тишины ловит то, что не видно по проверке соединения. |
| Глубина истории по таймфреймам и часовой пояс? | Хватит ли данных графикам и нужна ли конвертация времени. |
| Какие лимиты и есть ли оплата за сообщения? | Предсказуемые лимиты без оплаты за сообщения упрощают план нагрузки и бюджета. |
| Что разрешает наш сценарий на публичных страницах? | Письменный ответ - отправная точка для проверки у вашего юриста. |
| Кто отвечает на инциденты и как быстро? | Есть ли поддержка вне рабочего времени. |
Как это устроено у FinaQuotes
FinaQuotes - инфраструктура рыночных данных, не брокер и не поставщик ликвидности. Данные агрегируются из нескольких институциональных и биржевых источников и нормализуются FinaQuotes в единый формат по семи классам активов.
- Двусторонние bid/ask на forex, спот-металлах и акциях США; цена последней сделки на крипте, индексах, сырье и облигациях. См. покрытие.
- Акции США в реальном времени, сделки и котировки; акции других рынков с задержкой около 15 минут; остальные классы в реальном времени. Тик доставляется за доли секунды после получения.
- Свечи на 9 таймфреймах от 1 минуты до месяца, от минутной базы, в UTC, свечи акций - в часы торгов биржи. Годы дневной истории, месяцы внутридневной. См. исторические данные.
- WebSocket с аутентификацией HMAC без оплаты за сообщения; REST для истории, каталога и логотипов с лимитом по умолчанию 120 запросов в минуту на IP. См. документацию.
- Несколько независимых источников на класс активов с автоматическим переключением, мониторинг тишины и алерты, цель аптайма 99.9 %. См. надёжность.
- Доступ по заявке, ответ в течение одного рабочего дня, цена по запросу. См. цены и данные для брокеров.
Частые вопросы
Что важнее всего брокеру при выборе поставщика котировок?
Брокеру важнее всего двусторонние bid/ask на торгуемых рынках, реальное время, автоматическое переключение между источниками и понятные права на показ. Покрытие и цена тоже важны, но замолкший фид или неверный тип цены обходятся дороже любой скидки.
Поставщик рыночных данных - это поставщик ликвидности?
Нет. Поставщик рыночных данных отдаёт цены для показа, графиков и мониторинга, а поставщик ликвидности исполняет сделки. FinaQuotes - только поставщик данных и ордера не исполняет.
Сколько должен длиться пилот?
Пилот должен охватить хотя бы несколько полных торговых дней, включая открытия рынков и активную сессию, чтобы увидеть фид под нагрузкой. Критерии успеха согласуйте заранее, иначе итог будет делом вкуса.
Нужен фид, о котором эта статья?
Расскажите, что вы строите и какие классы активов нужны. Ответим в течение одного рабочего дня: условия доступа и стоимость.