From b946684114d097e937b766f986d12c7eea8edce8 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期日, 18 九月 2022 17:23:43 +0800 Subject: [PATCH] l2数据计算优化 --- l2_trade_factor.py | 46 +++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 41 insertions(+), 5 deletions(-) diff --git a/l2_trade_factor.py b/l2_trade_factor.py index 78b8438..e886d64 100644 --- a/l2_trade_factor.py +++ b/l2_trade_factor.py @@ -1,4 +1,7 @@ # l2浜ゆ槗鍥犲瓙 +import global_util + + class L2TradeFactorUtil: # 鑾峰彇鍩虹m鍊硷紝杩斿洖鍗曚綅涓哄厓 @classmethod @@ -93,15 +96,45 @@ # 鑷敱娴侀�氳偂鏈奖鍝嶆瘮渚� zyltgb_rate = cls.get_zylt_rate(zyltgb) # 琛屼笟娑ㄥ仠褰卞搷姣斾緥 - industry_rate = cls.get_industry_rate(total_industry_limit_percent) + industry_rate=0 + if total_industry_limit_percent is not None: + industry_rate = cls.get_industry_rate(total_industry_limit_percent) # 閲忓奖鍝嶆瘮渚� - volumn_rate=cls.get_volumn_rate(volumn_day60_max,volumn_yest,volumn_today) + volumn_rate = 0 + if volumn_day60_max is not None and volumn_yest is not None and volumn_today is not None: + volumn_rate = cls.get_volumn_rate(volumn_day60_max, volumn_yest, volumn_today) # 娑ㄥ仠鏃堕棿褰卞搷姣斾緥 - limit_up_time_rate=cls.get_limit_up_time_rate(limit_up_time) + limit_up_time_rate=0 + if limit_up_time is not None: + limit_up_time_rate = cls.get_limit_up_time_rate(limit_up_time) # 涓囨墜鍝ュ奖鍝� - big_money_rate=cls.get_big_money_rate(big_money_num) + big_money_rate = 0 + if big_money_num is not None: + big_money_rate = cls.get_big_money_rate(big_money_num) + print("zyltgb_rate锛歿} industry_rate锛歿} volumn_rate锛歿} limit_up_time_rate锛歿} big_money_rate锛歿}",zyltgb_rate,industry_rate,volumn_rate,limit_up_time_rate,big_money_rate) - return 1-(zyltgb_rate+industry_rate+volumn_rate+limit_up_time_rate+big_money_rate); + return 1 - (zyltgb_rate + industry_rate + volumn_rate + limit_up_time_rate + big_money_rate); + + @classmethod + def compute_rate_by_code(cls, code): + zyltgb = global_util.zyltgb_map.get(code) + total_industry_limit_percent = global_util.industry_hot_num.get(code) + volumn_day60_max, volumn_yest, volumn_today = global_util.max60_volumn.get( + code), global_util.yesterday_volumn.get(code), global_util.today_volumn.get(code) + limit_up_time = global_util.limit_up_time.get(code) + big_money_num = global_util.big_money_num.get(code) + return cls.compute_rate(zyltgb, total_industry_limit_percent, volumn_day60_max, volumn_yest, volumn_today, + limit_up_time, big_money_num) + + @classmethod + def compute_m_value(cls, code): + zyltgb = global_util.zyltgb_map.get(code) + if zyltgb is None: + print("娌℃湁鑾峰彇鍒拌嚜鐢辨祦閫氬競鍊�") + return 10000000 + rate = cls.compute_rate_by_code(code) + print("m鍊艰幏鍙栵細",code,round(zyltgb*rate)) + return round(zyltgb*rate) # l2鍥犲瓙褰掑洜鏁版嵁 @@ -109,6 +142,9 @@ # 鏄惁涓哄ぇ鍗� @classmethod def is_big_money(cls, data): + if int(data["val"]["limitPrice"]) != 1: + return False + if int(data["val"]["num"]) >= 9000: return True money = round(float(data["val"]["price"]) * int(data["val"]["num"]) * 100) -- Gitblit v1.8.0