Перейти к публикации
Форум ботоводов

Стакан Бинанса


Рекомендованные сообщения

Уже раз 5 пытался победить, не получается собрать стаканы ((( Хелп нужен

делаю как тут написано, кстати уже изменили относительно того что в блоге написано:

How to manage a local order book correctly

  1. Open a stream to wss://stream.binance.com:9443/ws/bnbbtc@depth.
  2. Buffer the events you receive from the stream.
  3. Get a depth snapshot from https://www.binance.com/api/v1/depth?symbol=BNBBTC&limit=1000 .
  4. Drop any event where u is <= lastUpdateId in the snapshot.
  5. The first processed event should have U <= lastUpdateId+1 AND u >= lastUpdateId+1.
  6. While listening to the stream, each new event's U should be equal to the previous event's u+1.
  7. The data in each event is the absolute quantity for a price level.
  8. If the quantity is 0, remove the price level.
  9. Receiving an event that removes a price level that is not in your local order book can happen and is normal.

Беру по апи из п.3 стакан, как есть присваиваю его переменной, назовем snapshot.

c п.4 уже немного непонятно ) Удалить любые события где u меньше или равно snapshot. ????

Как тогда буфер должен выглядеть? Он должен быть как массив?

0:{ "e": "depthUpdate""E": 123456789"s": "BNBBTC", "U": 157"u": 160, "b": [ .......

1:{ "e": "depthUpdate""E": 123456789"s": "BNBBTC", "U": 161"u": 173, "b": [ .......

2:{ "e": "depthUpdate""E": 123456789"s": "BNBBTC", "U": 174"u": 200, "b": [ .......

Если так то п.4 я должен удалять строчки из массива? По логике там будет потом только одна последняя (свежая п.5 и п.6)

Далее мне же буфер надо сколхозить с snapshot и потом его по событиям обновлять.

Вроде все сделал примерно так как описал выше, где объемы 0 удаляю, где цена одинаковая а объемы разные - меняю объем, где нет цены в слепке а есть в стриме - добавляю цену если объем больше 0.

Работает 3 минуты и становится заметно что крайняя цена ближе к спреду начинает отличаться от вебморды, и видно что таких цен и объемов уже нет а они остаются в snapshot и не прилетает цена с объемом 0 чтоб их удалить. Прилетают на удаление другие всякие, причем заметил что в основном уже те которые я сам же недавно из стрима добавлял, а те которые из апи достались не замечал, они скорее всего и остаются не удаленными.

Уже километр кода написал, стер, написал, гору сигарет выкурил, не пойму что не так )))

Может кто уже делал, (знаю что Андрей делал )) ), и если не трудно выложите это рабочее. Python.

 

Ссылка на комментарий
Поделиться на других сайтах

06.11.2019 в 15:31, Andrei22 сказал:

c п.4 уже немного непонятно ) Удалить любые события где u меньше или равно snapshot. ????

Отбрасывать, т.е. не принимать во внимание

06.11.2019 в 15:31, Andrei22 сказал:

Как тогда буфер должен выглядеть? Он должен быть как массив?

Я делал деревом, кажется, где каждый лист был ценой, еще вроде делал словарем, где ключом была цена... Вот тут статья и примеры кода https://bablofil.ru/inner-arbitrage/ ( а еще вот тут на голанге https://bablofil.ru/vnutrenniy-arbitraj-chast-2)

Ссылка на комментарий
Поделиться на других сайтах

Спасибо Андрей, я не дождался ответа и начал делать в пятый раз прям точь в точь дословно как написано в инструкции, теперь я убедился что там каждое слово важно и его последовательность ))).

Делать буфер стал словарем в словаре где ключ это номер события {1:{msg....}}, {2:{msg....}}.. так я смог удалять и не принимать не нужные u. Проблема не описаннная в пункте 6, если интернет пропадет/зависнет или счетчик u не тот прилетит или собьется то больше обновляться не будет, пришлось отлавливать очередность u и снимать слепок заново если что ))

Ссылка на комментарий
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...