unicex 0.14.2__py3-none-any.whl → 0.14.7__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/_abc/uni_client.py +30 -0
- unicex/binance/client.py +25 -25
- unicex/binance/uni_websocket_manager.py +6 -2
- unicex/bitget/client.py +64 -64
- unicex/bitget/uni_websocket_manager.py +6 -2
- unicex/bybit/client.py +29 -29
- unicex/bybit/uni_websocket_manager.py +8 -4
- unicex/enums.py +17 -0
- unicex/gate/client.py +9 -9
- unicex/gate/uni_client.py +1 -2
- unicex/gate/uni_websocket_manager.py +6 -2
- unicex/hyperliquid/client.py +12 -12
- unicex/hyperliquid/uni_client.py +4 -7
- unicex/hyperliquid/uni_websocket_manager.py +6 -2
- unicex/kucoin/adapter.py +108 -13
- unicex/kucoin/client.py +80 -12
- unicex/kucoin/exchange_info.py +12 -9
- unicex/kucoin/uni_client.py +68 -8
- unicex/kucoin/uni_websocket_manager.py +6 -2
- unicex/mexc/client.py +7 -7
- unicex/mexc/uni_client.py +1 -2
- unicex/mexc/uni_websocket_manager.py +6 -2
- unicex/okx/client.py +15 -15
- unicex/okx/uni_websocket_manager.py +6 -2
- unicex/types.py +8 -0
- unicex/utils.py +5 -0
- {unicex-0.14.2.dist-info → unicex-0.14.7.dist-info}/METADATA +2 -1
- {unicex-0.14.2.dist-info → unicex-0.14.7.dist-info}/RECORD +31 -31
- {unicex-0.14.2.dist-info → unicex-0.14.7.dist-info}/WHEEL +0 -0
- {unicex-0.14.2.dist-info → unicex-0.14.7.dist-info}/licenses/LICENSE +0 -0
- {unicex-0.14.2.dist-info → unicex-0.14.7.dist-info}/top_level.txt +0 -0
unicex/_abc/uni_client.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
__all__ = ["IUniClient"]
|
|
2
2
|
|
|
3
|
+
import time
|
|
3
4
|
from abc import ABC, abstractmethod
|
|
4
5
|
from typing import Generic, Self, TypeVar, overload
|
|
5
6
|
|
|
@@ -175,6 +176,35 @@ class IUniClient(ABC, Generic[TClient]):
|
|
|
175
176
|
tickers = await self.tickers(only_usdt)
|
|
176
177
|
return batched_list(tickers, batch_size)
|
|
177
178
|
|
|
179
|
+
@staticmethod
|
|
180
|
+
def limit_to_start_and_end_time(
|
|
181
|
+
interval: Timeframe, limit: int, use_milliseconds: bool = True
|
|
182
|
+
) -> tuple[int, int]:
|
|
183
|
+
"""Преобразует `limit` в `start_time` и `end_time`.
|
|
184
|
+
|
|
185
|
+
Параметры:
|
|
186
|
+
interval (`Timeframe`): Интервал времени.
|
|
187
|
+
limit (`int`): Количество элементов.
|
|
188
|
+
use_milliseconds (`bool`): Использовать миллисекунды.
|
|
189
|
+
|
|
190
|
+
Нужен, потому что на некоторых биржах параметр `limit` не принимается напрямую.
|
|
191
|
+
"""
|
|
192
|
+
end_time = int(time.time())
|
|
193
|
+
start_time = end_time - (limit * interval.to_seconds) # type: ignore[reportOptionalOperand]
|
|
194
|
+
if use_milliseconds:
|
|
195
|
+
start_time *= 1000
|
|
196
|
+
end_time *= 1000
|
|
197
|
+
return start_time, end_time
|
|
198
|
+
|
|
199
|
+
@staticmethod
|
|
200
|
+
def to_seconds(value: int | None) -> int | None:
|
|
201
|
+
"""Преобразует значение из миллисекунд в секунды для передачи в API."""
|
|
202
|
+
if value is None:
|
|
203
|
+
return None
|
|
204
|
+
if value >= 1_000_000_000_000:
|
|
205
|
+
return value // 1000
|
|
206
|
+
return value
|
|
207
|
+
|
|
178
208
|
@abstractmethod
|
|
179
209
|
async def futures_tickers(self, only_usdt: bool = True) -> list[str]:
|
|
180
210
|
"""Возвращает список тикеров.
|
unicex/binance/client.py
CHANGED
|
@@ -7,7 +7,7 @@ from typing import Any
|
|
|
7
7
|
|
|
8
8
|
from unicex._base import BaseClient
|
|
9
9
|
from unicex.exceptions import NotAuthorized
|
|
10
|
-
from unicex.types import RequestMethod
|
|
10
|
+
from unicex.types import NumberLike, RequestMethod
|
|
11
11
|
from unicex.utils import dict_to_query_string, filter_params, generate_hmac_sha256_signature
|
|
12
12
|
|
|
13
13
|
|
|
@@ -367,13 +367,13 @@ class Client(BaseClient):
|
|
|
367
367
|
symbol: str,
|
|
368
368
|
side: str,
|
|
369
369
|
type: str,
|
|
370
|
-
quantity:
|
|
371
|
-
quote_order_qty:
|
|
372
|
-
price:
|
|
373
|
-
stop_price:
|
|
370
|
+
quantity: NumberLike | None = None,
|
|
371
|
+
quote_order_qty: NumberLike | None = None,
|
|
372
|
+
price: NumberLike | None = None,
|
|
373
|
+
stop_price: NumberLike | None = None,
|
|
374
374
|
time_in_force: str | None = None,
|
|
375
375
|
new_client_order_id: str | None = None,
|
|
376
|
-
iceberg_qty:
|
|
376
|
+
iceberg_qty: NumberLike | None = None,
|
|
377
377
|
new_order_resp_type: str | None = None,
|
|
378
378
|
self_trade_prevention_mode: str | None = None,
|
|
379
379
|
) -> dict:
|
|
@@ -405,13 +405,13 @@ class Client(BaseClient):
|
|
|
405
405
|
symbol: str,
|
|
406
406
|
side: str,
|
|
407
407
|
type: str,
|
|
408
|
-
quantity:
|
|
409
|
-
quote_order_qty:
|
|
410
|
-
price:
|
|
411
|
-
stop_price:
|
|
408
|
+
quantity: NumberLike | None = None,
|
|
409
|
+
quote_order_qty: NumberLike | None = None,
|
|
410
|
+
price: NumberLike | None = None,
|
|
411
|
+
stop_price: NumberLike | None = None,
|
|
412
412
|
time_in_force: str | None = None,
|
|
413
413
|
new_client_order_id: str | None = None,
|
|
414
|
-
iceberg_qty:
|
|
414
|
+
iceberg_qty: NumberLike | None = None,
|
|
415
415
|
new_order_resp_type: str | None = None,
|
|
416
416
|
self_trade_prevention_mode: str | None = None,
|
|
417
417
|
) -> dict:
|
|
@@ -482,26 +482,26 @@ class Client(BaseClient):
|
|
|
482
482
|
self,
|
|
483
483
|
symbol: str,
|
|
484
484
|
side: str,
|
|
485
|
-
quantity:
|
|
485
|
+
quantity: NumberLike,
|
|
486
486
|
list_client_order_id: str | None = None,
|
|
487
487
|
# ABOVE ORDER
|
|
488
488
|
above_type: str = "TAKE_PROFIT_LIMIT",
|
|
489
489
|
above_client_order_id: str | None = None,
|
|
490
|
-
above_price:
|
|
491
|
-
above_stop_price:
|
|
490
|
+
above_price: NumberLike | None = None,
|
|
491
|
+
above_stop_price: NumberLike | None = None,
|
|
492
492
|
above_trailing_delta: int | None = None,
|
|
493
493
|
above_time_in_force: str | None = None,
|
|
494
|
-
above_iceberg_qty:
|
|
494
|
+
above_iceberg_qty: NumberLike | None = None,
|
|
495
495
|
above_strategy_id: int | None = None,
|
|
496
496
|
above_strategy_type: int | None = None,
|
|
497
497
|
# BELOW ORDER
|
|
498
498
|
below_type: str = "STOP_LOSS_LIMIT",
|
|
499
499
|
below_client_order_id: str | None = None,
|
|
500
|
-
below_price:
|
|
501
|
-
below_stop_price:
|
|
500
|
+
below_price: NumberLike | None = None,
|
|
501
|
+
below_stop_price: NumberLike | None = None,
|
|
502
502
|
below_trailing_delta: int | None = None,
|
|
503
503
|
below_time_in_force: str | None = None,
|
|
504
|
-
below_iceberg_qty:
|
|
504
|
+
below_iceberg_qty: NumberLike | None = None,
|
|
505
505
|
below_strategy_id: int | None = None,
|
|
506
506
|
below_strategy_type: int | None = None,
|
|
507
507
|
# EXTRA
|
|
@@ -1126,13 +1126,13 @@ class Client(BaseClient):
|
|
|
1126
1126
|
symbol: str,
|
|
1127
1127
|
side: str,
|
|
1128
1128
|
type: str,
|
|
1129
|
-
quantity:
|
|
1129
|
+
quantity: NumberLike | None = None,
|
|
1130
1130
|
reduce_only: bool | None = None,
|
|
1131
|
-
price:
|
|
1131
|
+
price: NumberLike | None = None,
|
|
1132
1132
|
new_client_order_id: str | None = None,
|
|
1133
|
-
stop_price:
|
|
1133
|
+
stop_price: NumberLike | None = None,
|
|
1134
1134
|
close_position: bool | None = None,
|
|
1135
|
-
activation_price:
|
|
1135
|
+
activation_price: NumberLike | None = None,
|
|
1136
1136
|
callback_rate: float | None = None,
|
|
1137
1137
|
time_in_force: str | None = None,
|
|
1138
1138
|
working_type: str | None = None,
|
|
@@ -1176,8 +1176,8 @@ class Client(BaseClient):
|
|
|
1176
1176
|
orig_client_order_id: str | None = None,
|
|
1177
1177
|
symbol: str | None = None,
|
|
1178
1178
|
side: str | None = None,
|
|
1179
|
-
quantity:
|
|
1180
|
-
price:
|
|
1179
|
+
quantity: NumberLike | None = None,
|
|
1180
|
+
price: NumberLike | None = None,
|
|
1181
1181
|
price_match: str | None = None,
|
|
1182
1182
|
) -> dict:
|
|
1183
1183
|
"""Изменение ордера на фьючерсах.
|
|
@@ -1356,7 +1356,7 @@ class Client(BaseClient):
|
|
|
1356
1356
|
self,
|
|
1357
1357
|
symbol: str,
|
|
1358
1358
|
position_side: str,
|
|
1359
|
-
amount:
|
|
1359
|
+
amount: NumberLike,
|
|
1360
1360
|
type: int,
|
|
1361
1361
|
) -> dict:
|
|
1362
1362
|
"""Изменение изолированной маржи позиции.
|
|
@@ -20,16 +20,20 @@ class UniWebsocketManager(IUniWebsocketManager):
|
|
|
20
20
|
"""Реализация менеджера асинхронных унифицированных вебсокетов для биржи Binance."""
|
|
21
21
|
|
|
22
22
|
def __init__(
|
|
23
|
-
self,
|
|
23
|
+
self,
|
|
24
|
+
client: Client | UniClient | None = None,
|
|
25
|
+
logger: LoggerLike | None = None,
|
|
26
|
+
**ws_kwargs: Any,
|
|
24
27
|
) -> None:
|
|
25
28
|
"""Инициализирует унифицированный менеджер вебсокетов.
|
|
26
29
|
|
|
27
30
|
Параметры:
|
|
28
31
|
client (`Client | UniClient | None`): Клиент Binance или унифицированный клиент. Нужен для подключения к приватным топикам.
|
|
29
32
|
logger (`LoggerLike | None`): Логгер для записи логов.
|
|
33
|
+
ws_kwargs (`dict[str, Any]`): Дополнительные параметры инициализации, которые будут переданы WebsocketManager/Websocket.
|
|
30
34
|
"""
|
|
31
35
|
super().__init__(client=client, logger=logger)
|
|
32
|
-
self._websocket_manager = WebsocketManager(self._client) # type: ignore
|
|
36
|
+
self._websocket_manager = WebsocketManager(self._client, **ws_kwargs) # type: ignore
|
|
33
37
|
self._adapter = Adapter()
|
|
34
38
|
|
|
35
39
|
def klines(
|
unicex/bitget/client.py
CHANGED
|
@@ -6,7 +6,7 @@ from typing import Any, Literal
|
|
|
6
6
|
|
|
7
7
|
from unicex._base import BaseClient
|
|
8
8
|
from unicex.exceptions import NotAuthorized
|
|
9
|
-
from unicex.types import RequestMethod
|
|
9
|
+
from unicex.types import NumberLike, RequestMethod
|
|
10
10
|
from unicex.utils import (
|
|
11
11
|
dict_to_query_string,
|
|
12
12
|
filter_params,
|
|
@@ -434,18 +434,18 @@ class Client(BaseClient):
|
|
|
434
434
|
side: str,
|
|
435
435
|
order_type: str,
|
|
436
436
|
force: str | None = None,
|
|
437
|
-
price:
|
|
438
|
-
size:
|
|
437
|
+
price: NumberLike | None = None,
|
|
438
|
+
size: NumberLike | None = None,
|
|
439
439
|
client_oid: str | None = None,
|
|
440
|
-
trigger_price:
|
|
440
|
+
trigger_price: NumberLike | None = None,
|
|
441
441
|
tpsl_type: str | None = None,
|
|
442
442
|
request_time: str | None = None,
|
|
443
443
|
receive_window: str | None = None,
|
|
444
444
|
stp_mode: str | None = None,
|
|
445
|
-
preset_take_profit_price:
|
|
446
|
-
execute_take_profit_price:
|
|
447
|
-
preset_stop_loss_price:
|
|
448
|
-
execute_stop_loss_price:
|
|
445
|
+
preset_take_profit_price: NumberLike | None = None,
|
|
446
|
+
execute_take_profit_price: NumberLike | None = None,
|
|
447
|
+
preset_stop_loss_price: NumberLike | None = None,
|
|
448
|
+
execute_stop_loss_price: NumberLike | None = None,
|
|
449
449
|
) -> dict:
|
|
450
450
|
"""Размещение спотового ордера.
|
|
451
451
|
|
|
@@ -479,15 +479,15 @@ class Client(BaseClient):
|
|
|
479
479
|
async def cancel_an_existing_order_and_send_a_new_order(
|
|
480
480
|
self,
|
|
481
481
|
symbol: str,
|
|
482
|
-
price:
|
|
483
|
-
size:
|
|
482
|
+
price: NumberLike,
|
|
483
|
+
size: NumberLike,
|
|
484
484
|
order_id: str | None = None,
|
|
485
485
|
client_oid: str | None = None,
|
|
486
486
|
new_client_oid: str | None = None,
|
|
487
|
-
preset_take_profit_price:
|
|
488
|
-
execute_take_profit_price:
|
|
489
|
-
preset_stop_loss_price:
|
|
490
|
-
execute_stop_loss_price:
|
|
487
|
+
preset_take_profit_price: NumberLike | None = None,
|
|
488
|
+
execute_take_profit_price: NumberLike | None = None,
|
|
489
|
+
preset_stop_loss_price: NumberLike | None = None,
|
|
490
|
+
execute_stop_loss_price: NumberLike | None = None,
|
|
491
491
|
) -> dict:
|
|
492
492
|
"""Отмена существующего ордера и размещение нового.
|
|
493
493
|
|
|
@@ -716,11 +716,11 @@ class Client(BaseClient):
|
|
|
716
716
|
self,
|
|
717
717
|
symbol: str,
|
|
718
718
|
side: str,
|
|
719
|
-
trigger_price:
|
|
719
|
+
trigger_price: NumberLike,
|
|
720
720
|
order_type: str,
|
|
721
|
-
size:
|
|
721
|
+
size: NumberLike,
|
|
722
722
|
trigger_type: str,
|
|
723
|
-
execute_price:
|
|
723
|
+
execute_price: NumberLike | None = None,
|
|
724
724
|
plan_type: str | None = None,
|
|
725
725
|
client_oid: str | None = None,
|
|
726
726
|
stp_mode: str | None = None,
|
|
@@ -748,12 +748,12 @@ class Client(BaseClient):
|
|
|
748
748
|
|
|
749
749
|
async def modify_plan_order(
|
|
750
750
|
self,
|
|
751
|
-
trigger_price:
|
|
752
|
-
size:
|
|
751
|
+
trigger_price: NumberLike,
|
|
752
|
+
size: NumberLike,
|
|
753
753
|
order_type: str,
|
|
754
754
|
order_id: str | None = None,
|
|
755
755
|
client_oid: str | None = None,
|
|
756
|
-
execute_price:
|
|
756
|
+
execute_price: NumberLike | None = None,
|
|
757
757
|
) -> dict:
|
|
758
758
|
"""Изменение планового ордера (trigger order).
|
|
759
759
|
|
|
@@ -950,7 +950,7 @@ class Client(BaseClient):
|
|
|
950
950
|
self,
|
|
951
951
|
from_type: str,
|
|
952
952
|
to_type: str,
|
|
953
|
-
amount:
|
|
953
|
+
amount: NumberLike,
|
|
954
954
|
coin: str,
|
|
955
955
|
symbol: str,
|
|
956
956
|
client_oid: str | None = None,
|
|
@@ -992,7 +992,7 @@ class Client(BaseClient):
|
|
|
992
992
|
self,
|
|
993
993
|
from_type: str,
|
|
994
994
|
to_type: str,
|
|
995
|
-
amount:
|
|
995
|
+
amount: NumberLike,
|
|
996
996
|
coin: str,
|
|
997
997
|
symbol: str | None = None,
|
|
998
998
|
client_oid: str | None = None,
|
|
@@ -1026,7 +1026,7 @@ class Client(BaseClient):
|
|
|
1026
1026
|
inner_to_type: str | None = None,
|
|
1027
1027
|
area_code: str | None = None,
|
|
1028
1028
|
tag: str | None = None,
|
|
1029
|
-
size:
|
|
1029
|
+
size: NumberLike | None = None,
|
|
1030
1030
|
remark: str | None = None,
|
|
1031
1031
|
client_oid: str | None = None,
|
|
1032
1032
|
member_code: str | None = None,
|
|
@@ -1480,8 +1480,8 @@ class Client(BaseClient):
|
|
|
1480
1480
|
self,
|
|
1481
1481
|
symbol: str,
|
|
1482
1482
|
margin_coin: str,
|
|
1483
|
-
open_amount:
|
|
1484
|
-
open_price:
|
|
1483
|
+
open_amount: NumberLike,
|
|
1484
|
+
open_price: NumberLike,
|
|
1485
1485
|
product_type: Literal["USDT-FUTURES", "USDC-FUTURES", "COIN-FUTURES"] = "USDT-FUTURES",
|
|
1486
1486
|
leverage: int | None = 20,
|
|
1487
1487
|
) -> dict:
|
|
@@ -1575,7 +1575,7 @@ class Client(BaseClient):
|
|
|
1575
1575
|
symbol: str,
|
|
1576
1576
|
margin_coin: str,
|
|
1577
1577
|
hold_side: str,
|
|
1578
|
-
amount:
|
|
1578
|
+
amount: NumberLike,
|
|
1579
1579
|
product_type: Literal["USDT-FUTURES", "USDC-FUTURES", "COIN-FUTURES"] = "USDT-FUTURES",
|
|
1580
1580
|
) -> dict:
|
|
1581
1581
|
"""Добавить или уменьшить маржу для позиции (только для изолированной маржи).
|
|
@@ -1637,7 +1637,7 @@ class Client(BaseClient):
|
|
|
1637
1637
|
async def futures_union_convert(
|
|
1638
1638
|
self,
|
|
1639
1639
|
coin: str,
|
|
1640
|
-
amount:
|
|
1640
|
+
amount: NumberLike,
|
|
1641
1641
|
) -> dict:
|
|
1642
1642
|
"""Конвертация активов в режиме объединенной маржи.
|
|
1643
1643
|
|
|
@@ -1826,19 +1826,19 @@ class Client(BaseClient):
|
|
|
1826
1826
|
symbol: str,
|
|
1827
1827
|
margin_mode: str,
|
|
1828
1828
|
margin_coin: str,
|
|
1829
|
-
size:
|
|
1829
|
+
size: NumberLike,
|
|
1830
1830
|
side: str,
|
|
1831
1831
|
order_type: str,
|
|
1832
1832
|
product_type: Literal["USDT-FUTURES", "USDC-FUTURES", "COIN-FUTURES"] = "USDT-FUTURES",
|
|
1833
|
-
price:
|
|
1833
|
+
price: NumberLike | None = None,
|
|
1834
1834
|
trade_side: str | None = None,
|
|
1835
1835
|
force: str | None = "gtc",
|
|
1836
1836
|
client_oid: str | None = None,
|
|
1837
1837
|
reduce_only: str | None = "NO",
|
|
1838
|
-
preset_stop_surplus_price:
|
|
1839
|
-
preset_stop_loss_price:
|
|
1840
|
-
preset_stop_surplus_execute_price:
|
|
1841
|
-
preset_stop_loss_execute_price:
|
|
1838
|
+
preset_stop_surplus_price: NumberLike | None = None,
|
|
1839
|
+
preset_stop_loss_price: NumberLike | None = None,
|
|
1840
|
+
preset_stop_surplus_execute_price: NumberLike | None = None,
|
|
1841
|
+
preset_stop_loss_execute_price: NumberLike | None = None,
|
|
1842
1842
|
stp_mode: str | None = "none",
|
|
1843
1843
|
) -> dict:
|
|
1844
1844
|
"""Разместить ордер на фьючерсном рынке.
|
|
@@ -1875,7 +1875,7 @@ class Client(BaseClient):
|
|
|
1875
1875
|
margin_coin: str,
|
|
1876
1876
|
side: str,
|
|
1877
1877
|
product_type: Literal["USDT-FUTURES", "USDC-FUTURES", "COIN-FUTURES"] = "USDT-FUTURES",
|
|
1878
|
-
size:
|
|
1878
|
+
size: NumberLike | None = None,
|
|
1879
1879
|
trade_side: str | None = None,
|
|
1880
1880
|
client_oid: str | None = None,
|
|
1881
1881
|
) -> dict:
|
|
@@ -1929,10 +1929,10 @@ class Client(BaseClient):
|
|
|
1929
1929
|
product_type: Literal["USDT-FUTURES", "USDC-FUTURES", "COIN-FUTURES"] = "USDT-FUTURES",
|
|
1930
1930
|
order_id: str | None = None,
|
|
1931
1931
|
client_oid: str | None = None,
|
|
1932
|
-
new_size:
|
|
1933
|
-
new_price:
|
|
1934
|
-
new_preset_stop_surplus_price:
|
|
1935
|
-
new_preset_stop_loss_price:
|
|
1932
|
+
new_size: NumberLike | None = None,
|
|
1933
|
+
new_price: NumberLike | None = None,
|
|
1934
|
+
new_preset_stop_surplus_price: NumberLike | None = None,
|
|
1935
|
+
new_preset_stop_loss_price: NumberLike | None = None,
|
|
1936
1936
|
) -> dict:
|
|
1937
1937
|
"""Модифицировать существующий ордер: цену, размер и/или TP/SL.
|
|
1938
1938
|
|
|
@@ -2212,12 +2212,12 @@ class Client(BaseClient):
|
|
|
2212
2212
|
margin_coin: str,
|
|
2213
2213
|
symbol: str,
|
|
2214
2214
|
plan_type: str,
|
|
2215
|
-
trigger_price:
|
|
2215
|
+
trigger_price: NumberLike,
|
|
2216
2216
|
hold_side: str,
|
|
2217
|
-
size:
|
|
2217
|
+
size: NumberLike,
|
|
2218
2218
|
product_type: Literal["USDT-FUTURES", "USDC-FUTURES", "COIN-FUTURES"] = "USDT-FUTURES",
|
|
2219
2219
|
trigger_type: str | None = None,
|
|
2220
|
-
execute_price:
|
|
2220
|
+
execute_price: NumberLike | None = None,
|
|
2221
2221
|
range_rate: str | None = None,
|
|
2222
2222
|
client_oid: str | None = None,
|
|
2223
2223
|
stp_mode: str | None = None,
|
|
@@ -2251,14 +2251,14 @@ class Client(BaseClient):
|
|
|
2251
2251
|
symbol: str,
|
|
2252
2252
|
hold_side: str,
|
|
2253
2253
|
product_type: Literal["USDT-FUTURES", "USDC-FUTURES", "COIN-FUTURES"] = "USDT-FUTURES",
|
|
2254
|
-
stop_surplus_trigger_price:
|
|
2255
|
-
stop_surplus_size:
|
|
2254
|
+
stop_surplus_trigger_price: NumberLike | None = None,
|
|
2255
|
+
stop_surplus_size: NumberLike | None = None,
|
|
2256
2256
|
stop_surplus_trigger_type: str | None = None,
|
|
2257
|
-
stop_surplus_execute_price:
|
|
2258
|
-
stop_loss_trigger_price:
|
|
2259
|
-
stop_loss_size:
|
|
2257
|
+
stop_surplus_execute_price: NumberLike | None = None,
|
|
2258
|
+
stop_loss_trigger_price: NumberLike | None = None,
|
|
2259
|
+
stop_loss_size: NumberLike | None = None,
|
|
2260
2260
|
stop_loss_trigger_type: str | None = None,
|
|
2261
|
-
stop_loss_execute_price:
|
|
2261
|
+
stop_loss_execute_price: NumberLike | None = None,
|
|
2262
2262
|
stp_mode: str | None = None,
|
|
2263
2263
|
stop_surplus_client_oid: str | None = None,
|
|
2264
2264
|
stop_loss_client_oid: str | None = None,
|
|
@@ -2295,22 +2295,22 @@ class Client(BaseClient):
|
|
|
2295
2295
|
symbol: str,
|
|
2296
2296
|
margin_mode: str,
|
|
2297
2297
|
margin_coin: str,
|
|
2298
|
-
size:
|
|
2298
|
+
size: NumberLike,
|
|
2299
2299
|
side: str,
|
|
2300
2300
|
order_type: str,
|
|
2301
|
-
trigger_price:
|
|
2301
|
+
trigger_price: NumberLike,
|
|
2302
2302
|
trigger_type: str,
|
|
2303
2303
|
product_type: Literal["USDT-FUTURES", "USDC-FUTURES", "COIN-FUTURES"] = "USDT-FUTURES",
|
|
2304
2304
|
trade_side: str | None = None,
|
|
2305
|
-
price:
|
|
2305
|
+
price: NumberLike | None = None,
|
|
2306
2306
|
callback_ratio: str | None = None,
|
|
2307
2307
|
client_oid: str | None = None,
|
|
2308
2308
|
reduce_only: str | None = None,
|
|
2309
|
-
stop_surplus_trigger_price:
|
|
2310
|
-
stop_surplus_execute_price:
|
|
2309
|
+
stop_surplus_trigger_price: NumberLike | None = None,
|
|
2310
|
+
stop_surplus_execute_price: NumberLike | None = None,
|
|
2311
2311
|
stop_surplus_trigger_type: str | None = None,
|
|
2312
|
-
stop_loss_trigger_price:
|
|
2313
|
-
stop_loss_execute_price:
|
|
2312
|
+
stop_loss_trigger_price: NumberLike | None = None,
|
|
2313
|
+
stop_loss_execute_price: NumberLike | None = None,
|
|
2314
2314
|
stop_loss_trigger_type: str | None = None,
|
|
2315
2315
|
stp_mode: str | None = None,
|
|
2316
2316
|
) -> dict:
|
|
@@ -2351,13 +2351,13 @@ class Client(BaseClient):
|
|
|
2351
2351
|
self,
|
|
2352
2352
|
margin_coin: str,
|
|
2353
2353
|
symbol: str,
|
|
2354
|
-
trigger_price:
|
|
2355
|
-
size:
|
|
2354
|
+
trigger_price: NumberLike,
|
|
2355
|
+
size: NumberLike,
|
|
2356
2356
|
product_type: Literal["USDT-FUTURES", "USDC-FUTURES", "COIN-FUTURES"] = "USDT-FUTURES",
|
|
2357
2357
|
order_id: str | None = None,
|
|
2358
2358
|
client_oid: str | None = None,
|
|
2359
2359
|
trigger_type: str | None = None,
|
|
2360
|
-
execute_price:
|
|
2360
|
+
execute_price: NumberLike | None = None,
|
|
2361
2361
|
range_rate: str | None = None,
|
|
2362
2362
|
) -> dict:
|
|
2363
2363
|
"""Изменить TP/SL ордер.
|
|
@@ -2386,16 +2386,16 @@ class Client(BaseClient):
|
|
|
2386
2386
|
product_type: Literal["USDT-FUTURES", "USDC-FUTURES", "COIN-FUTURES"] = "USDT-FUTURES",
|
|
2387
2387
|
order_id: str | None = None,
|
|
2388
2388
|
client_oid: str | None = None,
|
|
2389
|
-
new_size:
|
|
2390
|
-
new_price:
|
|
2389
|
+
new_size: NumberLike | None = None,
|
|
2390
|
+
new_price: NumberLike | None = None,
|
|
2391
2391
|
new_callback_ratio: str | None = None,
|
|
2392
|
-
new_trigger_price:
|
|
2392
|
+
new_trigger_price: NumberLike | None = None,
|
|
2393
2393
|
new_trigger_type: str | None = None,
|
|
2394
|
-
new_stop_surplus_trigger_price:
|
|
2395
|
-
new_stop_surplus_execute_price:
|
|
2394
|
+
new_stop_surplus_trigger_price: NumberLike | None = None,
|
|
2395
|
+
new_stop_surplus_execute_price: NumberLike | None = None,
|
|
2396
2396
|
new_stop_surplus_trigger_type: str | None = None,
|
|
2397
|
-
new_stop_loss_trigger_price:
|
|
2398
|
-
new_stop_loss_execute_price:
|
|
2397
|
+
new_stop_loss_trigger_price: NumberLike | None = None,
|
|
2398
|
+
new_stop_loss_execute_price: NumberLike | None = None,
|
|
2399
2399
|
new_stop_loss_trigger_type: str | None = None,
|
|
2400
2400
|
) -> dict:
|
|
2401
2401
|
"""Изменить триггерный или трейлинг ордер, включая TP/SL.
|
|
@@ -20,16 +20,20 @@ class UniWebsocketManager(IUniWebsocketManager):
|
|
|
20
20
|
"""Реализация менеджера асинхронных унифицированных вебсокетов для биржи Bitget."""
|
|
21
21
|
|
|
22
22
|
def __init__(
|
|
23
|
-
self,
|
|
23
|
+
self,
|
|
24
|
+
client: Client | UniClient | None = None,
|
|
25
|
+
logger: LoggerLike | None = None,
|
|
26
|
+
**ws_kwargs: Any,
|
|
24
27
|
) -> None:
|
|
25
28
|
"""Инициализирует унифицированный менеджер вебсокетов.
|
|
26
29
|
|
|
27
30
|
Параметры:
|
|
28
31
|
client (`Client | UniClient | None`): Клиент Bitget или унифицированный клиент. Нужен для подключения к приватным топикам.
|
|
29
32
|
logger (`LoggerLike | None`): Логгер для записи логов.
|
|
33
|
+
ws_kwargs (`dict[str, Any]`): Дополнительные параметры инициализации, которые будут переданы WebsocketManager/Websocket.
|
|
30
34
|
"""
|
|
31
35
|
super().__init__(client=client, logger=logger)
|
|
32
|
-
self._websocket_manager = WebsocketManager(self._client) # type: ignore
|
|
36
|
+
self._websocket_manager = WebsocketManager(self._client, **ws_kwargs) # type: ignore
|
|
33
37
|
self._adapter = Adapter()
|
|
34
38
|
|
|
35
39
|
@overload
|
unicex/bybit/client.py
CHANGED
|
@@ -6,7 +6,7 @@ from typing import Any, Literal
|
|
|
6
6
|
|
|
7
7
|
from unicex._base import BaseClient
|
|
8
8
|
from unicex.exceptions import NotAuthorized
|
|
9
|
-
from unicex.types import RequestMethod
|
|
9
|
+
from unicex.types import NumberLike, RequestMethod
|
|
10
10
|
from unicex.utils import dict_to_query_string, filter_params, generate_hmac_sha256_signature
|
|
11
11
|
|
|
12
12
|
|
|
@@ -588,22 +588,22 @@ class Client(BaseClient):
|
|
|
588
588
|
symbol: str,
|
|
589
589
|
side: Literal["Buy", "Sell"],
|
|
590
590
|
order_type: Literal["Market", "Limit"],
|
|
591
|
-
qty:
|
|
591
|
+
qty: NumberLike,
|
|
592
592
|
is_leverage: int | None = None,
|
|
593
593
|
market_unit: str | None = None,
|
|
594
594
|
slippage_tolerance_type: str | None = None,
|
|
595
595
|
slippage_tolerance: str | None = None,
|
|
596
|
-
price:
|
|
596
|
+
price: NumberLike | None = None,
|
|
597
597
|
trigger_direction: int | None = None,
|
|
598
598
|
order_filter: str | None = None,
|
|
599
|
-
trigger_price:
|
|
599
|
+
trigger_price: NumberLike | None = None,
|
|
600
600
|
trigger_by: str | None = None,
|
|
601
601
|
order_iv: str | None = None,
|
|
602
602
|
time_in_force: str | None = None,
|
|
603
603
|
position_idx: int | None = None,
|
|
604
604
|
order_link_id: str | None = None,
|
|
605
|
-
take_profit:
|
|
606
|
-
stop_loss:
|
|
605
|
+
take_profit: NumberLike | None = None,
|
|
606
|
+
stop_loss: NumberLike | None = None,
|
|
607
607
|
tp_trigger_by: str | None = None,
|
|
608
608
|
sl_trigger_by: str | None = None,
|
|
609
609
|
reduce_only: bool | None = None,
|
|
@@ -611,8 +611,8 @@ class Client(BaseClient):
|
|
|
611
611
|
smp_type: str | None = None,
|
|
612
612
|
mmp: bool | None = None,
|
|
613
613
|
tpsl_mode: str | None = None,
|
|
614
|
-
tp_limit_price:
|
|
615
|
-
sl_limit_price:
|
|
614
|
+
tp_limit_price: NumberLike | None = None,
|
|
615
|
+
sl_limit_price: NumberLike | None = None,
|
|
616
616
|
tp_order_type: str | None = None,
|
|
617
617
|
sl_order_type: str | None = None,
|
|
618
618
|
) -> dict:
|
|
@@ -663,17 +663,17 @@ class Client(BaseClient):
|
|
|
663
663
|
order_id: str | None = None,
|
|
664
664
|
order_link_id: str | None = None,
|
|
665
665
|
order_iv: str | None = None,
|
|
666
|
-
trigger_price:
|
|
667
|
-
qty:
|
|
668
|
-
price:
|
|
666
|
+
trigger_price: NumberLike | None = None,
|
|
667
|
+
qty: NumberLike | None = None,
|
|
668
|
+
price: NumberLike | None = None,
|
|
669
669
|
tpsl_mode: str | None = None,
|
|
670
|
-
take_profit:
|
|
671
|
-
stop_loss:
|
|
670
|
+
take_profit: NumberLike | None = None,
|
|
671
|
+
stop_loss: NumberLike | None = None,
|
|
672
672
|
tp_trigger_by: str | None = None,
|
|
673
673
|
sl_trigger_by: str | None = None,
|
|
674
674
|
trigger_by: str | None = None,
|
|
675
|
-
tp_limit_price:
|
|
676
|
-
sl_limit_price:
|
|
675
|
+
tp_limit_price: NumberLike | None = None,
|
|
676
|
+
sl_limit_price: NumberLike | None = None,
|
|
677
677
|
) -> dict:
|
|
678
678
|
"""Изменение параметров ордера.
|
|
679
679
|
|
|
@@ -942,17 +942,17 @@ class Client(BaseClient):
|
|
|
942
942
|
symbol: str,
|
|
943
943
|
side: str,
|
|
944
944
|
order_type: str,
|
|
945
|
-
qty:
|
|
946
|
-
price:
|
|
945
|
+
qty: NumberLike,
|
|
946
|
+
price: NumberLike | None = None,
|
|
947
947
|
trigger_direction: int | None = None,
|
|
948
|
-
trigger_price:
|
|
948
|
+
trigger_price: NumberLike | None = None,
|
|
949
949
|
trigger_by: str | None = None,
|
|
950
950
|
order_iv: str | None = None,
|
|
951
951
|
time_in_force: str | None = None,
|
|
952
952
|
position_idx: int | None = None,
|
|
953
953
|
order_link_id: str | None = None,
|
|
954
|
-
take_profit:
|
|
955
|
-
stop_loss:
|
|
954
|
+
take_profit: NumberLike | None = None,
|
|
955
|
+
stop_loss: NumberLike | None = None,
|
|
956
956
|
tp_trigger_by: str | None = None,
|
|
957
957
|
sl_trigger_by: str | None = None,
|
|
958
958
|
reduce_only: bool | None = None,
|
|
@@ -960,8 +960,8 @@ class Client(BaseClient):
|
|
|
960
960
|
smp_type: str | None = None,
|
|
961
961
|
mmp: bool | None = None,
|
|
962
962
|
tpsl_mode: str | None = None,
|
|
963
|
-
tp_limit_price:
|
|
964
|
-
sl_limit_price:
|
|
963
|
+
tp_limit_price: NumberLike | None = None,
|
|
964
|
+
sl_limit_price: NumberLike | None = None,
|
|
965
965
|
tp_order_type: str | None = None,
|
|
966
966
|
sl_order_type: str | None = None,
|
|
967
967
|
) -> dict:
|
|
@@ -1100,16 +1100,16 @@ class Client(BaseClient):
|
|
|
1100
1100
|
symbol: str,
|
|
1101
1101
|
tpsl_mode: str,
|
|
1102
1102
|
position_idx: int,
|
|
1103
|
-
take_profit:
|
|
1104
|
-
stop_loss:
|
|
1103
|
+
take_profit: NumberLike | None = None,
|
|
1104
|
+
stop_loss: NumberLike | None = None,
|
|
1105
1105
|
trailing_stop: str | None = None,
|
|
1106
1106
|
tp_trigger_by: str | None = None,
|
|
1107
1107
|
sl_trigger_by: str | None = None,
|
|
1108
|
-
active_price:
|
|
1109
|
-
tp_size:
|
|
1110
|
-
sl_size:
|
|
1111
|
-
tp_limit_price:
|
|
1112
|
-
sl_limit_price:
|
|
1108
|
+
active_price: NumberLike | None = None,
|
|
1109
|
+
tp_size: NumberLike | None = None,
|
|
1110
|
+
sl_size: NumberLike | None = None,
|
|
1111
|
+
tp_limit_price: NumberLike | None = None,
|
|
1112
|
+
sl_limit_price: NumberLike | None = None,
|
|
1113
1113
|
tp_order_type: str | None = None,
|
|
1114
1114
|
sl_order_type: str | None = None,
|
|
1115
1115
|
) -> dict:
|