From 2f2516749615da866e96d8d24e499b7ecbb63a3e Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期一, 23 六月 2025 12:28:52 +0800 Subject: [PATCH] 默认交易模式变更/真实下单位置计算位置修改 --- l2/l2_data_source_util.py | 69 +++++++++++++++++++++++++++++----- 1 files changed, 58 insertions(+), 11 deletions(-) diff --git a/l2/l2_data_source_util.py b/l2/l2_data_source_util.py index 85893f6..4288c1b 100644 --- a/l2/l2_data_source_util.py +++ b/l2/l2_data_source_util.py @@ -2,6 +2,7 @@ L2鏁版嵁婧簮 """ import constant +from log_module.log import logger_l2_error from utils import tool @@ -65,7 +66,7 @@ for bd in buy_datas: # 鏍规嵁璁㈠崟鍙峰仛鍖归厤 if bd["val"]["orderNo"] == cancel_data["val"]["orderNo"]: - return bd + return bd["index"] return None # 鍚岃姳椤烘笭閬撶殑L2锛屾牴鎹拱鎾ゆ暟鎹煡鎵句拱鍏ユ暟鎹� @@ -124,15 +125,26 @@ def get_buy_index_with_cancel_data(cls, code, cancel_data, local_today_num_operate_map): key = "{}-{}-{}".format(cancel_data["val"]["num"], "1", cancel_data["val"]["price"]) cancel_datas = local_today_num_operate_map.get(key) - try: - cancel_datas.sort(key=lambda t: t["index"]) - except Exception as e: - print("娴嬭瘯") - for item in cancel_datas: - # 鎻愬墠鍋氳绠� - cls.__get_buy_index_with_cancel_data(code, item, local_today_num_operate_map) + if cancel_datas: + try: + cancel_datas.sort(key=lambda t: t["index"]) + except Exception as e: + # print("娴嬭瘯") + pass + for item in cancel_datas: + # 鎻愬墠鍋氳绠� + cls.__get_buy_index_with_cancel_data(code, item, local_today_num_operate_map) return cls.__get_buy_index_with_cancel_data(code, cancel_data, local_today_num_operate_map) + + # 鏍规嵁涔版挙鏁版嵁璁$畻涔板叆鏁版嵁锛堝崕閼師鐢烲2鏁版嵁閫傜敤锛� + @classmethod + def get_buy_index_with_cancel_data_v2(cls, cancel_data, buyno_map): + order_no = str(cancel_data["val"]["orderNo"]) + buy_data = buyno_map.get(order_no) + if buy_data: + return buy_data["index"] + return None # 鑾峰彇娌℃挙鐨勭瑪鏁� @classmethod @@ -140,8 +152,8 @@ data = None try: data = total_data[index] - except: - print("") + except Exception as e: + logger_l2_error.error(f"鏈壘鍒颁拱鍏ョ储寮曞搴旂殑鏁版嵁锛歩ndex-{index} total_data闀垮害-{len(total_data) if total_data else 0} 閿欒鍘熷洜锛歿str(e)}") val = data["val"] # 鍒ゆ柇褰撳墠涔版槸鍚﹀凡缁忎拱鎾� cancel_datas = local_today_num_operate_map.get( @@ -149,7 +161,6 @@ canceled = False if cancel_datas: for cancel_data in cancel_datas: - buy_index = cls.get_buy_index_with_cancel_data(code, cancel_data, local_today_num_operate_map) if buy_index == index: canceled = True @@ -162,6 +173,42 @@ return count return 0 + # 鑾峰彇娌℃挙鐨勭瑪鏁� + + # 鑾峰彇娑ㄥ仠涔版病鏈夋挙鍗曠殑鏁伴噺 + @classmethod + def get_limit_up_buy_no_canceled_count_v2(cls, code, index, total_data, canceled_buyno_map): + data = None + try: + data = total_data[index] + except Exception as e: + logger_l2_error.error( + f"鏈壘鍒颁拱鍏ョ储寮曞搴旂殑鏁版嵁锛歩ndex-{index} total_data闀垮害-{len(total_data) if total_data else 0} 閿欒鍘熷洜锛歿str(e)}") + val = data["val"] + order_no = str(val["orderNo"]) + canceled_data = canceled_buyno_map.get(order_no) + if canceled_data: + return data["re"] - canceled_data["re"] + else: + return data["re"] + + @classmethod + def get_limit_up_buy_canceled_data_v2(cls, code, index, total_data, canceled_buyno_map): + data = None + try: + data = total_data[index] + except Exception as e: + logger_l2_error.error( + f"鏈壘鍒颁拱鍏ョ储寮曞搴旂殑鏁版嵁锛歩ndex-{index} total_data闀垮害-{len(total_data) if total_data else 0} 閿欒鍘熷洜锛歿str(e)}") + val = data["val"] + order_no = str(val["orderNo"]) + canceled_data = canceled_buyno_map.get(order_no) + if canceled_data: + return canceled_data + else: + return None + + # if __name__ == "__main__": # code = "000925" # l2_data_util.load_l2_data(code) -- Gitblit v1.8.0