Комментарии 9
У Финам появился open api. Сделайте с ним сравнение https://finamweb.github.io/trade-api-docs/
Для каждого API был разработан клиент, который подключался к серверам брокера, подписывался на обновления стакана и регистрировал время получения каждого обновления. Мониторинг проводился в течение 30 секунд, что позволило получить репрезентативную выборку данных.
Методология вызывает ряд вопросов:
Тестирование происходило одновременно или в разное время?
Почему всего 30 секунд?
Из результатов нельзя понять, кто из брокеров позволяет получить данные раньше. Средняя частота обновлений - весьма косвенный показатель.
Скорость обновления может сильно зависеть от локации тестирующего. Пинг до хоста может сильно зависеть от того, в каком ДЦ Москвы Вы расположены
Одновременно. Вы можете посмотреть код. Все подключение идет с одного места, с одного компьютера, по одному и тому же фьючерсу.
А сколько нужно для проверки самого ликвидного источника данных?
У стаканов нет меток времени. Поэтому "раньше" вещь недостоверная. Но можно понять, кто транслирует изменения цен "чаще". Что будет влиять и на "раньше".
Локация - обычный домашний компьютер, равноудаленно расположенный от двух брокеров. Более того, специально выложен код для проверки тем, у кого ситуация другая. Потому что кто-то может быть ближе к Тинькофф, и у него картина будет другая. А вычисления средней температуры по больнице уже не так интересны.
И кроме того, есть еще вопрос, с какой скоростью API позволяет выставить заявку - это, бывает, очень не быстро происходит. Может так оказаться, что из доступных API (если не рассматривать TWIME/PLAZAII/FIX/FAST и тп. из колокации MOEX) данные получать лучше через одного, о заявку выставлять - через другого брокера.
Сомневаюсь что такая комбинация будет быстрее, чем использование одного брокера. Но протестировать конечно имеет смысл.
С другой стороны, стаканы могут наполняться разными ценами. Можно выставлять заявку через параллельное подключение, но и цена в нем будет "параллельная". Брокер не обязан транслировать стакан как он есть на бирже. Он может добавлять свои уровни ликвидности, исполняя заявку по цене лучше, чем может дать биржа, к примеру. Тиньков так и делает. Он называет это диллерским стаканом.
А сколько нужно для проверки самого ликвидного источника данных?
Ну хотя бы пару часов. А еще лучше повторить в разные дни. А 30 секунд - нерепрезентативная выборка.
У стаканов нет меток времени. Поэтому "раньше" вещь недостоверная. Но можно понять, кто транслирует изменения цен "чаще". Что будет влиять и на "раньше".
Офферы приходят и уходят. Каждый оффер - это цена и количество. Можно же оценить, где одни и те же офферы раньше приходят и раньше уходят из стакана. Более высокая частота обновления ≠ более актуальные данные. Можно, условно, 6 раз в секунду получать данные о том, что было 0,5 секунд назад, или 3 раза в секунду о том, что было 0,1 секунд назад. Что лучше?
по api Алора:
1. для "скорости" лучше использовать формат Slim
2. при создание подписки в WebSocket есть ткой параметр как frequency ( Максимальная частота отдачи данных сервером в миллисекундах ). если его не указывать = стоит 175 миллисекунд . Но можно его уменьшить .
"
Минимальное значение параметра зависит от выбранного формата возвращаемого JSON-объекта:
Simple
— 25 миллисекундSlim
— 10 миллисекундHeavy
— 500 миллисекунд
Сравнительный анализ скорости API брокеров: Alor vs Tinkoff