From b664371ed6ee1da20af2e132426d70b3bfc66566 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期一, 01 四月 2024 13:47:10 +0800 Subject: [PATCH] bug修复 --- l2/l2_transaction_data_manager.py | 28 ++++++++++++++++------------ 1 files changed, 16 insertions(+), 12 deletions(-) diff --git a/l2/l2_transaction_data_manager.py b/l2/l2_transaction_data_manager.py index c065ade..c80396f 100644 --- a/l2/l2_transaction_data_manager.py +++ b/l2/l2_transaction_data_manager.py @@ -7,7 +7,7 @@ from db.redis_manager_delegate import RedisUtils from l2 import l2_log from l2.huaxin import l2_huaxin_util -from l2.l2_data_util import local_today_sellno_map +from l2.l2_data_util import local_today_sellno_map, local_today_datas from log_module import async_log_util from log_module.log import hx_logger_l2_transaction_desc, hx_logger_l2_transaction_sell_order @@ -104,7 +104,7 @@ # 杩斿洖鏈�杩�1s鐨勫ぇ鍗曞崠锛�(鎬诲崠閲戦,[(鍗栧崟鍙�,鎬绘墜鏁�,浠锋牸,锛�'寮�濮嬫椂闂�',涔板崟鍙凤級,锛�'缁撴潫鏃堕棿',涔板崟鍙凤級),...]) @classmethod - def add_transaction_datas(cls, code, datas): + def add_transaction_datas(cls, code, datas, buy_exec_index=None): # q.append((data['SecurityID'], data['TradePrice'], data['TradeVolume'], # data['OrderTime'], data['MainSeq'], data['SubSeq'], data['BuyNo'], # data['SellNo'], data['ExecType'])) @@ -119,11 +119,10 @@ cls.__big_sell_order_info_list_dict[code] = [] sell_no_map = local_today_sellno_map.get(code) + total_datas = local_today_datas.get(code) if not sell_no_map: sell_no_map = {} for d in datas: - if f"{d[7]}" in sell_no_map: - continue cls.__latest_sell_order_info_list_dict[code].append(d) if code not in cls.__latest_sell_order_dict: cls.__latest_sell_order_dict[code] = [d[7], d[2], d[1], (d[3], d[6]), (d[3], d[6])] @@ -139,10 +138,13 @@ # 澶т簬50w鐨勫崠鍗曟墠浼氫繚瀛� # 澶т簬50w鍔犲叆鍗栧崟 if info[1] * info[2] >= 500000: - l2_log.info(code, hx_logger_l2_transaction_sell_order, f"{cls.__latest_sell_order_dict[code]}") - cls.__big_sell_order_ids_dict[code].add(info[0]) - cls.__big_sell_order_info_dict[code][info[0]] = info - cls.__big_sell_order_info_list_dict[code].append(info) + if f"{info[0]}" not in sell_no_map or (buy_exec_index is not None and info[0] > int( + total_datas[buy_exec_index]["val"]["orderNo"])): + l2_log.info(code, hx_logger_l2_transaction_sell_order, + f"{cls.__latest_sell_order_dict[code]}") + cls.__big_sell_order_ids_dict[code].add(info[0]) + cls.__big_sell_order_info_dict[code][info[0]] = info + cls.__big_sell_order_info_list_dict[code].append(info) cls.__latest_sell_order_dict[code] = [d[7], d[2], d[1], (d[3], d[6]), (d[3], d[6])] latest_time = l2_huaxin_util.convert_time(datas[-1][3], with_ms=True) @@ -185,10 +187,12 @@ # 缁熻鏈�杩戠殑澶у崟 if latest_sell_order_info[1] * latest_sell_order_info[2] >= 500000: if latest_sell_order_info[0] not in temp_sell_order_ids: - big_sell_orders.append(latest_sell_order_info) - temp_sell_order_ids.add(latest_sell_order_info[0]) - total_sell_info[0] += int(latest_sell_order_info[1] * latest_sell_order_info[2]) - + if f"{latest_sell_order_info[0]}" not in sell_no_map or ( + buy_exec_index is not None and latest_sell_order_info[0] > int( + total_datas[buy_exec_index]["val"]["orderNo"])): + big_sell_orders.append(latest_sell_order_info) + temp_sell_order_ids.add(latest_sell_order_info[0]) + total_sell_info[0] += int(latest_sell_order_info[1] * latest_sell_order_info[2]) big_sell_orders.reverse() total_sell_info[1] = big_sell_orders return total_sell_info -- Gitblit v1.8.0