From bcf69d0d6589c0ee39c77326e8fb2d4bcbb144ed Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期三, 03 四月 2024 16:53:42 +0800 Subject: [PATCH] bug修改 --- l2/l2_data_util.py | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 54 insertions(+), 0 deletions(-) diff --git a/l2/l2_data_util.py b/l2/l2_data_util.py index 376767d..9e25c1d 100644 --- a/l2/l2_data_util.py +++ b/l2/l2_data_util.py @@ -33,6 +33,9 @@ # 涔板叆璁㈠崟鍙锋槧灏�,鍙湁鍘熺敓鐨凩2鏁版嵁鎵嶆湁 local_today_buyno_map = {} +# 鍗栧嚭璁㈠崟鍙锋槧灏勶紝鍙湁鍘熺敓鐨凩2鏁版嵁鎵嶆湁 +local_today_sellno_map = {} + # 宸茬粡鎾ゅ崟鐨勮鍗曞彿 local_today_canceled_buyno_map = {} @@ -74,9 +77,41 @@ # 鏍规嵁浠婃棩鏁版嵁鍔犺浇 load_num_operate_map(local_today_num_operate_map, code, local_today_datas.get(code), force) load_buy_no_map(local_today_buyno_map, code, local_today_datas.get(code), force) + load_sell_no_map(local_today_sellno_map, code, local_today_datas.get(code), force) load_canceled_buy_no_map(local_today_canceled_buyno_map, code, local_today_datas.get(code), force) return data_normal return True + + +# L2鏁版嵁鏄惁姝e父 +def l2_data_is_normal(code): + datas = local_today_datas.get(code) + if not datas: + # 鍒濆鍖� + local_today_datas[code] = [] + load_num_operate_map(local_today_num_operate_map, code, local_today_datas.get(code)) + load_buy_no_map(local_today_buyno_map, code, local_today_datas.get(code)) + load_sell_no_map(local_today_sellno_map, code, local_today_datas.get(code)) + load_canceled_buy_no_map(local_today_canceled_buyno_map, code, local_today_datas.get(code)) + + if datas and len(datas) < datas[-1]["index"] + 1: + return False + return True + + +# 鍔犺浇鎵�鏈夌殑l2鏁版嵁 +def load_l2_data_all(force=False): + datas = log_export.load_l2_from_log() + for code in datas: + if force: + local_today_datas[code] = datas[code] + else: + if code not in local_today_datas: + local_today_datas[code] = datas[code] + load_num_operate_map(local_today_num_operate_map, code, local_today_datas.get(code), force) + load_buy_no_map(local_today_buyno_map, code, local_today_datas.get(code), force) + load_sell_no_map(local_today_sellno_map, code, local_today_datas.get(code), force) + load_canceled_buy_no_map(local_today_canceled_buyno_map, code, local_today_datas.get(code), force) # 灏嗘暟鎹牴鎹畁um-operate鍒嗙被 @@ -112,6 +147,25 @@ local_today_buyno_map[code].setdefault(key, data) +# 灏嗘暟鎹牴鎹畂rderNo鍒嗙被,鍘熺敓鏁版嵁鎵嶆湁 +def load_sell_no_map(local_today_sellno_map, code, source_datas, clear=False): + # 鍙湁鍘熺敓L2鏁版嵁鎵嶄細鏈夋鎿嶄綔 + if constant.L2_SOURCE_TYPE != constant.L2_SOURCE_TYPE_HUAXIN: + return + if local_today_sellno_map.get(code) is None: + local_today_sellno_map[code] = {} + if clear: + local_today_sellno_map[code] = {} + + for data in source_datas: + if data["val"]["operateType"] != 2: + continue + # 鍙~鍏呬拱鍏ユ暟鎹� + key = "{}".format(data["val"]["orderNo"]) + if local_today_sellno_map[code].get(key) is None: + local_today_sellno_map[code].setdefault(key, data) + + # 灏嗘暟鎹牴鎹畂rderNo鍒嗙被宸叉挙璁㈠崟,鍘熺敓鏁版嵁鎵嶆湁 def load_canceled_buy_no_map(local_today_canceled_buyno_map, code, source_datas, clear=False): # 鍙湁鍘熺敓L2鏁版嵁鎵嶄細鏈夋鎿嶄綔 -- Gitblit v1.8.0