Bybit MT5 - страница 23

 
Как же подключить MT5 к bybit?
 

вижу пути 

1.Использовать Pybit. в MT5 есть встроенная поддержка piton

2. через webrequest .

3.на маркете продается коннектор к бирже Pionex . для Bybit не нашел

Подскажите как лучше сделать? 

 
# Copyright 2024, MetaQuotes Ltd.

import MetaTrader5 as mt5
from pybit import HTTP

#mt5.initialize()

# you code here





# Настройки API Bybit
api_key = "ВАШ_API_KEY"
api_secret = "ВАШ_SECRET_KEY"
endpoint = "https://api.bybit.com "  # Для основной сети Bybit

# Создание клиента
session = HTTP(endpoint=endpoint, api_key=api_key, api_secret=api_secret)

# Пример получения баланса
balance = session.get_wallet_balance(coin="USDT")
print("Баланс USDT:", balance['result']['USDT']['wallet_balance'])

mt5.shutdown()

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • 2025.05.08
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
 

сразу такая ошибка

ImportError: cannot import name 'HTTP' from 'pybit' (C:\Users\Den\AppData\Local\Programs\Python\Python313\Lib\site-packages\pybit\__init__.py) ryttytyt.py 5 1


 
Jecpot #:

вижу пути 

1.Использовать Pybit. в MT5 есть встроенная поддержка piton

2. через webrequest .

3.на маркете продается коннектор к бирже Pionex . для Bybit не нашел

Подскажите как лучше сделать? 

Я сделал себе коннектор на MT5 без всяких прокладок. Загружаю в кастомные символы. Плановые работы: добавлю тики для тестирования на них, торговую панель для ручной торговли и интерфейс для торговли из роботов, таблички с текущей торговлей и историю.
Делаю для себя, но наверное через 2-4 недель уже будет что-то готовое и могу выложить на маркет.


Чтобы разработчикам было интереснее - сделаю еще и систему передачи любых АПИ запросов, чтобы можно было любых ботов писать. А не только базовые предварительно запрограммированные.


По поводу тиков вопрос - наверное их можно сразу отфильтровать до 1 тика в секунду, т.к. по АПИ в реале чаще чем раз в секунду их все равно не получить... при этом будет выше скорость тестирования и экономия диска.
Или оставить все? Чтобы в тестере ТП/СЛ/лимитки могли срабатывать.

Или как fxsaber  фильтровать движения например до 5 пунктов. Но на крипте 5 пунктов при цене 10 000 могут быть в 10 раз существеннее, чем при цене 100 000. По процентам фильтровать что ли?

 

Не понимаю откуда взялась эта инфа про поступление данных  1 раз в секунду - уже несколько раз об этом читал. В реальности, все иначе:

- для тикера (только snapshort):

Push frequency: Derivatives & Options - 100ms, Spot - real-time

- для книги ордеров (тот же тикер, фактически) - сначала snapshort, потом delta:

Linear & inverse:
Level 1 data, push frequency: 10ms
Level 50 data, push frequency: 20ms
Level 200 data, push frequency: 100ms
Level 500 data, push frequency: 100ms

Spot:
Level 1 data, push frequency: 10ms
Level 50 data, push frequency: 20ms
Level 200 data, push frequency: 200ms

Option:
Level 25 data, push frequency: 20ms
Level 100 data, push frequency: 100ms

 
Forester #:
По поводу тиков вопрос - наверное их можно сразу отфильтровать до 1 тика в секунду, т.к. по АПИ в реале чаще чем раз в секунду их все равно не получить... при этом будет выше скорость тестирования и экономия диска.
Или оставить все? Чтобы в тестере ТП/СЛ/лимитки могли срабатывать.

Я по вебреквесту с другой биржи получаю цену одного символа от 200 мс, цены всех символов - от 650 мс. По вебсокету будет вдвое быстрее. Это время задержки от РФ до Азии. С азиатским VPS будет очень быстро.

А частота прихода тиков заранее неизвестна для каждого конкретного символа. Я работаю с каждым тиком и не стал бы создавать секундные бары.

 
Edgar Akhmadeev #:
от 200 мс, цены всех символов - от 650 мс.

