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