From 0e921bc8d68e830f15bb049dfb84b22bc05db788 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期四, 15 八月 2024 09:49:50 +0800 Subject: [PATCH] bug修复 --- utils/data_export_util.py | 48 ++++++++++++++++++++++++++---------------------- 1 files changed, 26 insertions(+), 22 deletions(-) diff --git a/utils/data_export_util.py b/utils/data_export_util.py index e5d2ab7..8e3137d 100644 --- a/utils/data_export_util.py +++ b/utils/data_export_util.py @@ -43,16 +43,19 @@ datas = local_today_datas.get(code) if not datas: datas = [] - logger_debug.info("鍔犺浇L2閫愮瑪濮旀墭鑰楁椂锛歿}", f"{(time.time() - __start_time)}") - __start_time = time.time() - process_indexs = log_export.get_l2_process_position(code, date) - logger_debug.info("鍔犺浇L2閫愮瑪濮旀墭鎵规鑰楁椂锛歿}", f"{(time.time() - __start_time)}") - __start_time = time.time() - trade_indexs = log_export.get_l2_trade_position(code, date) - real_position_indexes = log_export.get_real_place_order_positions(code, date) - deal_list = log_export.load_huaxin_deal_record(code, date) - logger_debug.info("鍔犺浇鍏朵粬浜ゆ槗鍙傛暟鑰楁椂锛歿}", f"{(time.time() - __start_time)}") - __start_time = time.time() + if not datas: + # 鍔犲揩娌℃湁L2鏁版嵁鐨勫鍑洪�熷害 + process_indexs = [] + trade_indexs = [] + real_position_indexes = [] + deal_list = [] + cancel_reasons = {} + else: + process_indexs = log_export.get_l2_process_position(code, date) + trade_indexs = log_export.get_l2_trade_position(code, date) + real_position_indexes = log_export.get_real_place_order_positions(code, date) + deal_list = log_export.load_huaxin_deal_record(code, date) + cancel_reasons = log_export.load_cancel_buy_reasons(code, date) deal_list_dict = {} for d in deal_list: deal_list_dict[str(d[0])] = d @@ -61,14 +64,10 @@ sell_nos = sell_no_dict.get(code) active_sell_map = log_export.load_huaxin_active_sell_map(date=date) active_sell_set = active_sell_map.get(code) - logger_debug.info("鍔犺浇鍗栧崟鑰楁椂锛歿}", f"{(time.time() - __start_time)}") - __start_time = time.time() if not active_sell_set: active_sell_set = set() fdatas = export_l2_data(code, datas, process_indexs, trade_indexs, real_position_indexes, deal_list_dict, sell_nos, - active_sell_set) - logger_debug.info("缁勮鏁版嵁鑰楁椂锛歿}", f"{(time.time() - __start_time)}") - __start_time = time.time() + active_sell_set, cancel_reasons) return fdatas @@ -82,7 +81,7 @@ def export_l2_data(code, datas, process_indexs, trade_indexs, real_position_indexes, deal_list_dict, sell_nos, - active_sell_nos): + active_sell_nos, cancel_reasons): def find_process_index(index): for i in range(0, len(process_indexs)): if process_indexs[i][0] <= index <= process_indexs[i][1]: @@ -94,20 +93,15 @@ if trade_indexs[i][1] == index: return trade_indexs[i] return None - logger_debug.info("鍑嗗鍔犺浇L2Map鏁版嵁-----") + # 鏁版嵁棰勫鐞� num_operate_map = {} l2.l2_data_util.load_num_operate_map(num_operate_map, code, datas) - logger_debug.info("load_num_operate_map") - buy_no_map = {} sell_no_map = {} l2.l2_data_util.load_buy_no_map(buy_no_map, code, datas) - logger_debug.info("load_buy_no_map") l2.l2_data_util.load_sell_no_map(sell_no_map, code, datas) - logger_debug.info("load_sell_no_map") l2.l2_data_util.load_canceled_buy_no_map(l2.l2_data_util.local_today_canceled_buyno_map, code, datas) - logger_debug.info("load_canceled_buy_no_map") # num_dict = {} # for data in datas: # if data["val"]["num"] not in num_dict: @@ -116,8 +110,14 @@ logger_debug.info(f"寰幆缁勮鏁版嵁寮�濮嬶細闀垮害-{len(datas)} 涓诲姩鍗栭暱搴�-{len(active_sell_nos)}") index = 0 fdatas = [] + # 鏁版嵁澶灏遍渶瑕佽繃婊ゆ帀灏忛噾棰� + is_data_too_large = len(datas) > 20000 for data in datas: index += 1 + if is_data_too_large and data['val']['num'] * float(data['val']['price']) < 5000: + if data["index"] not in real_position_indexes: + continue + # 鍏堢Щ闄� if data['val']['orderNo'] in active_sell_nos: # 杩囨护涓诲姩鍗� @@ -227,6 +227,10 @@ elif trade_info[0] == 2: # font.colour_index = 10 cancel_order_info = trade_info[2] + if not cancel_order_info: + if data["index"] in cancel_reasons: + cancel_order_info = cancel_reasons[data["index"]] + format_data.append(cancel_order_info) format_data.append(data["val"].get("orderNo")) fdatas.append((style_int, trade_info, format_data)) -- Gitblit v1.8.0