Bitcoin Forum
April 25, 2024, 05:08:12 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Лаги API бинанса  (Read 304 times)
mvgx (OP)
Full Member
***
Offline Offline

Activity: 354
Merit: 152



View Profile WWW
August 23, 2020, 04:34:56 PM
Last edit: February 07, 2021, 12:03:02 AM by mvgx
Merited by cryptoman77777 (15), suchmoon (7), Symmetrick (3)
 #1

Заметки о работе криптовалютного торгового терминала на примере API Binance и MoonBot

Меня зовут Mike. Моя команда на протяжении 3х лет занимается разработкой и продвижением торгового терминала MoonBot и связанных с ним ресурсов: чатов, каналов в Телеграме, сигнального канала, сайта статистики торгов, форума и проч. Полный перечень наших ресурсов приведен в конце статьи.

В процессе работы мы успешно преодолели множество трудностей и решили множество интересных задач, но одну решить не можем. Связана она с работой API Binance, лучшей (даже несмотря на эти проблемы API) криптовалютной биржей на сегодняшний день.

Данная статья предназначена прежде всего скальперам и HFT-трейдерам. Статья также может быть интересной и тем, кто использует другие скальперские терминалы для торгов на бинансе, и сталкивался с описанными ниже проблемами. Главная цель статьи — объяснить пользователям, что происходит, и донести до бинанса информацию о том, что работу API можно улучшить.

Проблема API бинанса — это лаги.

Данная проблема делится на 2:

Первая — лаг получения биржевых данных. Это задержка между временем, когда на бирже сформировалась цена (произошла сделка) и временем, когда информация о цене этой сделки дошла по вебсокету до вашего терминала. Подробнее об этом ниже.

Вторая- это так называемая проблема “Order Does Not Exist”, рассинхронизация БД биржи. Если вы видите такие строчки в логе, значит вас это тоже коснулось.

Суть проблемы: когда вы поставили новый ордер, он еще отсутствует в базе данных бинанса, и попадает туда лишь спустя некоторое время. По заявлению Бинанса, это время в норме не превышает 1 секунды, что вполне допустимо. На самом деле это время может превышать 5–10 минут, что абсолютно неприемлемо!

Когда мы пишем об этом в тех. поддержку, Бинанс отвечает, “используйте вебсокет”. Господа, на дворе 20 год, уже все давно используют вебсокет. Проблема в том, что по вебсокету информация отправляется только 1 раз, и если в момент отправки случился какой то лаг (см. п.1), или даже дисконнект, не важно на чьей стороне — информация об ордере не дойдет! И повторно уже не будет отправлена.

Некоторые скажут, что вебсокет соединение очень надежно, и как может не дойти информация? Очень просто. Самый наглядный пример — выдерните на секунду сетевой кабель из компьютера, и вы увидите на тиковом графике разрыв. Разрыв — это и есть период, в течении которого данные не поступали. Более сложные, и более реальные случаи — разнообразные сбои и перегрузки сетевого оборудования на всем пути от Токио (местоположения серверов BInance) до вашего ПК. Результат — соединение отваливается по таймауту. МунБот сразу же восстанавливает его, но часть данных уже безвозвратно потеряна.

Обратите внимание, мы говорим о торговой информации, жизненно важной для сохранения и преумножения депозита. Не страшно , если например до вас не дойдет информация о прогнозе погоды, но если будет потеряна важная информация об ордере — вы не сможете его вовремя закрыть и лишитесь средств.

Поэтому помимо вебсокета, МунБот использует для контроля состояния ордера функцию API GET /api/v3/order. Если по каким либо причинам обновление ордера по вебсокету не было получено, в ход идет запасная функция GET /api/v3/order, а она вследствии десинка не работает ! Точнее, работает, но спустя неопределенное время.

Мы собрали статистику, как долго эта функция может не работать. Ниже график:



На этом графике собрана статистика со всех торгующих ботов за сутки. Видно, что API функция для проверки состояния ордера не работала от 200 до 600 секунд !

Данный график обновляется в реальном времени, вместе с другой статистикой работы API Binance его можно посмотреть тут


Теперь подробнее о лаге в чистом виде
Т.е. о задержках между какими-либо событиями на бирже и получением информации о них по API.

