From 21d753614ea7bbe936b8560cbf466c4e438821b2 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期五, 23 九月 2022 16:08:16 +0800 Subject: [PATCH] l2数据计算优化 --- l2_data_util.py | 24 +++++++++++++++--------- 1 files changed, 15 insertions(+), 9 deletions(-) diff --git a/l2_data_util.py b/l2_data_util.py index 908ffcd..65ac266 100644 --- a/l2_data_util.py +++ b/l2_data_util.py @@ -42,7 +42,7 @@ local_today_num_operate_map[code] = {} for data in source_datas: - key = "{}-{}".format(data["val"]["num"], data["val"]["operateType"]) + key = "{}-{}-{}".format(data["val"]["num"], data["val"]["operateType"],data["val"]["price"]) if local_today_num_operate_map[code].get(key) is None: local_today_num_operate_map[code].setdefault(key, []) local_today_num_operate_map[code].get(key).append(data) @@ -81,13 +81,13 @@ # 鏍规嵁涔版挙鏁版嵁(涓庝粖鏃ユ�荤殑鏁版嵁)璁$畻涔板叆鏁版嵁 -def get_buy_data_with_cancel_data(cancel_data,local_today_num_operate_map): +def get_buy_data_with_cancel_data(cancel_data, local_today_num_operate_map): # 璁$畻鏃堕棿鍖洪棿 min_space, max_space = __compute_time_space_as_second(cancel_data["val"]["cancelTime"], cancel_data["val"]["cancelTimeUnit"]) max_time = __sub_time(cancel_data["val"]["time"], min_space) min_time = __sub_time(cancel_data["val"]["time"], max_space) - buy_datas = local_today_num_operate_map.get("{}-{}".format(cancel_data["val"]["num"], "0")) + buy_datas = local_today_num_operate_map.get("{}-{}-{}".format(cancel_data["val"]["num"], "0",cancel_data["val"]["price"])) if buy_datas is None: # 鏃犳暟鎹� return None, None @@ -97,7 +97,11 @@ continue if int(data["val"]["num"]) != int(cancel_data["val"]["num"]): continue - if compare_time(data["val"]["time"], min_time) > 0 and compare_time(data["val"]["time"], max_time) <= 0: + if min_space == 0 and max_space == 0: + if compare_time(data["val"]["time"], min_time) == 0: + return data["index"], data + + elif compare_time(data["val"]["time"], min_time) > 0 and compare_time(data["val"]["time"], max_time) <= 0: return data["index"], data return None, None @@ -107,6 +111,7 @@ @async_call def save_big_data(code, same_time_nums, datas): + return None latest_datas = __last_big_data.get(code) d1 = json.dumps(datas) d2 = json.dumps(latest_datas) @@ -118,7 +123,7 @@ for i in range(len(d1)): if d1[i] != d2[i]: # 淇濆瓨蹇収 - logger_l2_big_data.debug("code:{} d1:{} d2:{}", code, d1[i - 60: i + 30], d2[i - 60: i + 30]) + # logger_l2_big_data.debug("code:{} d1:{} d2:{}", code, d1[i - 60: i + 30], d2[i - 60: i + 30]) break for key in same_time_nums: @@ -137,7 +142,8 @@ # today_datas=[{"val": {"operateType": 1, "num": 1520, "cancelTime": 1, "cancelTimeUnit": 0, "time": "09:32:30"}},{"val": {"operateType": 0, "num": 1520, "cancelTime": 0, "cancelTimeUnit": 0, "time": "09:31:31"}}] # result= get_buy_data_with_cancel_data(cancel_data,today_datas) # print(result) - redis = l2_data_manager._redisManager.getRedis() - keys = redis.keys("big_data-*") - for k in keys: - redis.delete(k) + code = "001209" + l2_data_manager.load_l2_data(code) + total_datas = l2_data_manager.local_today_datas[code] + index, data = get_buy_data_with_cancel_data(total_datas[118], l2_data_manager.local_today_num_operate_map.get(code)) + print(index, data) -- Gitblit v1.8.0