60 lines
1.5 KiB
Python
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
|