From ce624fe5b2c05f6ddd649f33ad6ebabc7e975f55 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期五, 24 一月 2025 18:00:50 +0800 Subject: [PATCH] bug修复 --- l2/l2_limitup_sell_data_manager.py | 59 ++++++++++++++++++++++++++++++----------------------------- 1 files changed, 30 insertions(+), 29 deletions(-) diff --git a/l2/l2_limitup_sell_data_manager.py b/l2/l2_limitup_sell_data_manager.py index 6723696..d4406f9 100644 --- a/l2/l2_limitup_sell_data_manager.py +++ b/l2/l2_limitup_sell_data_manager.py @@ -3,6 +3,7 @@ """ from code_attribute import gpcode_manager from l2 import l2_log +from l2.l2_data_util import L2DataUtil from log_module import async_log_util, log_export from log_module.log import hx_logger_l2_sell_delegate, hx_logger_l2_sell_deal from utils import tool @@ -24,11 +25,11 @@ __delegating_sell_num_dict = {} @classmethod - def add_l2_origin_data(cls, code, origin_datas): + def add_l2_data(cls, code, add_datas): """ 娣诲姞L2濮旀墭鍘熷鏁版嵁 @param code: 浠g爜 - @param origin_datas: 鍘熷鏁版嵁 + @param add_datas: 鏂板鐨勬牸寮忓寲鏁版嵁 @return: """ try: @@ -40,25 +41,23 @@ cls.__delegating_sell_num_dict[code] = 0 limit_up_price = gpcode_manager.get_limit_up_price_as_num(code) - for d in origin_datas: - order_no, price, volume = d[8], d[1], d[2] - if price != limit_up_price: - continue - if d[9] == 'D': - if d[3] != '1': - # 鍗栨挙 - cls.__order_no_set_dict[code].discard(order_no) - cls.__delegating_sell_num_dict[code] -= volume - async_log_util.l2_data_log.info(hx_logger_l2_sell_delegate, - f"{code}-鍗栨挙-{(order_no, price, volume)}-{cls.__delegating_sell_num_dict[code]}") - else: - if d[3] != '1': - # 鍗� - cls.__order_no_data_map_dict[code][order_no] = (order_no, price, volume) - cls.__order_no_set_dict[code].add(order_no) - cls.__delegating_sell_num_dict[code] += volume - async_log_util.l2_data_log.info(hx_logger_l2_sell_delegate, - f"{code}-鍗�-{(order_no, price, volume)}-{cls.__delegating_sell_num_dict[code]}") + for d in add_datas: + val = d["val"] + if L2DataUtil.is_limit_up_price_sell(val): + # 鍗� + order_no, price, volume = val["orderNo"], val["price"], val["num"]*100 + cls.__order_no_data_map_dict[code][order_no] = (order_no, price, volume) + cls.__order_no_set_dict[code].add(order_no) + cls.__delegating_sell_num_dict[code] += volume + async_log_util.l2_data_log.info(hx_logger_l2_sell_delegate, + f"{code}-鍗�-{(order_no, price, volume)}-{cls.__delegating_sell_num_dict[code]}") + elif L2DataUtil.is_limit_up_price_sell_cancel(val): + # 鍗栨挙 + order_no, price, volume = val["orderNo"], val["price"], val["num"] * 100 + cls.__order_no_set_dict[code].discard(order_no) + cls.__delegating_sell_num_dict[code] -= volume + async_log_util.l2_data_log.info(hx_logger_l2_sell_delegate, + f"{code}-鍗栨挙-{(order_no, price, volume)}-{cls.__delegating_sell_num_dict[code]}") except: pass @@ -115,15 +114,15 @@ @param code: @return: """ - if code in cls.__order_no_set_dict: - cls.__order_no_set_dict.pop(code) + if cls.__order_no_set_dict.get(code): + cls.__order_no_set_dict[code].clear() - if code in cls.__order_no_data_map_dict: - cls.__order_no_data_map_dict.pop(code) + if cls.__order_no_data_map_dict.get(code): + cls.__order_no_data_map_dict[code].clear() - if code in cls.__delegating_sell_num_dict: - cls.__delegating_sell_num_dict.pop(code) - async_log_util.l2_data_log.info(hx_logger_l2_sell_deal, + if cls.__delegating_sell_num_dict.get(code): + cls.__delegating_sell_num_dict[code] = 0 + async_log_util.l2_data_log.info(hx_logger_l2_sell_delegate, f"鍑虹幇涓诲姩鍗栨竻闄ゆ暟鎹細{code}") @@ -144,4 +143,6 @@ fdatas.append(x) total_delegate = sum([x[2][2] for x in fdatas]) print(fdatas) - print("鎬诲鎵�", total_delegate, total_delegate*20.41) + for d in fdatas: + print(d) + print("鎬诲鎵�", total_delegate, total_delegate * 20.41) -- Gitblit v1.8.0