Загрузка с KuCoin всех цен через WebSocket и Get REST API
Вставка
- Опубліковано 26 лис 2024
- #python #code #visualstudio #mysql #bitcoin #websocket #xampp #mysqlclient #request #restapi #get #kucoin #who
Показываю как написать на Python подключение через WebSocket и REST API к KuCoin .
Получаем поток всех торгов в режиме реального времени и сохраняем его в базу данных.
XAMPP - www.apachefrie...
websocket-client - pypi.org/proje...
mysqlclient - pypi.org/proje...
Requests - pypi.org/proje...
Git - github.com/mem...
API KuCoin WebSocket - docs.kucoin.co...
API KuCoin REST - api.kucoin.com...
Спасибо тебе!
На времени 9:23 у вас в браузере "читабельное" отображение всех словарей. Скажите, это особое расширение для браузера? В моём всё сплошным текстом, а хотелось бы структурировано.
А так подключение заработало - большое спасибо за работающий пример! Но пишу просто в текстовый файл. Сейчас буду разбираться с получением секретных АПИ-ключей, шифрованием и тем, как из них состряпать уникальный код...
Он так отображается в Mozille Firefox . В остальных браузерах как текст.
В каждом браузере есть свои нюансы. Поэтому вам нужно использовать все известные.
@@itshtuchki в Гугл-Хроме установила расширение "JSON-handle" и пришло счастье в мой браузер))) Теперь всё разноцветное и структурированное, приятно посмотреть. Огнелис был классным и моим любимым обозревателем до версии 3.5, потом, увы, мы разминулись.
Да, такое же отношение к нему.
Максимум для работы и тестов.
Основной конечно Гугл.
Привет, у тебя в этом пример часто обрывы? У меня регулярно
Через API частенько бывает, именно с этой биржей. По web socket не тестировал долго. Поэтому выбрал для себя в последнем видео, загрузку в отдельном потоке каждое обращение к бирже. По web socket слишком много данных, мне столько не нужно.
Здравствуйте!
Есть несколько конкретных вопросов, вроде читала, но пока не нашла про них на сайте биржи. Благодаря вашему видео удалось запросить книгу ордеров с полной глубиной, настроить её обновление через вебсокет, всё прекрасно заработало. Сейчас хочу дополнительно получить историю торгов, но мне выдаёт не более сотни позиций - этого мало. Хотелось бы понять:
1) Постоянно ли можно дёргать GET-запросы /api/v1/market/histories?symbol=*торговая-пара* или распространяется ограничение (100 per 10 seconds)?
2) Можно ли подписаться на получение обновлений истории свершившихся сделок через вебсокет? (не нашла, на что подписаться, плохо искала?)
До этого с другой биржи скачивала историю, чтобы оценить динамику торгов, так там при большом маркет-ордере до 1100 сделок в секунду на всякую мелочь проходит. Из 50 купленных биткоинов только 1 заявка на 8 монет была, около 10 на 2-4 биткоина и в течении нескольких секунд отрабатывались по 0,0001 битка. Поэтому очень интересно было бы такое отслеживать в режиме реального времени. Не подскажете, как оперативно это делать на Кукоине?
Для личных ордеров использую GET запросы.
Ограничения на все api запросы одинаковы и считаются в сумме.
Сама биржа всегда рекомендует работать именно с WebSocket
Для личных ордеров есть приватный канал docs.kucoin.com/#private-channels
Это нужно что бы не дергать постоянно get api.
Но я хожу на биржу каждые 20-30 сек.
Для сделок используйте WebSocket Public Channels - там поток данных. Вот только не знаю полный ли он.
Вы можете не успевать его обрабатывать. Используйте базу данных в памяти, если будите такое записывать себе.
@@itshtuchki Благодарю за ответ! Естественно, всё будет держаться в памяти, там одна книга ордеров около мегабайта получилась. Почитаю завтра ещё раз, подробнее, а пока нашли лишь такое: "...using the get_trade_histories() method. ...The method returns past 100 sequences containing the sequence id, time, price, size, and side for the ticker."
Но пришла в голову иная мысль: по моим оценкам в секунду я не смогу послать больше сотни запросов, зато сейчас код отлично отлавливает обновления книги ордеров (второго уровня) с нулевыми значениями объёма монет. Если пойдёт вал обновлений с обнулением количества предлагаемого/покупаемого у мейкеров - это и будет означать исполнение чьей-то крупной маркет-заявки, которая в "стакан" не попадает.
На каждом сообщении высчитывать время для пинг - да вы гоните? Применяйте асинхронщину и будет вам счастье.
Комментарий к вопросу, касающемуся формирования POST-запроса на размещение хотя бы самого простого лимитного ордера. Открываю Trade - Orders - PRICE, там есть строчка: "The price must be specified in priceIncrement symbol units." Получается, чтобы правильно округлить вычисленную цену и без проблем разместить ордер, мне надо знать 2 параметра: priceIncrement (шаг по цене) и quoteIncrement (шаг по покупаемой крипте). Потому что там написано (перевожу): "price в ордере должна быть положительным целым числом, кратным шагу цены priceIncrement (т. е. если шаг равен 0,01, ордера с ценами 0,001 и 0,021 будут отклонены)".
Ответ на запрос /api/v2/symbols?market=BTC - показывает что нужно, но там нет пары BTC-USDT. Там вообще нет USDT. Для новичков неочевидно, что надо запросить у биржи /api/v2/symbols?market=USDS перед размещением ордера на покупку биткоинов за доллары, и там будет пара "BTC-USDT", priceIncrement = 0,1USDT и quoteIncrement = 0.000001BTC. Вроде так.
Ещё прикол: запросила /api/v1/market/allTickers, а там есть такие строчки: takerFeeRate = 0.001, takerCoefficient = 2, makerCoefficient = 2, из чего следует вывод, что по некоторым парам комиссия ни разу не 0,1%, а больше, 0,2%. Хе-хе))
На этой бирже на низко ликвидные торговые пары комиссия больше.
Я беру инфу отсюда. api.kucoin.com/api/v1/symbols/
Один раз забрал к себе в базу и пользуюсь.
Раз в сутки обновляю.
@@itshtuchki благодарю, это действительно проще - сохраню в текстовый файл)) Ура! Кажется это было последнее, с чем надо было разобраться, теперь от блок-схем перейду к написанию самого кода. До этого проверялись лишь отдельные его небольшие кусочки. Даже не верится, что получилось "с нуля" буквально за месяц понемногу разложить всё по полочкам и получить перед собой ясную картину. До этого программа только помогала тем, что сообщала о появлении "вкусной цены". Ещё раз огромное спасибо за труд: это и другие видео! Изучив их, многое для себя прояснила. Примите мои искренние благодарности!