unicex 0.13.17__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- unicex/__init__.py +200 -0
- unicex/_abc/__init__.py +11 -0
- unicex/_abc/exchange_info.py +216 -0
- unicex/_abc/uni_client.py +329 -0
- unicex/_abc/uni_websocket_manager.py +294 -0
- unicex/_base/__init__.py +9 -0
- unicex/_base/client.py +214 -0
- unicex/_base/websocket.py +261 -0
- unicex/binance/__init__.py +27 -0
- unicex/binance/adapter.py +202 -0
- unicex/binance/client.py +1577 -0
- unicex/binance/exchange_info.py +62 -0
- unicex/binance/uni_client.py +188 -0
- unicex/binance/uni_websocket_manager.py +166 -0
- unicex/binance/user_websocket.py +186 -0
- unicex/binance/websocket_manager.py +912 -0
- unicex/bitget/__init__.py +27 -0
- unicex/bitget/adapter.py +188 -0
- unicex/bitget/client.py +2514 -0
- unicex/bitget/exchange_info.py +48 -0
- unicex/bitget/uni_client.py +198 -0
- unicex/bitget/uni_websocket_manager.py +275 -0
- unicex/bitget/user_websocket.py +7 -0
- unicex/bitget/websocket_manager.py +232 -0
- unicex/bybit/__init__.py +27 -0
- unicex/bybit/adapter.py +208 -0
- unicex/bybit/client.py +1876 -0
- unicex/bybit/exchange_info.py +53 -0
- unicex/bybit/uni_client.py +200 -0
- unicex/bybit/uni_websocket_manager.py +291 -0
- unicex/bybit/user_websocket.py +7 -0
- unicex/bybit/websocket_manager.py +339 -0
- unicex/enums.py +273 -0
- unicex/exceptions.py +64 -0
- unicex/extra.py +335 -0
- unicex/gate/__init__.py +27 -0
- unicex/gate/adapter.py +178 -0
- unicex/gate/client.py +1667 -0
- unicex/gate/exchange_info.py +55 -0
- unicex/gate/uni_client.py +214 -0
- unicex/gate/uni_websocket_manager.py +269 -0
- unicex/gate/user_websocket.py +7 -0
- unicex/gate/websocket_manager.py +513 -0
- unicex/hyperliquid/__init__.py +27 -0
- unicex/hyperliquid/adapter.py +261 -0
- unicex/hyperliquid/client.py +2315 -0
- unicex/hyperliquid/exchange_info.py +119 -0
- unicex/hyperliquid/uni_client.py +325 -0
- unicex/hyperliquid/uni_websocket_manager.py +269 -0
- unicex/hyperliquid/user_websocket.py +7 -0
- unicex/hyperliquid/websocket_manager.py +393 -0
- unicex/mapper.py +111 -0
- unicex/mexc/__init__.py +27 -0
- unicex/mexc/_spot_ws_proto/PrivateAccountV3Api_pb2.py +38 -0
- unicex/mexc/_spot_ws_proto/PrivateDealsV3Api_pb2.py +38 -0
- unicex/mexc/_spot_ws_proto/PrivateOrdersV3Api_pb2.py +38 -0
- unicex/mexc/_spot_ws_proto/PublicAggreBookTickerV3Api_pb2.py +38 -0
- unicex/mexc/_spot_ws_proto/PublicAggreDealsV3Api_pb2.py +40 -0
- unicex/mexc/_spot_ws_proto/PublicAggreDepthsV3Api_pb2.py +40 -0
- unicex/mexc/_spot_ws_proto/PublicBookTickerBatchV3Api_pb2.py +38 -0
- unicex/mexc/_spot_ws_proto/PublicBookTickerV3Api_pb2.py +38 -0
- unicex/mexc/_spot_ws_proto/PublicDealsV3Api_pb2.py +40 -0
- unicex/mexc/_spot_ws_proto/PublicFuture_pb2.py +103 -0
- unicex/mexc/_spot_ws_proto/PublicIncreaseDepthsBatchV3Api_pb2.py +38 -0
- unicex/mexc/_spot_ws_proto/PublicIncreaseDepthsV3Api_pb2.py +40 -0
- unicex/mexc/_spot_ws_proto/PublicLimitDepthsV3Api_pb2.py +40 -0
- unicex/mexc/_spot_ws_proto/PublicMiniTickerV3Api_pb2.py +38 -0
- unicex/mexc/_spot_ws_proto/PublicMiniTickersV3Api_pb2.py +38 -0
- unicex/mexc/_spot_ws_proto/PublicSpotKlineV3Api_pb2.py +38 -0
- unicex/mexc/_spot_ws_proto/PushDataV3ApiWrapper_pb2.py +38 -0
- unicex/mexc/_spot_ws_proto/__init__.py +335 -0
- unicex/mexc/adapter.py +239 -0
- unicex/mexc/client.py +846 -0
- unicex/mexc/exchange_info.py +47 -0
- unicex/mexc/uni_client.py +211 -0
- unicex/mexc/uni_websocket_manager.py +269 -0
- unicex/mexc/user_websocket.py +7 -0
- unicex/mexc/websocket_manager.py +456 -0
- unicex/okx/__init__.py +27 -0
- unicex/okx/adapter.py +150 -0
- unicex/okx/client.py +2864 -0
- unicex/okx/exchange_info.py +47 -0
- unicex/okx/uni_client.py +202 -0
- unicex/okx/uni_websocket_manager.py +269 -0
- unicex/okx/user_websocket.py +7 -0
- unicex/okx/websocket_manager.py +743 -0
- unicex/types.py +164 -0
- unicex/utils.py +218 -0
- unicex-0.13.17.dist-info/METADATA +243 -0
- unicex-0.13.17.dist-info/RECORD +93 -0
- unicex-0.13.17.dist-info/WHEEL +5 -0
- unicex-0.13.17.dist-info/licenses/LICENSE +28 -0
- unicex-0.13.17.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,912 @@
|
|
|
1
|
+
__all__ = ["WebsocketManager"]
|
|
2
|
+
|
|
3
|
+
from collections.abc import Awaitable, Callable, Sequence
|
|
4
|
+
from typing import Any
|
|
5
|
+
|
|
6
|
+
from unicex._base import Websocket
|
|
7
|
+
from unicex.exceptions import NotAuthorized
|
|
8
|
+
|
|
9
|
+
from .client import Client
|
|
10
|
+
from .user_websocket import UserWebsocket
|
|
11
|
+
|
|
12
|
+
type CallbackType = Callable[[Any], Awaitable[None]]
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class WebsocketManager:
|
|
16
|
+
"""Менеджер асинхронных вебсокетов для Binance."""
|
|
17
|
+
|
|
18
|
+
_BASE_SPOT_URL: str = "wss://stream.binance.com:9443"
|
|
19
|
+
"""Базовый URL для вебсокета на спот."""
|
|
20
|
+
|
|
21
|
+
_BASE_FUTURES_URL: str = "wss://fstream.binance.com"
|
|
22
|
+
"""Базовый URL для вебсокета на фьючерсы."""
|
|
23
|
+
|
|
24
|
+
def __init__(self, client: Client | None = None, **ws_kwargs: Any) -> None:
|
|
25
|
+
"""Инициализирует менеджер вебсокетов для Binance.
|
|
26
|
+
|
|
27
|
+
Параметры:
|
|
28
|
+
client (`Client | None`): Клиент для выполнения запросов. Нужен, чтобы открыть приватные вебсокеты.
|
|
29
|
+
ws_kwargs (`dict[str, Any]`): Дополнительные аргументы, котоыре прокидываются в `Websocket`.
|
|
30
|
+
"""
|
|
31
|
+
self.client = client
|
|
32
|
+
self._ws_kwargs = ws_kwargs
|
|
33
|
+
|
|
34
|
+
def _generate_stream_url(
|
|
35
|
+
self,
|
|
36
|
+
type: str,
|
|
37
|
+
url: str,
|
|
38
|
+
symbol: str | None = None,
|
|
39
|
+
symbols: Sequence[str] | None = None,
|
|
40
|
+
require_symbol: bool = False,
|
|
41
|
+
) -> str:
|
|
42
|
+
"""Генерирует URL для вебсокета Binance. Параметры symbol и symbols не могут быть использованы вместе.
|
|
43
|
+
|
|
44
|
+
Параметры:
|
|
45
|
+
type (`str`): Тип вебсокета.
|
|
46
|
+
url (`str`): Базовый URL для вебсокета.
|
|
47
|
+
symbol (`str | None`): Символ для подписки.
|
|
48
|
+
symbols (`Sequence[str] | None`): Список символов для подписки.
|
|
49
|
+
require_symbol (`bool`): Требуется ли символ для подписки.
|
|
50
|
+
|
|
51
|
+
Возвращает:
|
|
52
|
+
str: URL для вебсокета.
|
|
53
|
+
"""
|
|
54
|
+
if symbol and symbols:
|
|
55
|
+
raise ValueError("Parameters symbol and symbols cannot be used together")
|
|
56
|
+
if require_symbol and not (symbol or symbols):
|
|
57
|
+
raise ValueError("Either symbol or symbols must be provided")
|
|
58
|
+
if symbol:
|
|
59
|
+
return f"{url}/ws/{symbol.lower()}@{type}"
|
|
60
|
+
if symbols:
|
|
61
|
+
streams = "/".join(f"{s.lower()}@{type}" for s in symbols)
|
|
62
|
+
return f"{url}/stream?streams={streams}"
|
|
63
|
+
return f"{url}/ws/{type}"
|
|
64
|
+
|
|
65
|
+
def trade(
|
|
66
|
+
self,
|
|
67
|
+
callback: CallbackType,
|
|
68
|
+
symbol: str | None = None,
|
|
69
|
+
symbols: Sequence[str] | None = None,
|
|
70
|
+
) -> Websocket:
|
|
71
|
+
"""Создает вебсокет для получения сделок.
|
|
72
|
+
|
|
73
|
+
https://developers.binance.com/docs/binance-spot-api-docs/web-socket-streams#trade-streams
|
|
74
|
+
|
|
75
|
+
Параметры:
|
|
76
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
77
|
+
symbol (`str | None`): Один символ для подписки.
|
|
78
|
+
symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
|
|
79
|
+
|
|
80
|
+
Возвращает:
|
|
81
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
82
|
+
"""
|
|
83
|
+
url = self._generate_stream_url(
|
|
84
|
+
type="trade",
|
|
85
|
+
url=self._BASE_SPOT_URL,
|
|
86
|
+
symbol=symbol,
|
|
87
|
+
symbols=symbols,
|
|
88
|
+
require_symbol=True,
|
|
89
|
+
)
|
|
90
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
91
|
+
|
|
92
|
+
def agg_trade(
|
|
93
|
+
self,
|
|
94
|
+
callback: CallbackType,
|
|
95
|
+
symbol: str | None = None,
|
|
96
|
+
symbols: Sequence[str] | None = None,
|
|
97
|
+
) -> Websocket:
|
|
98
|
+
"""Создает вебсокет для получения агрегированных сделок.
|
|
99
|
+
|
|
100
|
+
https://developers.binance.com/docs/binance-spot-api-docs/web-socket-streams#aggregate-trade-streams
|
|
101
|
+
|
|
102
|
+
Параметры:
|
|
103
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
104
|
+
symbol (`str | None`): Один символ для подписки.
|
|
105
|
+
symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
|
|
106
|
+
|
|
107
|
+
Возвращает:
|
|
108
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
109
|
+
"""
|
|
110
|
+
url = self._generate_stream_url(
|
|
111
|
+
type="aggTrade",
|
|
112
|
+
url=self._BASE_SPOT_URL,
|
|
113
|
+
symbol=symbol,
|
|
114
|
+
symbols=symbols,
|
|
115
|
+
require_symbol=True,
|
|
116
|
+
)
|
|
117
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
118
|
+
|
|
119
|
+
def klines(
|
|
120
|
+
self,
|
|
121
|
+
callback: CallbackType,
|
|
122
|
+
interval: str,
|
|
123
|
+
symbol: str | None = None,
|
|
124
|
+
symbols: Sequence[str] | None = None,
|
|
125
|
+
) -> Websocket:
|
|
126
|
+
"""Создает вебсокет для получения свечей.
|
|
127
|
+
|
|
128
|
+
https://developers.binance.com/docs/binance-spot-api-docs/web-socket-streams#klinecandlestick-streams-for-utc
|
|
129
|
+
|
|
130
|
+
Параметры:
|
|
131
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
132
|
+
symbol (`str | None`): Один символ для подписки.
|
|
133
|
+
interval (`str`): Временной интервал свечей.
|
|
134
|
+
symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
|
|
135
|
+
|
|
136
|
+
Возвращает:
|
|
137
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
138
|
+
"""
|
|
139
|
+
url = self._generate_stream_url(
|
|
140
|
+
type=f"kline_{interval}",
|
|
141
|
+
url=self._BASE_SPOT_URL,
|
|
142
|
+
symbol=symbol,
|
|
143
|
+
symbols=symbols,
|
|
144
|
+
require_symbol=True,
|
|
145
|
+
)
|
|
146
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
147
|
+
|
|
148
|
+
def depth_stream(
|
|
149
|
+
self,
|
|
150
|
+
callback: CallbackType,
|
|
151
|
+
update_speed: str | None = None,
|
|
152
|
+
symbol: str | None = None,
|
|
153
|
+
symbols: Sequence[str] | None = None,
|
|
154
|
+
) -> Websocket:
|
|
155
|
+
"""Создает вебсокет для получения событий изменения стакана (без лимита глубины).
|
|
156
|
+
|
|
157
|
+
https://developers.binance.com/docs/binance-spot-api-docs/web-socket-streams#diff-depth-stream
|
|
158
|
+
|
|
159
|
+
Параметры:
|
|
160
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
161
|
+
update_speed (`str | None`): Скорость обновления стакана ("1000ms" | "100ms"). По умолчанию "1000ms".
|
|
162
|
+
symbol (`str | None`): Один символ для подписки.
|
|
163
|
+
symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
|
|
164
|
+
|
|
165
|
+
Возвращает:
|
|
166
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
167
|
+
"""
|
|
168
|
+
url = self._generate_stream_url(
|
|
169
|
+
type="depth" + f"@{update_speed}" if update_speed == "100ms" else "",
|
|
170
|
+
url=self._BASE_SPOT_URL,
|
|
171
|
+
symbol=symbol,
|
|
172
|
+
symbols=symbols,
|
|
173
|
+
require_symbol=True,
|
|
174
|
+
)
|
|
175
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
176
|
+
|
|
177
|
+
def symbol_mini_ticker(
|
|
178
|
+
self,
|
|
179
|
+
callback: CallbackType,
|
|
180
|
+
symbol: str | None = None,
|
|
181
|
+
symbols: Sequence[str] | None = None,
|
|
182
|
+
) -> Websocket:
|
|
183
|
+
"""Создает вебсокет для мини‑статистики тикера за последние 24 часа.
|
|
184
|
+
|
|
185
|
+
https://developers.binance.com/docs/binance-spot-api-docs/web-socket-streams#individual-symbol-mini-ticker-stream
|
|
186
|
+
|
|
187
|
+
Параметры:
|
|
188
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
189
|
+
symbol (`str | None`): Один символ для подписки.
|
|
190
|
+
symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
|
|
191
|
+
|
|
192
|
+
Возвращает:
|
|
193
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
194
|
+
"""
|
|
195
|
+
url = self._generate_stream_url(
|
|
196
|
+
type="miniTicker",
|
|
197
|
+
url=self._BASE_SPOT_URL,
|
|
198
|
+
symbol=symbol,
|
|
199
|
+
symbols=symbols,
|
|
200
|
+
require_symbol=True,
|
|
201
|
+
)
|
|
202
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
203
|
+
|
|
204
|
+
def mini_ticker(self, callback: CallbackType) -> Websocket:
|
|
205
|
+
"""Создает вебсокет для получения мини-статистики всех тикеров за последние 24 ч.
|
|
206
|
+
|
|
207
|
+
https://developers.binance.com/docs/binance-spot-api-docs/web-socket-streams#individual-symbol-mini-ticker-stream
|
|
208
|
+
|
|
209
|
+
Параметры:
|
|
210
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
211
|
+
|
|
212
|
+
Возвращает:
|
|
213
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
214
|
+
"""
|
|
215
|
+
url = self._generate_stream_url(type="!miniTicker@arr", url=self._BASE_SPOT_URL)
|
|
216
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
217
|
+
|
|
218
|
+
def symbol_ticker(
|
|
219
|
+
self,
|
|
220
|
+
callback: CallbackType,
|
|
221
|
+
symbol: str | None = None,
|
|
222
|
+
symbols: Sequence[str] | None = None,
|
|
223
|
+
) -> Websocket:
|
|
224
|
+
"""Создает вебсокет для расширенной статистики тикера за последние 24 часа.
|
|
225
|
+
|
|
226
|
+
https://developers.binance.com/docs/binance-spot-api-docs/web-socket-streams#individual-symbol-ticker-streams
|
|
227
|
+
|
|
228
|
+
Параметры:
|
|
229
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
230
|
+
symbol (`str | None`): Один символ для подписки.
|
|
231
|
+
symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
|
|
232
|
+
|
|
233
|
+
Возвращает:
|
|
234
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
235
|
+
"""
|
|
236
|
+
url = self._generate_stream_url(
|
|
237
|
+
type="ticker",
|
|
238
|
+
url=self._BASE_SPOT_URL,
|
|
239
|
+
symbol=symbol,
|
|
240
|
+
symbols=symbols,
|
|
241
|
+
require_symbol=True,
|
|
242
|
+
)
|
|
243
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
244
|
+
|
|
245
|
+
def ticker(self, callback: CallbackType) -> Websocket:
|
|
246
|
+
"""Создает вебсокет для получения расширенной статистики всех тикеров за последние 24 ч.
|
|
247
|
+
|
|
248
|
+
https://developers.binance.com/docs/binance-spot-api-docs/web-socket-streams#all-market-tickers-stream
|
|
249
|
+
|
|
250
|
+
Параметры:
|
|
251
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
252
|
+
|
|
253
|
+
Возвращает:
|
|
254
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
255
|
+
"""
|
|
256
|
+
url = self._generate_stream_url(type="!ticker@arr", url=self._BASE_SPOT_URL)
|
|
257
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
258
|
+
|
|
259
|
+
def symbol_rolling_window_ticker(
|
|
260
|
+
self,
|
|
261
|
+
callback: CallbackType,
|
|
262
|
+
window: str,
|
|
263
|
+
symbol: str | None = None,
|
|
264
|
+
symbols: Sequence[str] | None = None,
|
|
265
|
+
) -> Websocket:
|
|
266
|
+
"""Создает вебсокет для получения статистики тикера за указанное окно времени.
|
|
267
|
+
|
|
268
|
+
https://developers.binance.com/docs/binance-spot-api-docs/web-socket-streams#individual-symbol-rolling-window-statistics-streams
|
|
269
|
+
|
|
270
|
+
Параметры:
|
|
271
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
272
|
+
window (`str`): Размер окна статистики.
|
|
273
|
+
symbol (`str | None`): Один символ для подписки.
|
|
274
|
+
symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
|
|
275
|
+
|
|
276
|
+
Возвращает:
|
|
277
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
278
|
+
"""
|
|
279
|
+
url = self._generate_stream_url(
|
|
280
|
+
type=f"ticker_{window}",
|
|
281
|
+
url=self._BASE_SPOT_URL,
|
|
282
|
+
symbol=symbol,
|
|
283
|
+
symbols=symbols,
|
|
284
|
+
require_symbol=True,
|
|
285
|
+
)
|
|
286
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
287
|
+
|
|
288
|
+
def rolling_window_ticker(self, callback: CallbackType, window: str) -> Websocket:
|
|
289
|
+
"""Создает вебсокет для получения статистики всех тикеров за указанное окно времени.
|
|
290
|
+
|
|
291
|
+
https://developers.binance.com/docs/binance-spot-api-docs/web-socket-streams#all-market-rolling-window-statistics-streams
|
|
292
|
+
|
|
293
|
+
Параметры:
|
|
294
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
295
|
+
window (`str`): Размер окна статистики.
|
|
296
|
+
|
|
297
|
+
Возвращает:
|
|
298
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
299
|
+
"""
|
|
300
|
+
url = self._generate_stream_url(type=f"!ticker_{window}@arr", url=self._BASE_SPOT_URL)
|
|
301
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
302
|
+
|
|
303
|
+
def avg_price(
|
|
304
|
+
self,
|
|
305
|
+
callback: CallbackType,
|
|
306
|
+
symbol: str | None = None,
|
|
307
|
+
symbols: Sequence[str] | None = None,
|
|
308
|
+
) -> Websocket:
|
|
309
|
+
"""Создает вебсокет для получения среднего прайса (Average Price).
|
|
310
|
+
|
|
311
|
+
https://developers.binance.com/docs/binance-spot-api-docs/web-socket-streams#average-price
|
|
312
|
+
|
|
313
|
+
Параметры:
|
|
314
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
315
|
+
symbol (`str | None`): Один символ для подписки.
|
|
316
|
+
symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
|
|
317
|
+
|
|
318
|
+
Возвращает:
|
|
319
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
320
|
+
"""
|
|
321
|
+
url = self._generate_stream_url(
|
|
322
|
+
type="avgPrice",
|
|
323
|
+
url=self._BASE_SPOT_URL,
|
|
324
|
+
symbol=symbol,
|
|
325
|
+
symbols=symbols,
|
|
326
|
+
require_symbol=True,
|
|
327
|
+
)
|
|
328
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
329
|
+
|
|
330
|
+
def book_ticker(
|
|
331
|
+
self,
|
|
332
|
+
callback: CallbackType,
|
|
333
|
+
symbol: str | None = None,
|
|
334
|
+
symbols: Sequence[str] | None = None,
|
|
335
|
+
) -> Websocket:
|
|
336
|
+
"""Создает вебсокет для получения лучших бид/аск по символам.
|
|
337
|
+
|
|
338
|
+
https://developers.binance.com/docs/binance-spot-api-docs/web-socket-streams#individual-symbol-book-ticker-streams
|
|
339
|
+
|
|
340
|
+
Параметры:
|
|
341
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
342
|
+
symbol (`str | None`): Один символ для подписки.
|
|
343
|
+
symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
|
|
344
|
+
|
|
345
|
+
Возвращает:
|
|
346
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
347
|
+
"""
|
|
348
|
+
url = self._generate_stream_url(
|
|
349
|
+
type="bookTicker",
|
|
350
|
+
url=self._BASE_SPOT_URL,
|
|
351
|
+
symbol=symbol,
|
|
352
|
+
symbols=symbols,
|
|
353
|
+
require_symbol=True,
|
|
354
|
+
)
|
|
355
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
356
|
+
|
|
357
|
+
def partial_book_depth(
|
|
358
|
+
self,
|
|
359
|
+
callback: CallbackType,
|
|
360
|
+
levels: str,
|
|
361
|
+
update_speed: str | None = None,
|
|
362
|
+
symbol: str | None = None,
|
|
363
|
+
symbols: Sequence[str] | None = None,
|
|
364
|
+
) -> Websocket:
|
|
365
|
+
"""Создает вебсокет для получения стакана глубиной N уровней.
|
|
366
|
+
|
|
367
|
+
https://developers.binance.com/docs/binance-spot-api-docs/web-socket-streams#partial-book-depth-streams
|
|
368
|
+
|
|
369
|
+
Параметры:
|
|
370
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
371
|
+
levels (`str`): Глубина стакана (уровни).
|
|
372
|
+
update_speed (`str | None`): Скорость обновления стакана ("100ms" | "1000ms"). По умолчанию: "1000ms".
|
|
373
|
+
symbol (`str | None`): Один символ для подписки.
|
|
374
|
+
symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
|
|
375
|
+
|
|
376
|
+
Возвращает:
|
|
377
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
378
|
+
"""
|
|
379
|
+
url = self._generate_stream_url(
|
|
380
|
+
type=f"depth{levels}" + f"@{update_speed}" if update_speed else "",
|
|
381
|
+
url=self._BASE_SPOT_URL,
|
|
382
|
+
symbol=symbol,
|
|
383
|
+
symbols=symbols,
|
|
384
|
+
require_symbol=True,
|
|
385
|
+
)
|
|
386
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
387
|
+
|
|
388
|
+
def diff_depth(
|
|
389
|
+
self,
|
|
390
|
+
callback: CallbackType,
|
|
391
|
+
update_speed: str | None = None,
|
|
392
|
+
symbol: str | None = None,
|
|
393
|
+
symbols: Sequence[str] | None = None,
|
|
394
|
+
) -> Websocket:
|
|
395
|
+
"""Создает вебсокет для получения событий изменения стакана (без лимита глубины).
|
|
396
|
+
|
|
397
|
+
https://developers.binance.com/docs/binance-spot-api-docs/web-socket-streams#diff-depth-stream
|
|
398
|
+
|
|
399
|
+
Параметры:
|
|
400
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
401
|
+
update_speed (`str | None`): Скорость обновления стакана ("100ms" | "1000ms"). По умолчанию: "1000ms".
|
|
402
|
+
symbol (`str | None`): Один символ для подписки.
|
|
403
|
+
symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
|
|
404
|
+
|
|
405
|
+
Возвращает:
|
|
406
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
407
|
+
"""
|
|
408
|
+
url = self._generate_stream_url(
|
|
409
|
+
type="depth" + f"@{update_speed}" if update_speed else "",
|
|
410
|
+
url=self._BASE_SPOT_URL,
|
|
411
|
+
symbol=symbol,
|
|
412
|
+
symbols=symbols,
|
|
413
|
+
require_symbol=True,
|
|
414
|
+
)
|
|
415
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
416
|
+
|
|
417
|
+
def user_data_stream(self, callback: CallbackType) -> UserWebsocket:
|
|
418
|
+
"""Создает вебсокет для получения информации о пользовательских данных.
|
|
419
|
+
|
|
420
|
+
https://developers.binance.com/docs/binance-spot-api-docs/user-data-stream
|
|
421
|
+
|
|
422
|
+
Параметры:
|
|
423
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
424
|
+
|
|
425
|
+
Возвращает:
|
|
426
|
+
`UserWebsocket`: Объект для управления вебсокет соединением.
|
|
427
|
+
"""
|
|
428
|
+
if not self.client or not self.client.is_authorized():
|
|
429
|
+
raise NotAuthorized("You must provide authorized client.")
|
|
430
|
+
return UserWebsocket(callback=callback, client=self.client, type="SPOT", **self._ws_kwargs)
|
|
431
|
+
|
|
432
|
+
def multiplex_socket(self, callback: CallbackType, streams: str) -> Websocket:
|
|
433
|
+
"""Создает вебсокет для мультиплексирования нескольких стримов в один.
|
|
434
|
+
|
|
435
|
+
Параметры:
|
|
436
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
437
|
+
streams (`str`): Строка с перечислением стримов.
|
|
438
|
+
|
|
439
|
+
Возвращает:
|
|
440
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
441
|
+
"""
|
|
442
|
+
return Websocket(
|
|
443
|
+
callback=callback, url=self._BASE_SPOT_URL + "?" + streams, **self._ws_kwargs
|
|
444
|
+
)
|
|
445
|
+
|
|
446
|
+
def futures_trade(
|
|
447
|
+
self,
|
|
448
|
+
callback: CallbackType,
|
|
449
|
+
symbol: str | None = None,
|
|
450
|
+
symbols: Sequence[str] | None = None,
|
|
451
|
+
) -> Websocket:
|
|
452
|
+
"""Создает вебсокет для получения сделок.
|
|
453
|
+
|
|
454
|
+
https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Aggregate-Trade-Streams
|
|
455
|
+
|
|
456
|
+
Параметры:
|
|
457
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
458
|
+
symbol (`str | None`): Один символ для подписки.
|
|
459
|
+
symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
|
|
460
|
+
|
|
461
|
+
Возвращает:
|
|
462
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
463
|
+
"""
|
|
464
|
+
url = self._generate_stream_url(
|
|
465
|
+
type="trade",
|
|
466
|
+
url=self._BASE_FUTURES_URL,
|
|
467
|
+
symbol=symbol,
|
|
468
|
+
symbols=symbols,
|
|
469
|
+
require_symbol=True,
|
|
470
|
+
)
|
|
471
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
472
|
+
|
|
473
|
+
def futures_agg_trade(
|
|
474
|
+
self,
|
|
475
|
+
callback: CallbackType,
|
|
476
|
+
symbol: str | None = None,
|
|
477
|
+
symbols: Sequence[str] | None = None,
|
|
478
|
+
) -> Websocket:
|
|
479
|
+
"""Создает вебсокет для получения агрегированных сделок.
|
|
480
|
+
|
|
481
|
+
https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Aggregate-Trade-Streams
|
|
482
|
+
|
|
483
|
+
Параметры:
|
|
484
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
485
|
+
symbol (`str | None`): Один символ для подписки.
|
|
486
|
+
symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
|
|
487
|
+
|
|
488
|
+
Возвращает:
|
|
489
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
490
|
+
"""
|
|
491
|
+
url = self._generate_stream_url(
|
|
492
|
+
type="aggTrade",
|
|
493
|
+
url=self._BASE_FUTURES_URL,
|
|
494
|
+
symbol=symbol,
|
|
495
|
+
symbols=symbols,
|
|
496
|
+
require_symbol=True,
|
|
497
|
+
)
|
|
498
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
499
|
+
|
|
500
|
+
def futures_klines(
|
|
501
|
+
self,
|
|
502
|
+
callback: CallbackType,
|
|
503
|
+
interval: str,
|
|
504
|
+
symbol: str | None = None,
|
|
505
|
+
symbols: Sequence[str] | None = None,
|
|
506
|
+
) -> Websocket:
|
|
507
|
+
"""Создает вебсокет для получения свечей.
|
|
508
|
+
|
|
509
|
+
https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Kline-Candlestick-Streams
|
|
510
|
+
|
|
511
|
+
Параметры:
|
|
512
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
513
|
+
interval (`str`): Временной интервал свечей.
|
|
514
|
+
symbol (`str | None`): Один символ для подписки.
|
|
515
|
+
symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
|
|
516
|
+
|
|
517
|
+
Возвращает:
|
|
518
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
519
|
+
"""
|
|
520
|
+
url = self._generate_stream_url(
|
|
521
|
+
type=f"kline_{interval}",
|
|
522
|
+
url=self._BASE_FUTURES_URL,
|
|
523
|
+
symbol=symbol,
|
|
524
|
+
symbols=symbols,
|
|
525
|
+
require_symbol=True,
|
|
526
|
+
)
|
|
527
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
528
|
+
|
|
529
|
+
def futures_symbol_mini_ticker(
|
|
530
|
+
self,
|
|
531
|
+
callback: CallbackType,
|
|
532
|
+
symbol: str | None = None,
|
|
533
|
+
symbols: Sequence[str] | None = None,
|
|
534
|
+
) -> Websocket:
|
|
535
|
+
"""Создает вебсокет для мини‑статистики тикера за последние 24 часа.
|
|
536
|
+
|
|
537
|
+
https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Individual-Symbol-Mini-Ticker-Stream
|
|
538
|
+
|
|
539
|
+
Параметры:
|
|
540
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
541
|
+
symbol (`str | None`): Один символ для подписки.
|
|
542
|
+
symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
|
|
543
|
+
|
|
544
|
+
Возвращает:
|
|
545
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
546
|
+
"""
|
|
547
|
+
url = self._generate_stream_url(
|
|
548
|
+
type="miniTicker",
|
|
549
|
+
url=self._BASE_FUTURES_URL,
|
|
550
|
+
symbol=symbol,
|
|
551
|
+
symbols=symbols,
|
|
552
|
+
require_symbol=True,
|
|
553
|
+
)
|
|
554
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
555
|
+
|
|
556
|
+
def futures_mini_ticker(self, callback: CallbackType) -> Websocket:
|
|
557
|
+
"""Создает вебсокет для получения мини-статистики всех тикеров за последние 24 ч.
|
|
558
|
+
|
|
559
|
+
https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/All-Market-Mini-Tickers-Stream
|
|
560
|
+
|
|
561
|
+
Параметры:
|
|
562
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
563
|
+
|
|
564
|
+
Возвращает:
|
|
565
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
566
|
+
"""
|
|
567
|
+
url = self._generate_stream_url(type="!miniTicker@arr", url=self._BASE_FUTURES_URL)
|
|
568
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
569
|
+
|
|
570
|
+
def futures_symbol_ticker(
|
|
571
|
+
self,
|
|
572
|
+
callback: CallbackType,
|
|
573
|
+
symbol: str | None = None,
|
|
574
|
+
symbols: Sequence[str] | None = None,
|
|
575
|
+
) -> Websocket:
|
|
576
|
+
"""Создает вебсокет для расширенной статистики тикера за последние 24 часа.
|
|
577
|
+
|
|
578
|
+
https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Individual-Symbol-Ticker-Streams
|
|
579
|
+
|
|
580
|
+
Параметры:
|
|
581
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
582
|
+
symbol (`str | None`): Один символ для подписки.
|
|
583
|
+
symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
|
|
584
|
+
|
|
585
|
+
Возвращает:
|
|
586
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
587
|
+
"""
|
|
588
|
+
url = self._generate_stream_url(
|
|
589
|
+
type="ticker",
|
|
590
|
+
url=self._BASE_FUTURES_URL,
|
|
591
|
+
symbol=symbol,
|
|
592
|
+
symbols=symbols,
|
|
593
|
+
require_symbol=True,
|
|
594
|
+
)
|
|
595
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
596
|
+
|
|
597
|
+
def futures_ticker(self, callback: CallbackType) -> Websocket:
|
|
598
|
+
"""Создает вебсокет для получения расширенной статистики всех тикеров за последние 24 ч.
|
|
599
|
+
|
|
600
|
+
https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/All-Market-Tickers-Streams
|
|
601
|
+
|
|
602
|
+
Параметры:
|
|
603
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
604
|
+
|
|
605
|
+
Возвращает:
|
|
606
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
607
|
+
"""
|
|
608
|
+
url = self._generate_stream_url(type="!ticker@arr", url=self._BASE_FUTURES_URL)
|
|
609
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
610
|
+
|
|
611
|
+
def futures_symbol_book_ticker(
|
|
612
|
+
self,
|
|
613
|
+
callback: CallbackType,
|
|
614
|
+
symbol: str | None = None,
|
|
615
|
+
symbols: Sequence[str] | None = None,
|
|
616
|
+
) -> Websocket:
|
|
617
|
+
"""Создает вебсокет для получения лучших бид/аск по символам.
|
|
618
|
+
|
|
619
|
+
https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Individual-Symbol-Book-Ticker-Streams
|
|
620
|
+
|
|
621
|
+
Параметры:
|
|
622
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
623
|
+
symbol (`str | None`): Один символ для подписки.
|
|
624
|
+
symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
|
|
625
|
+
|
|
626
|
+
Возвращает:
|
|
627
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
628
|
+
"""
|
|
629
|
+
url = self._generate_stream_url(
|
|
630
|
+
type="bookTicker",
|
|
631
|
+
url=self._BASE_FUTURES_URL,
|
|
632
|
+
symbol=symbol,
|
|
633
|
+
symbols=symbols,
|
|
634
|
+
require_symbol=True,
|
|
635
|
+
)
|
|
636
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
637
|
+
|
|
638
|
+
def futures_book_ticker(self, callback: CallbackType) -> Websocket:
|
|
639
|
+
"""Создает вебсокет для получения лучших бид/аск по символам.
|
|
640
|
+
|
|
641
|
+
https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/All-Book-Tickers-Stream
|
|
642
|
+
|
|
643
|
+
Параметры:
|
|
644
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
645
|
+
|
|
646
|
+
Возвращает:
|
|
647
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
648
|
+
"""
|
|
649
|
+
url = self._generate_stream_url(type="!bookTicker", url=self._BASE_FUTURES_URL)
|
|
650
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
651
|
+
|
|
652
|
+
def futures_partial_book_depth(
|
|
653
|
+
self,
|
|
654
|
+
callback: CallbackType,
|
|
655
|
+
symbol: str | None,
|
|
656
|
+
levels: str,
|
|
657
|
+
update_speed: str | None = None,
|
|
658
|
+
symbols: Sequence[str] | None = None,
|
|
659
|
+
) -> Websocket:
|
|
660
|
+
"""Создает вебсокет для получения стакана глубиной N уровней.
|
|
661
|
+
|
|
662
|
+
https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Partial-Book-Depth-Streams
|
|
663
|
+
|
|
664
|
+
Параметры:
|
|
665
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
666
|
+
symbol (`str | None`): Один символ для подписки.
|
|
667
|
+
levels (`str`): Глубина стакана (уровни).
|
|
668
|
+
update_speed (`str`): Скорость обновления стакана (100ms | 500ms | None). По умолчанию - 250ms.
|
|
669
|
+
symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
|
|
670
|
+
|
|
671
|
+
Возвращает:
|
|
672
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
673
|
+
"""
|
|
674
|
+
url = self._generate_stream_url(
|
|
675
|
+
type=f"depth{levels}" + f"@{update_speed}" if update_speed else "",
|
|
676
|
+
url=self._BASE_FUTURES_URL,
|
|
677
|
+
symbol=symbol,
|
|
678
|
+
symbols=symbols,
|
|
679
|
+
require_symbol=True,
|
|
680
|
+
)
|
|
681
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
682
|
+
|
|
683
|
+
def futures_diff_depth(
|
|
684
|
+
self,
|
|
685
|
+
callback: CallbackType,
|
|
686
|
+
update_speed: str | None = None,
|
|
687
|
+
symbol: str | None = None,
|
|
688
|
+
symbols: Sequence[str] | None = None,
|
|
689
|
+
) -> Websocket:
|
|
690
|
+
"""Создает вебсокет для получения событий изменения стакана (без лимита глубины).
|
|
691
|
+
|
|
692
|
+
https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Diff-Book-Depth-Streams
|
|
693
|
+
|
|
694
|
+
Параметры:
|
|
695
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
696
|
+
update_speed (`str`): Скорость обновления стакана (100ms | 500ms | None). По умолчанию - 250ms.
|
|
697
|
+
symbol (`str | None`): Один символ для подписки.
|
|
698
|
+
symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
|
|
699
|
+
|
|
700
|
+
Возвращает:
|
|
701
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
702
|
+
"""
|
|
703
|
+
url = self._generate_stream_url(
|
|
704
|
+
type="depth" + f"@{update_speed}" if update_speed else "",
|
|
705
|
+
url=self._BASE_FUTURES_URL,
|
|
706
|
+
symbol=symbol,
|
|
707
|
+
symbols=symbols,
|
|
708
|
+
require_symbol=True,
|
|
709
|
+
)
|
|
710
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
711
|
+
|
|
712
|
+
def futures_mark_price(
|
|
713
|
+
self, callback: CallbackType, update_speed: str | None = None
|
|
714
|
+
) -> Websocket:
|
|
715
|
+
"""Создает вебсокет для получения mark price и funding rate для всех тикеров.
|
|
716
|
+
|
|
717
|
+
https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Mark-Price-Stream-for-All-market
|
|
718
|
+
|
|
719
|
+
Параметры:
|
|
720
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
721
|
+
update_speed (`str`): Частота обновления ("1s" или пусто). По умолчанию "3s".
|
|
722
|
+
|
|
723
|
+
Возвращает:
|
|
724
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
725
|
+
"""
|
|
726
|
+
url = self._generate_stream_url(
|
|
727
|
+
type="!markPrice" + f"@{update_speed}" if update_speed else "",
|
|
728
|
+
url=self._BASE_FUTURES_URL,
|
|
729
|
+
)
|
|
730
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
731
|
+
|
|
732
|
+
def futures_symbol_mark_price(
|
|
733
|
+
self,
|
|
734
|
+
callback: CallbackType,
|
|
735
|
+
update_speed: str | None = None,
|
|
736
|
+
symbol: str | None = None,
|
|
737
|
+
symbols: Sequence[str] | None = None,
|
|
738
|
+
) -> Websocket:
|
|
739
|
+
"""Создает вебсокет для получения mark price и funding rate по символам.
|
|
740
|
+
|
|
741
|
+
https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Mark-Price-Stream
|
|
742
|
+
|
|
743
|
+
Параметры:
|
|
744
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
745
|
+
update_speed (`str`): Частота обновления ("1s" или пусто). По умолчанию "3s".
|
|
746
|
+
symbol (`str | None`): Один символ для подписки.
|
|
747
|
+
symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
|
|
748
|
+
|
|
749
|
+
Возвращает:
|
|
750
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
751
|
+
"""
|
|
752
|
+
url = self._generate_stream_url(
|
|
753
|
+
type="markPrice" + f"@{update_speed}" if update_speed else "",
|
|
754
|
+
url=self._BASE_FUTURES_URL,
|
|
755
|
+
symbol=symbol,
|
|
756
|
+
symbols=symbols,
|
|
757
|
+
require_symbol=True,
|
|
758
|
+
)
|
|
759
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
760
|
+
|
|
761
|
+
def futures_continuous_klines(
|
|
762
|
+
self,
|
|
763
|
+
callback: CallbackType,
|
|
764
|
+
pair: str,
|
|
765
|
+
contract_type: str,
|
|
766
|
+
interval: str,
|
|
767
|
+
) -> Websocket:
|
|
768
|
+
"""Создает вебсокет для получения свечей по непрерывным контрактам (continuous contract).
|
|
769
|
+
|
|
770
|
+
https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Continuous-Contract-Kline-Candlestick-Streams
|
|
771
|
+
|
|
772
|
+
Параметры:
|
|
773
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
774
|
+
pair (`str`): Название пары.
|
|
775
|
+
contract_type (`str`): Тип контракта.
|
|
776
|
+
interval (`str`): Временной интервал свечей..
|
|
777
|
+
|
|
778
|
+
Возвращает:
|
|
779
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
780
|
+
"""
|
|
781
|
+
url = self._generate_stream_url(
|
|
782
|
+
type=f"{pair.lower()}_{contract_type}@continuousKline_{interval}",
|
|
783
|
+
url=self._BASE_FUTURES_URL,
|
|
784
|
+
)
|
|
785
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
786
|
+
|
|
787
|
+
def liquidation_order(
|
|
788
|
+
self,
|
|
789
|
+
callback: CallbackType,
|
|
790
|
+
symbol: str | None = None,
|
|
791
|
+
symbols: Sequence[str] | None = None,
|
|
792
|
+
) -> Websocket:
|
|
793
|
+
"""Создает вебсокет для получения ликвидационных ордеров по символам.
|
|
794
|
+
|
|
795
|
+
https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Liquidation-Order-Streams
|
|
796
|
+
|
|
797
|
+
Параметры:
|
|
798
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
799
|
+
symbol (`str | None`): Один символ для подписки.
|
|
800
|
+
symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
|
|
801
|
+
|
|
802
|
+
Возвращает:
|
|
803
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
804
|
+
"""
|
|
805
|
+
url = self._generate_stream_url(
|
|
806
|
+
type="forceOrder",
|
|
807
|
+
url=self._BASE_FUTURES_URL,
|
|
808
|
+
symbol=symbol,
|
|
809
|
+
symbols=symbols,
|
|
810
|
+
require_symbol=True,
|
|
811
|
+
)
|
|
812
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
813
|
+
|
|
814
|
+
def all_liquidation_orders(self, callback: CallbackType) -> Websocket:
|
|
815
|
+
"""Создает вебсокет для получения всех ликвидационных ордеров по рынку.
|
|
816
|
+
|
|
817
|
+
https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/All-Market-Liquidation-Order-Streams
|
|
818
|
+
|
|
819
|
+
Параметры:
|
|
820
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
821
|
+
|
|
822
|
+
Возвращает:
|
|
823
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
824
|
+
"""
|
|
825
|
+
url = self._generate_stream_url(type="!forceOrder@arr", url=self._BASE_FUTURES_URL)
|
|
826
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
827
|
+
|
|
828
|
+
def futures_composite_index(
|
|
829
|
+
self,
|
|
830
|
+
callback: CallbackType,
|
|
831
|
+
symbol: str | None = None,
|
|
832
|
+
symbols: Sequence[str] | None = None,
|
|
833
|
+
) -> Websocket:
|
|
834
|
+
"""Создает вебсокет для получения информации по композитному индексу.
|
|
835
|
+
|
|
836
|
+
https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Composite-Index-Symbol-Information-Streams
|
|
837
|
+
|
|
838
|
+
Параметры:
|
|
839
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
840
|
+
symbol (`str | None`): Один символ для подписки.
|
|
841
|
+
symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
|
|
842
|
+
|
|
843
|
+
Возвращает:
|
|
844
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
845
|
+
"""
|
|
846
|
+
url = self._generate_stream_url(
|
|
847
|
+
type="compositeIndex",
|
|
848
|
+
url=self._BASE_FUTURES_URL,
|
|
849
|
+
symbol=symbol,
|
|
850
|
+
symbols=symbols,
|
|
851
|
+
require_symbol=True,
|
|
852
|
+
)
|
|
853
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
854
|
+
|
|
855
|
+
def futures_contract_info(self, callback: CallbackType) -> Websocket:
|
|
856
|
+
"""Создает вебсокет для получения информации о контрактах (Contract Info Stream).
|
|
857
|
+
|
|
858
|
+
https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Contract-Info-Stream
|
|
859
|
+
|
|
860
|
+
Параметры:
|
|
861
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
862
|
+
|
|
863
|
+
Возвращает:
|
|
864
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
865
|
+
"""
|
|
866
|
+
url = self._generate_stream_url(type="!contractInfo", url=self._BASE_FUTURES_URL)
|
|
867
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
868
|
+
|
|
869
|
+
def futures_multi_assets_index(self, callback: CallbackType) -> Websocket:
|
|
870
|
+
"""Создает вебсокет для получения индекса активов в режиме Multi-Assets Mode.
|
|
871
|
+
|
|
872
|
+
https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Multi-Assets-Mode-Asset-Index
|
|
873
|
+
|
|
874
|
+
Параметры:
|
|
875
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
876
|
+
|
|
877
|
+
Возвращает:
|
|
878
|
+
`Websocket`: Объект для управления вебсокет соединением.
|
|
879
|
+
"""
|
|
880
|
+
url = self._generate_stream_url(type="!assetIndex@arr", url=self._BASE_FUTURES_URL)
|
|
881
|
+
return Websocket(callback=callback, url=url, **self._ws_kwargs)
|
|
882
|
+
|
|
883
|
+
def futures_user_data_stream(self, callback: CallbackType) -> UserWebsocket:
|
|
884
|
+
"""Создает вебсокет для получения информации о пользовательских данных.
|
|
885
|
+
|
|
886
|
+
https://developers.binance.com/docs/derivatives/usds-margined-futures/user-data-streams
|
|
887
|
+
|
|
888
|
+
Параметры:
|
|
889
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
890
|
+
|
|
891
|
+
Возвращает:
|
|
892
|
+
`UserWebsocket`: Вебсокет для получения информации о пользовательских данных.
|
|
893
|
+
"""
|
|
894
|
+
if not self.client or not self.client.is_authorized():
|
|
895
|
+
raise NotAuthorized("You must provide authorized client.")
|
|
896
|
+
return UserWebsocket(
|
|
897
|
+
callback=callback, client=self.client, type="FUTURES", **self._ws_kwargs
|
|
898
|
+
)
|
|
899
|
+
|
|
900
|
+
def futures_multiplex_socket(self, callback: CallbackType, streams: str) -> Websocket:
|
|
901
|
+
"""Создает вебсокет для мультиплексирования нескольких стримов в один.
|
|
902
|
+
|
|
903
|
+
Параметры:
|
|
904
|
+
callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
|
|
905
|
+
streams (`str`): Строка с перечислением стримов.
|
|
906
|
+
|
|
907
|
+
Возвращает:
|
|
908
|
+
`Websocket`: Вебсокет для получения информации о пользовательских данных.
|
|
909
|
+
"""
|
|
910
|
+
return Websocket(
|
|
911
|
+
callback=callback, url=self._BASE_FUTURES_URL + "?" + streams, **self._ws_kwargs
|
|
912
|
+
)
|