68 lines
2.7 KiB
Python
68 lines
2.7 KiB
Python
|
import numpy as np
|
||
|
|
||
|
|
||
|
def check_buy_exclude(buy_exclude):
|
||
|
buy_exclude_dict = dict()
|
||
|
# 检查剔除条件
|
||
|
for cond in ['amt_20', 'list_days', 'mkt', 'price']:
|
||
|
if cond == 'amt_20':
|
||
|
# 20日成交量均值
|
||
|
if cond in buy_exclude:
|
||
|
amt_exclude = buy_exclude[cond]
|
||
|
else:
|
||
|
buy_exclude[cond] = (0, np.inf)
|
||
|
continue
|
||
|
if isinstance(buy_exclude[cond], (set,list,tuple)):
|
||
|
if len(amt_exclude) == 1:
|
||
|
buy_exclude_dict[cond] = (amt_exclude[0], np.inf)
|
||
|
else:
|
||
|
buy_exclude_dict[cond] = (amt_exclude[0], amt_exclude[1])
|
||
|
else:
|
||
|
raise Exception('wrong input type for buy exclude: amt_20, `set`, `list` or `tuple` is required')
|
||
|
|
||
|
if cond == 'list_days':
|
||
|
# 上市时间
|
||
|
if cond in buy_exclude:
|
||
|
list_exclude = buy_exclude[cond]
|
||
|
else:
|
||
|
buy_exclude[cond] = (0, np.inf)
|
||
|
continue
|
||
|
if isinstance(buy_exclude[cond], (set,list,tuple)):
|
||
|
if len(list_exclude) == 1:
|
||
|
buy_exclude_dict[cond] = (list_exclude[0], np.inf)
|
||
|
else:
|
||
|
buy_exclude_dict[cond] = (list_exclude[0], list_exclude[1])
|
||
|
else:
|
||
|
raise Exception('wrong input type for buy exclude: list_days, `set`, `list` or `tuple` is required')
|
||
|
|
||
|
if cond == 'mkt':
|
||
|
# 市值
|
||
|
if cond in buy_exclude:
|
||
|
mkt_exclude = buy_exclude[cond]
|
||
|
else:
|
||
|
buy_exclude[cond] = (0, np.inf)
|
||
|
continue
|
||
|
if isinstance(buy_exclude[cond], (set,list,tuple)):
|
||
|
if len(mkt_exclude) == 1:
|
||
|
buy_exclude_dict[cond] = (mkt_exclude[0], np.inf)
|
||
|
else:
|
||
|
buy_exclude_dict[cond] = (mkt_exclude[0], mkt_exclude[1])
|
||
|
else:
|
||
|
raise Exception('wrong input type for buy exclude: mkt, `set`, `list` or `tuple` is required')
|
||
|
|
||
|
if cond == 'price':
|
||
|
# 价格
|
||
|
if cond in buy_exclude:
|
||
|
price_exclude = buy_exclude[cond]
|
||
|
else:
|
||
|
buy_exclude[cond] = (0, np.inf)
|
||
|
continue
|
||
|
if isinstance(buy_exclude[cond], (set,list,tuple)):
|
||
|
if len(price_exclude) == 1:
|
||
|
buy_exclude_dict[cond] = (price_exclude[0], np.inf)
|
||
|
else:
|
||
|
buy_exclude_dict[cond] = (price_exclude[0], price_exclude[1])
|
||
|
else:
|
||
|
raise Exception('wrong input type for buy exclude: price, `set`, `list` or `tuple` is required')
|
||
|
|
||
|
return buy_exclude_dict
|