1oscon commited on
Commit
5af0c4d
·
verified ·
1 Parent(s): be3597a

Upload 合约登记簿.py

Browse files
Files changed (1) hide show
  1. 插件_资产/合约登记簿.py +32 -0
插件_资产/合约登记簿.py ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- coding: utf-8 -*-
2
+ from __future__ import annotations
3
+ from dataclasses import dataclass, asdict
4
+ from typing import Dict, Optional, List
5
+
6
+ @dataclass
7
+ class 合约:
8
+ 交易所: str # 'OKX'
9
+ 合约ID: str # 'BTC-USDT-SWAP'
10
+ 别名: str # 如 '主力BTC'
11
+ 价格精度: int = 4
12
+ 数量精度: int = 0
13
+ 最小张数: float = 1.0
14
+ 备注: str = ''
15
+
16
+ class 合约登记簿:
17
+ def __init__(self):
18
+ self._按ID: Dict[str, 合约] = {}
19
+ self._按别名: Dict[str, 合约] = {}
20
+
21
+ def 注册(self, 合: 合约):
22
+ self._按ID[合.合约ID] = 合
23
+ if 合.别名: self._按别名[合.别名] = 合
24
+
25
+ def 按ID(self, 合约ID: str) -> Optional[合约]:
26
+ return self._按ID.get(合约ID)
27
+
28
+ def 按别名(self, 别名: str) -> Optional[合约]:
29
+ return self._按别名.get(别名)
30
+
31
+ def 列表(self) -> List[dict]:
32
+ return [asdict(x) for x in self._按ID.values()]