hyperquant 1.1__py3-none-any.whl → 1.2__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.
hyperquant/broker/bitmart.py
CHANGED
|
@@ -510,3 +510,101 @@ class Bitmart:
|
|
|
510
510
|
if resp.get("success") is False or resp.get("errno") not in (None, "OK"):
|
|
511
511
|
raise ValueError(f"Bitmart cancelOrders error: {resp}")
|
|
512
512
|
return resp
|
|
513
|
+
|
|
514
|
+
async def get_leverage(
|
|
515
|
+
self,
|
|
516
|
+
*,
|
|
517
|
+
symbol: str | None = None,
|
|
518
|
+
contract_id: int | str | None = None,
|
|
519
|
+
) -> dict[str, Any]:
|
|
520
|
+
"""
|
|
521
|
+
获取指定合约的杠杆信息(可通过 contract_id 或 symbol 查询)。
|
|
522
|
+
|
|
523
|
+
参数:
|
|
524
|
+
symbol (str | None): 合约符号,例如 "BTCUSDT"。如果未传入 contract_id,则会自动解析。
|
|
525
|
+
contract_id (int | str | None): 合约 ID,可直接指定。
|
|
526
|
+
|
|
527
|
+
返回:
|
|
528
|
+
dict[str, Any]: 杠杆信息字典,典型返回结构如下:
|
|
529
|
+
{
|
|
530
|
+
"contract_id": 1,
|
|
531
|
+
"leverage": 96, # 当前杠杆倍数
|
|
532
|
+
"open_type": 2, # 开仓类型 (1=全仓, 2=逐仓)
|
|
533
|
+
"max_leverage": {
|
|
534
|
+
"contract_id": 1,
|
|
535
|
+
"leverage": "200", # 最大可用杠杆倍数
|
|
536
|
+
"open_type": 0,
|
|
537
|
+
"imr": "0.005", # 初始保证金率
|
|
538
|
+
"mmr": "0.0025", # 维持保证金率
|
|
539
|
+
"value": "0"
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
异常:
|
|
544
|
+
ValueError: 当未提供 symbol 或 contract_id,或接口返回错误时抛出。
|
|
545
|
+
|
|
546
|
+
示例:
|
|
547
|
+
data = await bitmart.get_leverage(symbol="BTCUSDT")
|
|
548
|
+
print(data["leverage"]) # 输出当前杠杆倍数
|
|
549
|
+
"""
|
|
550
|
+
if contract_id is None:
|
|
551
|
+
if symbol is not None:
|
|
552
|
+
contract_id = self.get_contract_id(symbol)
|
|
553
|
+
if contract_id is None:
|
|
554
|
+
raise ValueError("Either contract_id or a valid symbol must be provided to get leverage info.")
|
|
555
|
+
res = await self.client.get(
|
|
556
|
+
f"{self.forward_api}/v1/ifcontract/getLeverage",
|
|
557
|
+
params={"contract_id": contract_id},
|
|
558
|
+
)
|
|
559
|
+
resp = await res.json()
|
|
560
|
+
if resp.get("success") is False or resp.get("errno") not in (None, "OK"):
|
|
561
|
+
raise ValueError(f"Bitmart getLeverage error: {resp}")
|
|
562
|
+
return resp.get("data")
|
|
563
|
+
|
|
564
|
+
async def bind_leverage(
|
|
565
|
+
self,
|
|
566
|
+
*,
|
|
567
|
+
symbol: str | None = None,
|
|
568
|
+
contract_id: int | str | None = None,
|
|
569
|
+
leverage: int | str,
|
|
570
|
+
open_type: Literal[1, 2] = 2,
|
|
571
|
+
) -> None:
|
|
572
|
+
"""
|
|
573
|
+
绑定(设置)指定合约的杠杆倍数。
|
|
574
|
+
|
|
575
|
+
参数:
|
|
576
|
+
symbol (str | None): 合约符号,例如 "BTCUSDT"。若未传入 contract_id,会自动解析。
|
|
577
|
+
contract_id (int | str | None): 合约 ID,可直接指定。
|
|
578
|
+
leverage (int | str): 要设置的杠杆倍数,如 20、50、100。
|
|
579
|
+
open_type (int): 开仓模式,1=全仓(Cross),2=逐仓(Isolated)。
|
|
580
|
+
|
|
581
|
+
返回:
|
|
582
|
+
None — 如果接口调用成功,不返回任何内容。
|
|
583
|
+
若失败则抛出 ValueError。
|
|
584
|
+
|
|
585
|
+
异常:
|
|
586
|
+
ValueError: 当未提供 symbol 或 contract_id,或接口返回错误时抛出。
|
|
587
|
+
|
|
588
|
+
示例:
|
|
589
|
+
await bitmart.bind_leverage(symbol="BTCUSDT", leverage=50, open_type=2)
|
|
590
|
+
"""
|
|
591
|
+
if contract_id is None:
|
|
592
|
+
if symbol is not None:
|
|
593
|
+
contract_id = self.get_contract_id(symbol)
|
|
594
|
+
if contract_id is None:
|
|
595
|
+
raise ValueError("Either contract_id or a valid symbol must be provided to bind leverage.")
|
|
596
|
+
|
|
597
|
+
payload = {
|
|
598
|
+
"contract_id": int(contract_id),
|
|
599
|
+
"leverage": leverage,
|
|
600
|
+
"open_type": open_type,
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
res = await self.client.post(
|
|
604
|
+
f"{self.forward_api}/v1/ifcontract/bindLeverage",
|
|
605
|
+
json=payload,
|
|
606
|
+
)
|
|
607
|
+
resp = await res.json()
|
|
608
|
+
if resp.get("success") is False or resp.get("errno") not in (None, "OK"):
|
|
609
|
+
raise ValueError(f"Bitmart bindLeverage error: {resp}")
|
|
610
|
+
return None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hyperquant
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.2
|
|
4
4
|
Summary: A minimal yet hyper-efficient backtesting framework for quantitative trading
|
|
5
5
|
Project-URL: Homepage, https://github.com/yourusername/hyperquant
|
|
6
6
|
Project-URL: Issues, https://github.com/yourusername/hyperquant/issues
|
|
@@ -6,7 +6,7 @@ hyperquant/logkit.py,sha256=nUo7nx5eONvK39GOhWwS41zNRL756P2J7-5xGzwXnTY,8462
|
|
|
6
6
|
hyperquant/notikit.py,sha256=x5yAZ_tAvLQRXcRbcg-VabCaN45LUhvlTZnUqkIqfAA,3596
|
|
7
7
|
hyperquant/broker/auth.py,sha256=C8B5-x8Qcaeafm4ZwPCVFR7GRURmHC3CE4_vdg00Qgw,12139
|
|
8
8
|
hyperquant/broker/bitget.py,sha256=X_S0LKZ7FZAEb6oEMr1vdGP1fondzK74BhmNTpRDSEA,9488
|
|
9
|
-
hyperquant/broker/bitmart.py,sha256=
|
|
9
|
+
hyperquant/broker/bitmart.py,sha256=wHot_CwaRNituj0Rpn60Kv5bU5YQquDIMPDFzlzbFws,21443
|
|
10
10
|
hyperquant/broker/coinup.py,sha256=eOr8BTRXiTb5tCU2FDmvBdXXgqiwVmCbP5pdeA1ORJ8,20390
|
|
11
11
|
hyperquant/broker/coinw.py,sha256=SnJU0vASh77rfcpMGWaIfTblQSjQk3vjlW_4juYdbcs,17214
|
|
12
12
|
hyperquant/broker/edgex.py,sha256=TqUO2KRPLN_UaxvtLL6HnA9dAQXC1sGxOfqTHd6W5k8,18378
|
|
@@ -32,6 +32,6 @@ hyperquant/datavison/_util.py,sha256=92qk4vO856RqycO0YqEIHJlEg-W9XKapDVqAMxe6rbw
|
|
|
32
32
|
hyperquant/datavison/binance.py,sha256=3yNKTqvt_vUQcxzeX4ocMsI5k6Q6gLZrvgXxAEad6Kc,5001
|
|
33
33
|
hyperquant/datavison/coinglass.py,sha256=PEjdjISP9QUKD_xzXNzhJ9WFDTlkBrRQlVL-5pxD5mo,10482
|
|
34
34
|
hyperquant/datavison/okx.py,sha256=yg8WrdQ7wgWHNAInIgsWPM47N3Wkfr253169IPAycAY,6898
|
|
35
|
-
hyperquant-1.
|
|
36
|
-
hyperquant-1.
|
|
37
|
-
hyperquant-1.
|
|
35
|
+
hyperquant-1.2.dist-info/METADATA,sha256=sWjVioqvlZhhPPOx0AiD6t29SR4xXRR56ebM09hhLKM,4408
|
|
36
|
+
hyperquant-1.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
37
|
+
hyperquant-1.2.dist-info/RECORD,,
|
|
File without changes
|