лайк за видос. Топчик видос. Интерес больше к фьючам
@ЗахарИгнатьев-е3э8 ай бұрын
ГОСПАДИ!!! ПКМ и "Show as json" - уже вызвало увеличение пульса на 100000% Я уже люблю тебя за такую инфу и знания! Спасибо! Как я жил до этого!?!??!!
@ЗаСправедливость-э7ъ5 ай бұрын
знаете на что надо нажать, чтобы show as json отобразилось на мак?
@mihailbirukov59248 ай бұрын
Крутой контент! Лучший по апи bybit
@АндрейКадетов-н3р9 ай бұрын
Супер, продолжай в том же духе!✊
@mihailbirukov59248 ай бұрын
Спасибо за видос!
@alexeyfominyh35989 ай бұрын
Привет, интересней простые боты
@AlexShataev9 ай бұрын
Чтобы разделить спот и не-спот можно повесить разные хэндлеры на них. Маленькие, которые будут дальше передавать доп. параметр.
@АлександрВыёбнутые8 ай бұрын
А как их разные повестить?) Там же хэндлер в вэбсокете прописан, без него не подписывается.
@alexchernyavskyy88538 ай бұрын
Здраствейте. Спасибо за уроки очень помгло понять структуру API, Есть ли шанс что вы сделаете урок о том как установить trailingStop через API. 🙏🙏🙏 В интернете очень мало информации на ету тему.😞
@AzzraelCode8 ай бұрын
В планах есть.
@alexandrm58979 ай бұрын
Добрый день. Спасибо за очередное видео. Вопрос по теме - можно ли как-то используя данные полученные по подписке событий по ордеру понять как исполнился ордер - SL или TP не сравнивая цену закрытия ордера с ценами sl и tp? В опросе в телеге я проголосовал за фьюч ордера. Насущный вопрос на будущее - как проще всего реализовать разворот позиции по трейлингу. Как я понял трейлинг SL на байбите поставить можно. А условный трейлинг ордер как-то можно?... или для этого есть другие инструменты. Классически для разворота я должен по одной цене закрыть позицию и открыть точно такую же в другую сторону. В МТ4 я в отдельной процедуре по каждому тику подтягиваю стоп открытой позиции и цену открытия другого ордера. Если я всё правильно понял, то одной из идей реализации на байбите может быть трейлинг стоп открытой позиции и подписка на события по которым будет подтягиваться цена открытия ордера в противоположную сторону... Если можно как-то еще проще, буду признателен за идею... донат гарантирую ) Признаюсь еще недавно думал, что для написания бота для криптобирж будет достаточно просто переписать своих роботов с МТ4 на питон с несущественными изменениями. Собственно, когда переписывал индикатор, так и получилось. Всё отлично работает и точки входа я уже вижу каждый день десятками. Но переписать бота... это будет еще та задача 😵💫
@AzzraelCode9 ай бұрын
Записал ваши вопросы. Дойдем до фьючей - наверное в части из них разберемся ;)
@АлексейШевелёв-г5т8 ай бұрын
Про простого бота будет полезнее.
@y_fenix8 ай бұрын
Не сталкивались ли с проблемой дублирования сообщений на вебсокете? 2 раза приходит сообщение из сокета с одним и тем же ID разница во времени 0-3 ms (ws_private.execution_stream(callback=handle_message))
@AzzraelCode8 ай бұрын
Вроде нет.
@y_fenix8 ай бұрын
Видимо это у меня из за особенностеи использования Flask, извините за беспокойство.
@emremicrosoft5321Ай бұрын
Stream verisini başka bir metod ile nasıl çağırabiliriz?
@ЮрийАлександров-г7л9 ай бұрын
Привет. А как привильно совместить вебсокет и логику бота? мы получаем несколько раз в секунду данные с бебсокета, а что если у меня блок логики(куча индикаторов расчитывается в реальном времени, несколько условий и т.д.) занимает около секунды? как это все распараллелить? раз в секунду получать данные потом секунду блок логики или как то правильнее можно сделать. Да я если чесно не понимаю как сделать раз в секунду получение, я еще новичек в питоне
@AzzraelCode9 ай бұрын
Вопрос очень правильный, но ответить него в пару предложений не получится. В первую очередь все зависит от вашей стратегии. Если у вас стратегия по индикаторам, то обычно у вас таймфрейм - минута или больше. В этом сл вы пересчитываете свою логику не каждую секунду, не каждый пуш, а, например, на закрытии свечи вашего таймфрейма. Если ваш ТФ ну скажем 1H, то вы это делаете каждый час, когда получаете пуш с закрытием свечи. Если же у вас таки оч мелкий таймфрейм, или сразу много инструментов в работе, то вероятно есть смысл смотреть в сторону Celery например. Ну а если у вас HFT, то возможно стоит сменить Python на Go ;) Все индивидуально одним словом...
@davidbibi31389 ай бұрын
Привет, а видео типа простого - парсинга с api/сокетов бинанса планируется? Например бот сигнализирующий о всплеске объема цены (как правильно спарсить, обработать словарь, логику прописать)
@AzzraelCode9 ай бұрын
По бинансу маловероятно. Если только они передумают уходить из РФ.
@davidbibi31389 ай бұрын
ааа, точно.. сейчас наверно все на кукоины/байбиты/окексы перейдут@@AzzraelCode
@davidbibi31389 ай бұрын
Ааа, точно... сейчас большинство перейдет на кукоины/байбиты/окексы..@@AzzraelCode
@АндрейС-и7ц8 ай бұрын
повторил код, но вылетает вот такая ошибка: upgrade error: websocket: the client is not using the websocket protocol: 'upgrade' token not found in 'Connection' header. Подскажите кто может в чем может быть проблема? Ключи, библиотеки, pybit... все сделано, установлено.
@ЮрийАлександров-г7л9 ай бұрын
получается если программа обрабатывала логику секунду, то там уже несколько значений веб сокета проскочило? или там очередь и мы теперь получаем данные с задержкой?
@AzzraelCode9 ай бұрын
Там асинхронная функция, на каждый пуш она вызывается, а дальше как хост вывезет ;)
@ЮрийАлександров-г7л9 ай бұрын
в бинансе можно было выбирать либо вся очередь и в случае задержки программой(блоком логики) ты получал данные со смещением(всю очередь) либо последне значение веб сокета и не важно на сколько ты завис с обработкой логики или ордеров когда ты возвращался к вебсокету ты получал текущие данные в этот момент(то есть последнее значение очереди) а как тут такое сделать не могу найти@@AzzraelCode
@AzzraelCode9 ай бұрын
ммм, это как так выбирать? киньте плз ссылкой на пример или доку.
@ЮрийАлександров-г7л9 ай бұрын
походу надо изучать асинхронность. в одном потоке слушать вебсокет, каждую секунду получать по несколько значений цены и для каждого значения цены в параллельных потоках расчитывать условия
@ЮрийАлександров-г7л9 ай бұрын
вполне возможно что мне достаточно будет раз в секунду получать данные а в этот таймаут просчитывать условия. может подскажите как это сделать?
@alexandrm58976 ай бұрын
Добрый день. Как быть, если WebStream в процессе работы присылает сообщение, что связь с сервером потеряна? Особенно актуально, если это происходит ночью и сообщение видишь только утром. Сегодня ночью такое поймал (((
@AzzraelCode6 ай бұрын
Нужно озаботиться перезапуском стрима. Ловите исключение и перезапускаете.
@alexandrm58976 ай бұрын
И еще одна проблема с WebStream. Когда пытаюсь запустить бота с webstream, иногда возникает ситуация, когда он не запускается, выдавая ошибку - слишком много подключений. Причем такое происходит, независимо от того, сколько подписок оформлено в данный момент. На некоторых серверах могу запустить 15 одновременно. На некоторых не получается запустить ни одного. Ошибка возникает в момент исполнения : ws = WebSocket( testnet=False, channel_type="linear", ) В сети пишут, что это как-то связано с версиями питона 3.11 и 3.12. Но не понимаю, почему эта ошибка возникает когда бот запускается exe файлом. На одном компьютере работает нормально, на втором нет.
@alexandrm58976 ай бұрын
@@AzzraelCode Можно немного подробнее. Исключение чего? Подключение происходит без каких-либо проблем. Очевидно надо периодически проверять есть ли связь... например вот тут... while True: sleep(1) ... и если нет, то переподключаться. Но как проверить, есть ли связь? Вторая описанная проблема оказалось намного серьезнее. Как удалось узнать питон версии 3.12 для pybit не подходит. Нужна версия не выше 3.11. Причем для домашнего компьютера это не является проблемой. Но как только делаешь exeшник и пытаешься запустить его на 2012R2 или выше, начинаются чудеса. Очевидное решение, компилировать версией 3.11. Но замена версии питона на компьютере это очень не простая задача. Простым удалением поздней версии решить проблему не получается. Как и простым переключением. Остаются какие-то хвосты, которые не дают использовать библиотеки даже после их переустановки. Весь день сегодня бьюсь над этой проблемой и пока ничего не получается. Библиотека pybit использует библиотеку crypto, но видимо после удаления версии 3.12 где-то что-то заставляет искать Crypto по пути, по которому когда-то это делал pybit из версии 3.12. И я постоянно получаю ошибку ModuleNotFoundError
@mihailbirukov59248 ай бұрын
У меня возникла следующая проблема. При подписки на websocket на изменение греков, пуши приходят только при совершении сделок, но мне нужно отслеживать дельту по общему портфель и производить на основе этих данных дельтахедж. Через rest api delta по общему портфелю не вытаскивается, только по определённому опциону. Не могу найти решение.
@AzzraelCode8 ай бұрын
Я с опционами не работаю, так что тут я пас.
@mihailbirukov59248 ай бұрын
Понял спасибо, кажется разобрался. Нашёл в Rest api
@mihailbirukov59248 ай бұрын
Спасибо за контент
@АртемКозловский-й8у6 ай бұрын
Спасибо за видео. Может кто-нибудь помочь: хочу использовать данные из словаря, который выдает json в другом файле с последующим размещением ордера в зависимости от условия. Например, я получил результат из json, что объем на покупку стал 100к, я хочу эту информацию вытянуть из вебсокета и вставить в файл с размещением ордера на окупку. Пробовал через return, через global, но не получилось.
@AzzraelCode6 ай бұрын
Это архитектурный вопрос. Проще всего в том же скрипте вызывать асинхронную функцию кот будет отправлять ордер. Функция может быть описана в другом py файле и в файле с вебсокетом вы её импортируете.
@ЮрийАлександров-г7л9 ай бұрын
ну не с задержкой а со смещением
@user-hql5qy4x697yggt4 ай бұрын
Как не крути, у меня не коннектится. Я и уже аккаунт на v5 перевёл. Я запарился уже. Хелпаните плиз кто может? {'success': False, 'ret_msg': 'Params Error', 'op': 'auth', 'conn_id': 'cmjoggpdcjmtv42uhpsg-1b89fi'}
@user-hql5qy4x697yggt4 ай бұрын
Я нашел решение своей проблем! Всего-то на всего нужно было синхронизировать время на компьютере. Оставлю комментарий здесь, вдруг кому-то будет полезным. XDDD
@andreyrezets10228 ай бұрын
Привет, все сделал как у тебя. Вот ответ кода такой: {'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 то открыть ордер на продажу. Ну что-то в этом духе.
@AzzraelCode8 ай бұрын
Ну в отлупе ругается на авторизацию. Нуждо дебажить ответ авторизации и/или права ключей.