Обратим внимание, речь идет прежде всего о скальперских терминалах и ботах, каковым является МунБот, где трейдеру важны доли секунды для анализа рыночной ситуации и управления ордерами, а в автоторговле важны миллисекунды. Если вы торгуете в среднесрок, то можете и вовсе не замечать лагов. Но если вы занимаетесь скальпингом, если вы хотите иметь идеальную отзывчивость ПО, идеальную точность тикового графика и управления ордерами — для вас вопрос лагов очень важен! Многие пользователи МунБота застали времена, когда биржа работала без лагов, поэтому им есть с чем сравнивать.

Лаг, о котором говорим мы — это задержка между событием и получением информации о нем более, чем в 500мс. Многие наши пользователи считают допустимым еще меньшие значения в 200–300мс при ручной торговле, а в автоторговле при значениях больше 50мс уже стоит выключать ботов.

Вот пример, как выглядит лаг на графике:



Если вы не пользователь МунБота, вид этого графика может вас испугать, но тут все просто — разные линии — это значения цены BTC/USDT, на бинансе, полученные из разных источников (цена сделок, цена ASK в стакане, цена маркировки). Очевидно, что на самом деле в каждый момент времени цена BTC имела примерно одинаковое значение, поэтому все линии должны совпадать. Но они не совпадают из-за того, что цены сделок приходили с задержкой в 10–20 секунд против цен в стакане, и на графике видна старая цена, с огромным запаздыванием!

Мы собрали точные данные о лагах со всех работающих МунБотов на графике.

На этом графике ниже пример того, как были распределены задержки получения сделок с бинанса на протяжении суток 23.08.2020 (очень тихий день, лаг не превышал 900мс)



Онлайн-статистика лагов за последние сутки тут: https://api.moon-bot.com/latency/ru.html
данные обновляются раз в 20 секунд.

Неделю назад Binance сделал новый вебсокет fstream3.binance.com, нам было предложено проверить его в работе. Обнаружилось, что на этом сокете нет поддержки сжатия данных (permessage-deflate), вследствии чего ситуация с лагом еще больше усложнилась: теперь помимо зависимости от серверов Бинанса, вы зависите еще от качества своего интернета: объем данных без сжатия слишком велик, и дополнительный лаг вносится вашим провайдером.

Мы сразу сообщили об этой недоработке с сжатием в Бинанс, однако к нашему глубочайшему удивлению сегодня в новостях был опубликован этот сокет … все еще без исправления сжатия.



Кажется, биржа Бинанс настолько торопится увеличить объемы торгов и привлечь как можно больше пользователей, что на вопросы контроля качества времени совсем не остается.

Краткое резюме с техническими подробностями о работе MoonBot с API Бинанса

Тиковый график строится по следующим вебсокет потокам:

Фьючерсы: wss://fstream.binance.com/ws/<symbol>@aggTrade

Спот: wss://stream.binance.com:9443/ws/<symbol>@trade

Лаг на графике означает, что данные с этих потоков приходят с задержками. Если вы видите на графике, что сделки отстают на N секунд, значит ваш ПК получает данные с Бинанса с отставанием в N секунд.

Если вы видите на графике разрывы, значит в эти моменты ваш ПК физически не получает данные с Бинанса на указанных выше адресах. Если в МунБоте поставить уровень логирования на 5, то вы скорее всего увидите в логе тайм-ауты соединения.

Сравнить свои показатели лагов с другими пользователями и посмотреть общую картину лагов на Бинансе за текущие сутки можно на этом сайте https://api.moon-bot.com/latency/ru.html

Наши ресурсы:

Telegram чаты и каналы:

1. Сайт: инструкции, загрузки, блог https://moon-bot.com

2. Новостной канал MoonBot https://t.me/MoonBotNews

3. Общие вопросы, тех вопросы, обсуждения, предложения по Мун Боту https://t.me/moon_bot_crypto

4. Чат по обсуждению спец. канала Мун бота с торговыми сигналами в Телеграмме https://t.me/crypto_moon_mafia

5. Чат по вопросам настроек Мун Бота https://t.me/MoonBotSettings

6. Теория трейдинга и общефилософские вопросы https://t.me/moon_bot_kurilka

