Update 订阅与聚合.py
Browse files
订阅与聚合.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
| 1 |
# -*- coding: utf-8 -*-
|
| 2 |
import asyncio
|
|
|
|
| 3 |
from 插件_行情.公共WS import OKX公共WS
|
| 4 |
from 插件_行情.类型定义 import 蜡烛
|
| 5 |
from 插件_行情.K线聚合器 import 多周期聚合器
|
|
@@ -11,7 +12,32 @@ from 插件_接口.上传接口 import 应用 as 上传服务应用 # 若要同
|
|
| 11 |
合约本.注册(合约('OKX', 'UXLINK-USDT-SWAP', 'UXLINK主连'))
|
| 12 |
合约本.注册(合约('OKX', 'GPS-USDT-SWAP', 'GPS主连'))
|
| 13 |
|
| 14 |
-
目标周期
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
|
| 16 |
async def 行情主任务():
|
| 17 |
# 为每个合约创建聚合器
|
|
|
|
| 1 |
# -*- coding: utf-8 -*-
|
| 2 |
import asyncio
|
| 3 |
+
import os, json
|
| 4 |
from 插件_行情.公共WS import OKX公共WS
|
| 5 |
from 插件_行情.类型定义 import 蜡烛
|
| 6 |
from 插件_行情.K线聚合器 import 多周期聚合器
|
|
|
|
| 12 |
合约本.注册(合约('OKX', 'UXLINK-USDT-SWAP', 'UXLINK主连'))
|
| 13 |
合约本.注册(合约('OKX', 'GPS-USDT-SWAP', 'GPS主连'))
|
| 14 |
|
| 15 |
+
def 推断目标周期():
|
| 16 |
+
base = [30, 60, 120, 240]
|
| 17 |
+
tf = None
|
| 18 |
+
env_tf = os.getenv('AUTO_TF')
|
| 19 |
+
if env_tf and str(env_tf).strip().isdigit():
|
| 20 |
+
tf = int(str(env_tf).strip())
|
| 21 |
+
else:
|
| 22 |
+
param_path = os.getenv('PARAM_JSON')
|
| 23 |
+
if param_path and os.path.exists(param_path):
|
| 24 |
+
try:
|
| 25 |
+
with open(param_path, 'r', encoding='utf-8') as f:
|
| 26 |
+
d = json.load(f)
|
| 27 |
+
for k in ('tf', 'period', '周期', 'bar_min', 'timeframe'):
|
| 28 |
+
v = d.get(k)
|
| 29 |
+
if isinstance(v, (int, float)) and int(v) > 0:
|
| 30 |
+
tf = int(v); break
|
| 31 |
+
if isinstance(v, str) and v.strip().isdigit():
|
| 32 |
+
tf = int(v.strip()); break
|
| 33 |
+
except Exception:
|
| 34 |
+
pass
|
| 35 |
+
if tf is None:
|
| 36 |
+
tf = 60
|
| 37 |
+
base.append(tf)
|
| 38 |
+
return sorted(set(base))
|
| 39 |
+
|
| 40 |
+
目标周期 = 推断目标周期() # 自动推断并与基础周期合并
|
| 41 |
|
| 42 |
async def 行情主任务():
|
| 43 |
# 为每个合约创建聚合器
|