ByBit API + Python ч.5-2 | Websocket. Приватные Данные (wallet, order, positions, executions).

  Рет қаралды 2,820

Azzrael Code

Azzrael Code

Күн бұрын

Пікірлер: 55
@AzzraelCode
@AzzraelCode 9 ай бұрын
✈ Голосование t.me/azzraelru/207 ⭐ Исходники github.com/AzzraelCode/azzyt-bybit/blob/main/videos/V5WebsocketPrivate.py 🤑 Спасибы azzrael.ru/spasibo
@АлексейДолгушин-ф1ь
@АлексейДолгушин-ф1ь 9 ай бұрын
лайк за видос. Топчик видос. Интерес больше к фьючам
@ЗахарИгнатьев-е3э
@ЗахарИгнатьев-е3э 8 ай бұрын
ГОСПАДИ!!! ПКМ и "Show as json" - уже вызвало увеличение пульса на 100000% Я уже люблю тебя за такую инфу и знания! Спасибо! Как я жил до этого!?!??!!
@ЗаСправедливость-э7ъ
@ЗаСправедливость-э7ъ 5 ай бұрын
знаете на что надо нажать, чтобы show as json отобразилось на мак?
@mihailbirukov5924
@mihailbirukov5924 8 ай бұрын
Крутой контент! Лучший по апи bybit
@АндрейКадетов-н3р
@АндрейКадетов-н3р 9 ай бұрын
Супер, продолжай в том же духе!✊
@mihailbirukov5924
@mihailbirukov5924 8 ай бұрын
Спасибо за видос!
@alexeyfominyh3598
@alexeyfominyh3598 9 ай бұрын
Привет, интересней простые боты
@AlexShataev
@AlexShataev 9 ай бұрын
Чтобы разделить спот и не-спот можно повесить разные хэндлеры на них. Маленькие, которые будут дальше передавать доп. параметр.
@АлександрВыёбнутые
@АлександрВыёбнутые 8 ай бұрын
А как их разные повестить?) Там же хэндлер в вэбсокете прописан, без него не подписывается.
@alexchernyavskyy8853
@alexchernyavskyy8853 8 ай бұрын
Здраствейте. Спасибо за уроки очень помгло понять структуру API, Есть ли шанс что вы сделаете урок о том как установить trailingStop через API. 🙏🙏🙏 В интернете очень мало информации на ету тему.😞
@AzzraelCode
@AzzraelCode 8 ай бұрын
В планах есть.
@alexandrm5897
@alexandrm5897 9 ай бұрын
Добрый день. Спасибо за очередное видео. Вопрос по теме - можно ли как-то используя данные полученные по подписке событий по ордеру понять как исполнился ордер - SL или TP не сравнивая цену закрытия ордера с ценами sl и tp? В опросе в телеге я проголосовал за фьюч ордера. Насущный вопрос на будущее - как проще всего реализовать разворот позиции по трейлингу. Как я понял трейлинг SL на байбите поставить можно. А условный трейлинг ордер как-то можно?... или для этого есть другие инструменты. Классически для разворота я должен по одной цене закрыть позицию и открыть точно такую же в другую сторону. В МТ4 я в отдельной процедуре по каждому тику подтягиваю стоп открытой позиции и цену открытия другого ордера. Если я всё правильно понял, то одной из идей реализации на байбите может быть трейлинг стоп открытой позиции и подписка на события по которым будет подтягиваться цена открытия ордера в противоположную сторону... Если можно как-то еще проще, буду признателен за идею... донат гарантирую ) Признаюсь еще недавно думал, что для написания бота для криптобирж будет достаточно просто переписать своих роботов с МТ4 на питон с несущественными изменениями. Собственно, когда переписывал индикатор, так и получилось. Всё отлично работает и точки входа я уже вижу каждый день десятками. Но переписать бота... это будет еще та задача 😵‍💫
@AzzraelCode
@AzzraelCode 9 ай бұрын
Записал ваши вопросы. Дойдем до фьючей - наверное в части из них разберемся ;)
@АлексейШевелёв-г5т
@АлексейШевелёв-г5т 8 ай бұрын
Про простого бота будет полезнее.
@y_fenix
@y_fenix 8 ай бұрын
Не сталкивались ли с проблемой дублирования сообщений на вебсокете? 2 раза приходит сообщение из сокета с одним и тем же ID разница во времени 0-3 ms (ws_private.execution_stream(callback=handle_message))
@AzzraelCode
@AzzraelCode 8 ай бұрын
Вроде нет.
@y_fenix
@y_fenix 8 ай бұрын
Видимо это у меня из за особенностеи использования Flask, извините за беспокойство.
@emremicrosoft5321
@emremicrosoft5321 Ай бұрын
Stream verisini başka bir metod ile nasıl çağırabiliriz?
@ЮрийАлександров-г7л
@ЮрийАлександров-г7л 9 ай бұрын
Привет. А как привильно совместить вебсокет и логику бота? мы получаем несколько раз в секунду данные с бебсокета, а что если у меня блок логики(куча индикаторов расчитывается в реальном времени, несколько условий и т.д.) занимает около секунды? как это все распараллелить? раз в секунду получать данные потом секунду блок логики или как то правильнее можно сделать. Да я если чесно не понимаю как сделать раз в секунду получение, я еще новичек в питоне
@AzzraelCode
@AzzraelCode 9 ай бұрын
Вопрос очень правильный, но ответить него в пару предложений не получится. В первую очередь все зависит от вашей стратегии. Если у вас стратегия по индикаторам, то обычно у вас таймфрейм - минута или больше. В этом сл вы пересчитываете свою логику не каждую секунду, не каждый пуш, а, например, на закрытии свечи вашего таймфрейма. Если ваш ТФ ну скажем 1H, то вы это делаете каждый час, когда получаете пуш с закрытием свечи. Если же у вас таки оч мелкий таймфрейм, или сразу много инструментов в работе, то вероятно есть смысл смотреть в сторону Celery например. Ну а если у вас HFT, то возможно стоит сменить Python на Go ;) Все индивидуально одним словом...
@davidbibi3138
@davidbibi3138 9 ай бұрын
Привет, а видео типа простого - парсинга с api/сокетов бинанса планируется? Например бот сигнализирующий о всплеске объема цены (как правильно спарсить, обработать словарь, логику прописать)
@AzzraelCode
@AzzraelCode 9 ай бұрын
По бинансу маловероятно. Если только они передумают уходить из РФ.
@davidbibi3138
@davidbibi3138 9 ай бұрын
ааа, точно.. сейчас наверно все на кукоины/байбиты/окексы перейдут@@AzzraelCode
@davidbibi3138
@davidbibi3138 9 ай бұрын
Ааа, точно... сейчас большинство перейдет на кукоины/байбиты/окексы..@@AzzraelCode
@АндрейС-и7ц
@АндрейС-и7ц 8 ай бұрын
повторил код, но вылетает вот такая ошибка: upgrade error: websocket: the client is not using the websocket protocol: 'upgrade' token not found in 'Connection' header. Подскажите кто может в чем может быть проблема? Ключи, библиотеки, pybit... все сделано, установлено.
@ЮрийАлександров-г7л
@ЮрийАлександров-г7л 9 ай бұрын
получается если программа обрабатывала логику секунду, то там уже несколько значений веб сокета проскочило? или там очередь и мы теперь получаем данные с задержкой?
@AzzraelCode
@AzzraelCode 9 ай бұрын
Там асинхронная функция, на каждый пуш она вызывается, а дальше как хост вывезет ;)
@ЮрийАлександров-г7л
@ЮрийАлександров-г7л 9 ай бұрын
в бинансе можно было выбирать либо вся очередь и в случае задержки программой(блоком логики) ты получал данные со смещением(всю очередь) либо последне значение веб сокета и не важно на сколько ты завис с обработкой логики или ордеров когда ты возвращался к вебсокету ты получал текущие данные в этот момент(то есть последнее значение очереди) а как тут такое сделать не могу найти@@AzzraelCode
@AzzraelCode
@AzzraelCode 9 ай бұрын
ммм, это как так выбирать? киньте плз ссылкой на пример или доку.
@ЮрийАлександров-г7л
@ЮрийАлександров-г7л 9 ай бұрын
походу надо изучать асинхронность. в одном потоке слушать вебсокет, каждую секунду получать по несколько значений цены и для каждого значения цены в параллельных потоках расчитывать условия
@ЮрийАлександров-г7л
@ЮрийАлександров-г7л 9 ай бұрын
вполне возможно что мне достаточно будет раз в секунду получать данные а в этот таймаут просчитывать условия. может подскажите как это сделать?
@alexandrm5897
@alexandrm5897 6 ай бұрын
Добрый день. Как быть, если WebStream в процессе работы присылает сообщение, что связь с сервером потеряна? Особенно актуально, если это происходит ночью и сообщение видишь только утром. Сегодня ночью такое поймал (((
@AzzraelCode
@AzzraelCode 6 ай бұрын
Нужно озаботиться перезапуском стрима. Ловите исключение и перезапускаете.
@alexandrm5897
@alexandrm5897 6 ай бұрын
И еще одна проблема с WebStream. Когда пытаюсь запустить бота с webstream, иногда возникает ситуация, когда он не запускается, выдавая ошибку - слишком много подключений. Причем такое происходит, независимо от того, сколько подписок оформлено в данный момент. На некоторых серверах могу запустить 15 одновременно. На некоторых не получается запустить ни одного. Ошибка возникает в момент исполнения : ws = WebSocket( testnet=False, channel_type="linear", ) В сети пишут, что это как-то связано с версиями питона 3.11 и 3.12. Но не понимаю, почему эта ошибка возникает когда бот запускается exe файлом. На одном компьютере работает нормально, на втором нет.
@alexandrm5897
@alexandrm5897 6 ай бұрын
@@AzzraelCode Можно немного подробнее. Исключение чего? Подключение происходит без каких-либо проблем. Очевидно надо периодически проверять есть ли связь... например вот тут... while True: sleep(1) ... и если нет, то переподключаться. Но как проверить, есть ли связь? Вторая описанная проблема оказалось намного серьезнее. Как удалось узнать питон версии 3.12 для pybit не подходит. Нужна версия не выше 3.11. Причем для домашнего компьютера это не является проблемой. Но как только делаешь exeшник и пытаешься запустить его на 2012R2 или выше, начинаются чудеса. Очевидное решение, компилировать версией 3.11. Но замена версии питона на компьютере это очень не простая задача. Простым удалением поздней версии решить проблему не получается. Как и простым переключением. Остаются какие-то хвосты, которые не дают использовать библиотеки даже после их переустановки. Весь день сегодня бьюсь над этой проблемой и пока ничего не получается. Библиотека pybit использует библиотеку crypto, но видимо после удаления версии 3.12 где-то что-то заставляет искать Crypto по пути, по которому когда-то это делал pybit из версии 3.12. И я постоянно получаю ошибку ModuleNotFoundError
@mihailbirukov5924
@mihailbirukov5924 8 ай бұрын
У меня возникла следующая проблема. При подписки на websocket на изменение греков, пуши приходят только при совершении сделок, но мне нужно отслеживать дельту по общему портфель и производить на основе этих данных дельтахедж. Через rest api delta по общему портфелю не вытаскивается, только по определённому опциону. Не могу найти решение.
@AzzraelCode
@AzzraelCode 8 ай бұрын
Я с опционами не работаю, так что тут я пас.
@mihailbirukov5924
@mihailbirukov5924 8 ай бұрын
Понял спасибо, кажется разобрался. Нашёл в Rest api
@mihailbirukov5924
@mihailbirukov5924 8 ай бұрын
Спасибо за контент
@АртемКозловский-й8у
@АртемКозловский-й8у 6 ай бұрын
Спасибо за видео. Может кто-нибудь помочь: хочу использовать данные из словаря, который выдает json в другом файле с последующим размещением ордера в зависимости от условия. Например, я получил результат из json, что объем на покупку стал 100к, я хочу эту информацию вытянуть из вебсокета и вставить в файл с размещением ордера на окупку. Пробовал через return, через global, но не получилось.
@AzzraelCode
@AzzraelCode 6 ай бұрын
Это архитектурный вопрос. Проще всего в том же скрипте вызывать асинхронную функцию кот будет отправлять ордер. Функция может быть описана в другом py файле и в файле с вебсокетом вы её импортируете.
@ЮрийАлександров-г7л
@ЮрийАлександров-г7л 9 ай бұрын
ну не с задержкой а со смещением
@user-hql5qy4x697yggt
@user-hql5qy4x697yggt 4 ай бұрын
Как не крути, у меня не коннектится. Я и уже аккаунт на v5 перевёл. Я запарился уже. Хелпаните плиз кто может? {'success': False, 'ret_msg': 'Params Error', 'op': 'auth', 'conn_id': 'cmjoggpdcjmtv42uhpsg-1b89fi'}
@user-hql5qy4x697yggt
@user-hql5qy4x697yggt 4 ай бұрын
Я нашел решение своей проблем! Всего-то на всего нужно было синхронизировать время на компьютере. Оставлю комментарий здесь, вдруг кому-то будет полезным. XDDD
@andreyrezets1022
@andreyrezets1022 8 ай бұрын
Привет, все сделал как у тебя. Вот ответ кода такой: {'success': False, 'ret_msg': 'Params Error', 'op': 'auth', 'conn_id': 'cmivn2vcgepdud235k6g-dq6s6'} {'req_id': '3bd9ccc9-249e-49ca-af31-4f308e9d1950', 'success': False, 'ret_msg': 'Request not authorized', 'op': 'subscribe', 'conn_id': 'cmivn2vcgepdud235k6g-dq6s6'} Че делать не знаю? Было бы хорошо если бы Вы записали урок по ws_private.order_stream получения статуса ордера и если ордер на покупку filled то открыть ордер на продажу. Ну что-то в этом духе.
@AzzraelCode
@AzzraelCode 8 ай бұрын
Ну в отлупе ругается на авторизацию. Нуждо дебажить ответ авторизации и/или права ключей.
Don't underestimate anyone
00:47
奇軒Tricking
Рет қаралды 27 МЛН
Don’t Choose The Wrong Box 😱
00:41
Topper Guild
Рет қаралды 25 МЛН
Бэктесты в трейдинге не работают ?!
12:55
Что такое веб-сокеты за 4 минуты
4:36
Программисты-самоучки... Слушайте внимательно.
22:45
Евгений Афанасьев
Рет қаралды 135 М.
Don't underestimate anyone
00:47
奇軒Tricking
Рет қаралды 27 МЛН