Files
chan.py/Common/func_util.py
T
2025-06-10 01:16:09 +08:00

60 lines
1.5 KiB
Python

from .CEnum import BI_DIR, KL_TYPE
def kltype_lt_day(_type):
return _type in [KL_TYPE.K_1M, KL_TYPE.K_5M, KL_TYPE.K_15M, KL_TYPE.K_30M, KL_TYPE.K_60M]
def kltype_lte_day(_type):
return _type in [KL_TYPE.K_1M, KL_TYPE.K_5M, KL_TYPE.K_15M, KL_TYPE.K_30M, KL_TYPE.K_60M, KL_TYPE.K_DAY]
def check_kltype_order(type_list: list):
_dict = {
KL_TYPE.K_1M: 1,
KL_TYPE.K_3M: 2,
KL_TYPE.K_5M: 3,
KL_TYPE.K_15M: 4,
KL_TYPE.K_30M: 5,
KL_TYPE.K_60M: 6,
KL_TYPE.K_4H: 7, # 4小时
KL_TYPE.K_6H: 8, # 6小时
KL_TYPE.K_8H: 9, # 8小时
KL_TYPE.K_12H: 10, # 12小时
KL_TYPE.K_DAY: 11,
KL_TYPE.K_3DAY: 12, # 3日线
KL_TYPE.K_WEEK: 13,
KL_TYPE.K_MON: 14,
KL_TYPE.K_QUARTER: 15,
KL_TYPE.K_YEAR: 16,
}
last_lv = float("inf")
for kl_type in type_list:
cur_lv = _dict[kl_type]
assert cur_lv < last_lv, "lv_list的顺序必须从大级别到小级别"
last_lv = cur_lv
def revert_bi_dir(dir):
return BI_DIR.DOWN if dir == BI_DIR.UP else BI_DIR.UP
def has_overlap(l1, h1, l2, h2, equal=False):
return h2 >= l1 and h1 >= l2 if equal else h2 > l1 and h1 > l2
def str2float(s):
try:
return float(s)
except ValueError:
return 0.0
def _parse_inf(v):
if type(v) == float:
if v == float("inf"):
v = 'float("inf")'
if v == float("-inf"):
v = 'float("-inf")'
return v