с таким темпом даже в игрушки не поиграешь ;-) 40-50 мс позволяют гонять в диаблоиды, 20-30 в отстрелялки..

за 200мс могут сгенерится 2-3 новых тика, а 650 это уже почти секунда то есть данные заведомо устарели на момент приёма и обработки

 
Maxim Kuznetsov #:

с таким темпом даже в игрушки не поиграешь ;-) 40-50 мс позволяют гонять в диаблоиды, 20-30 в отстрелялки..

за 200мс могут сгенерится 2-3 новых тика, а 650 это уже почти секунда то есть данные заведомо устарели на момент приёма и обработки

Биржа вам не игрушки, тут всё серьёзно ))

Я посмотрел инструменты, с которыми я работаю, в среднем пару секунд на тик. Как бы там ни было, всё работает стабильно и прибыльно. А для высокочастотной торговли, как я говорил - VPS рядом с биржей и вебсокеты.

Вообще, грех придираться к пингу и прочим внешним факторам, если нет прибыльной и надёжной стратегии.

 
Dmitriy Skub #:

Не понимаю откуда взялась эта инфа про поступление данных  1 раз в секунду - уже несколько раз об этом читал. В реальности, все иначе:

- для тикера (только snapshort):

Push frequency: Derivatives & Options - 100ms, Spot - real-time

- для книги ордеров (тот же тикер, фактически) - сначала snapshort, потом delta:

Linear & inverse:
Level 1 data, push frequency: 10ms
Level 50 data, push frequency: 20ms
Level 200 data, push frequency: 100ms
Level 500 data, push frequency: 100ms

Spot:
Level 1 data, push frequency: 10ms
Level 50 data, push frequency: 20ms
Level 200 data, push frequency: 200ms

Option:
Level 25 data, push frequency: 20ms
Level 100 data, push frequency: 100ms

Еще не занимался этим подробно. Нашел лимиты https://bybit-exchange.github.io/docs/v5/rate-limit - работать можно чаще.
Но как минимум ограничение будет по скорости передачи по сети, парсинга тестовых строк и обработки кода. У меня так:
2025.05.09 16:07:46.535    ByBitAPIConnector    ByBitAPIConnector started
2025.05.09 16:07:46.535    ByBitAPIConnector    load all Instruments
2025.05.09 16:07:46.948    ByBitAPIConnector    WebRequest time: 413 ms
2025.05.09 16:07:46.949    ByBitAPIConnector    API server time: 1746796069. Time shift: 10797 sec
2025.05.09 16:07:47.617    ByBitAPIConnector    WebRequest time: 668 ms
2025.05.09 16:07:47.647    ByBitAPIConnector    Deserialize time: 30 ms
2025.05.09 16:07:47.649    ByBitAPIConnector    578 symbols added with suffix .bbt.linear
2025.05.09 16:07:47.653    ByBitAPIConnector    Load instruments full time: 1118 ms
2025.05.09 16:07:47.653    ByBitAPIConnector    load all tickers
2025.05.09 16:07:48.253    ByBitAPIConnector    WebRequest time: 599 ms
2025.05.09 16:07:48.276    ByBitAPIConnector    Deserialize time: 23 ms
2025.05.09 16:07:48.292    ByBitAPIConnector    Load instruments settingsd full time: 638 ms

Самый первый запрос примитив возвращающий время сервера, для определения смещения времени с локальным компом. И он занимает 413 мс. Т.е. примерно 200 мс в одну сторону.
Еще 2 запроса - тяжелые, возвращают по 578 инструментов.
Так что запроса 2 в секунду можно делать. Либо брать ВПС рядом с байбитом.
И видимо асинхронное что-то надо придумать, а не по очереди.

А по поводу котировок - быстрее брать со стрима, но я пока не знаю, как это из МТ5 делать, кто-то про сокеты писал. Буду разбираться...

Тут еще и десериализация JSONа по 20-30 мс длится для 400кб ответа ((

Rate Limit | Bybit API Documentation
  • bybit-exchange.github.io
You are allowed to send 600 requests within a 5-second window per IP by default. This limit applies to all traffic directed to , , and local site hostnames such as . If you encounter the error "403, access too frequent" , it indicates that your IP has exceeded the allowed request frequency. In this case, you should terminate all HTTP sessions...