7. Англо-говорящая аудитория MoonBot https://t.me/Moon_Bot_Public

Статистика торгов на терминале MoonBot (ручная торговля и алготрейдинг) приведены данные по объемам и сделкам от всех пользователей, кто дал согласие на отправку сделок.
Обновляется онлайн https://stat.moon-bot.com/

Наш форум

http://forum.moon-bot.com/

Наш топик на крупнейшем крипто-форуме bitcointalk: https://bitcointalk.org/index.php?topic=2234450.msg22522662

English bitcointalk topic: https://bitcointalk.org/index.php?topic=2234450.msg22522662

Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714021692
Hero Member
*
Offline Offline

Posts: 1714021692

View Profile Personal Message (Offline)

Ignore
1714021692
Reply with quote  #2

1714021692
Report to moderator
1714021692
Hero Member
*
Offline Offline

Posts: 1714021692

View Profile Personal Message (Offline)

Ignore
1714021692
Reply with quote  #2

1714021692
Report to moderator
vested
Full Member
***
Offline Offline

Activity: 481
Merit: 102



View Profile
August 26, 2020, 11:00:22 AM
 #2

эта проблема не дает нормально торговать через сторонние терминалы,  и видимо на руку binance , что вопрос не решается ,хотя это возможно.
RuslanC
Newbie
*
Offline Offline

Activity: 9
Merit: 0


View Profile
August 26, 2020, 11:09:26 AM
 #3

Хуже всего то что Binance смотрит на эту проблему сквозь пальцы, и на все обращения отвечает стандартной отпиской, мол у нас всё в порядке.
flatcode
Newbie
*
Offline Offline

Activity: 35
Merit: 0


View Profile
August 27, 2020, 06:55:51 AM
 #4

Сам уже более 2 лет торгую на Бинансе с помощью мунбота, и да, приходится констатировать что биржа в последнее время сдувается в качестве. При повышении волатильности на рынке начинаются лаги и задержки по апи, а поддержка в качестве решения проблемы предлагает переехать поближе к Токио Smiley
Вообщем и грустно и смешно, надеюсь ребята с Бинанса все таки перестанут не замечать проблему и примут меры.

PS вот так выглядел график вчера
https://prnt.sc/u6npt8
cryptoman77777
Hero Member
*****
Offline Offline

Activity: 2646
Merit: 525


https://moon-bot.com


View Profile WWW
September 06, 2020, 09:24:10 AM
 #5



    С вчерашнего вечера и до этого момента снова лаги сильные Sad

   Много ошибок по API.   Графики четко это фиксируют  https://api.moon-bot.com/latency/ru.html

   

vested
Full Member
***
Offline Offline

Activity: 481
Merit: 102



View Profile
September 06, 2020, 04:49:01 PM
 #6

полный игнор со стороны бинанс продолжается, мы должны победит в этой битве!
Vershock
Newbie
*
Offline Offline

Activity: 14
Merit: 0


View Profile
September 08, 2020, 01:40:20 AM
 #7

Лаги так и не прекращаются, несмотря на все доводы и обоснования техподдержка предлагает искать причину в другом месте, мотивируя, что у них все в порядке.
"After testing, the endpoints are normal. The delay may be caused by many reasons, network issue, the capacity of the program process the data, the hardware issue. For your issue, we recommend you could check the network status first. The relay transport data would cost some time if the two servers are far apart."
Хотелось бы до них достучаться, чтобы проблемы с лагами решились и можно было трейдить без опаски...
Coin-1
Legendary
*
Offline Offline

Activity: 2436
Merit: 2169



View Profile
September 08, 2020, 11:10:40 PM
 #8

Когда большое число трейдеров отправляет множество запросов по API, серверы криптовалютной биржи находятся, по сути, под DDoS-атакой, поэтому ответы могут иметь существенную задержку, либо вовсе истекать по таймауту.

Но, скорее всего, эти лаги API имеют не техническую, а экономическую природу. Дело в том, что в периоды высокой волатильности на одной криптовалютной площадке образутся выгодные "треугольники" между торговыми парами. Эти разности цен активов максимально оперативно закрываются своими ботами, а задержка ответов API намеренно увеличивается с целью, чтобы не давать другим трейдерам заниматься внутрибиржевым арбитражем.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!