Баг заключается в том, что функция API GET /api/v3/order
для проверки статуса ордера возращает ошибку "Order does not exist" (ордер не существует),
хотя на самом ордер существует. Из-за этой ошибки невозможно проверить состояние ордера - исполнен ли он полностью или частично или еще не исполнен.
Бинанс заявляет,
что время, в течении которого состояние ордера не определяется, не превышает 1 секунды на спокойном рынке, и 10 секунд во время выоской волатильности.
Посмотрим, так ли это. График ниже показывает время (в секундах), сколько на самом деле длится ошибка (т.е. сколько секунд невозможно узнать, что же происходит с вашим ордером)
На момент написания статьи значения на графике доходили до 250 секунд на спокойном рынке, т.е. в 250 раз больше, чем допускается !
Задержки измеряются в миллисекундах. Данные для графиков собираются с МунБотов наших пользователей, работающих на VPS серверах в Японии (Vultr или Amazon Tokyo VPS).
Все боты синхронизируют часы по японскому NTP серверу jp.pool.ntp.org. Если какой-либо бот по тем или иным причинам не мог синхронизировать часы, его отчеты игнорируются.
Каждый бот делает замер задержек на протяжении 10 секунд, выбирает максимальную (наихудшую) задержку за этот период и отправляет результат на сервер. Далее этот бот сбрасывает счетчик и повторяет измерение заново.
Собранные пакеты с отчетами со всех ботов хранятся на нашем сервере в течеии суток. Каждый отчет каждого бота откладывается на графике точкой. Поскольку разные боты запущены в разное время, их 10-секундные интервалы истекают в различные, случайные моменты. Таким образом, в любой момент времени у сервера есть информация о текущих задержках на бирже, и график визуально выглядит непрерывным (хотя и состоит из отдельных точек).
Задержка трейдов - это промежуток времени между моментом совершения сделки на бирже (параметр "T" в потоке websocket Trade Stream) и моментом получения данных об этой сделке по сети
Время, требуемое на исполнения команд работы с ордерами (время от момента отправки на биржу команды до получения ответа от биржи)
Время, требуемое на исполнения всех остальных API запросов, кроме команд работы с ордерами