From b51b2ae184fad5aaf37a78903987e064f192d430 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期一, 26 五月 2025 11:35:20 +0800 Subject: [PATCH] 大单解析修改 --- l2/l2_transaction_data_processor.py | 41 +++++++++++++++++++++-------------------- 1 files changed, 21 insertions(+), 20 deletions(-) diff --git a/l2/l2_transaction_data_processor.py b/l2/l2_transaction_data_processor.py index 4a9ce1b..aac5019 100644 --- a/l2/l2_transaction_data_processor.py +++ b/l2/l2_transaction_data_processor.py @@ -33,6 +33,8 @@ class HuaXinTransactionDatasProcessor: __statistic_thread_pool = concurrent.futures.ThreadPoolExecutor(max_workers=constant.HUAXIN_L2_MAX_CODES_COUNT + 2) __TradeBuyQueue = transaction_progress.TradeBuyQueue() + # 闈炴定鍋滄垚浜ゆ椂闂� + __not_limit_up_time_dict = {} # 璁$畻鎴愪氦杩涘害 @classmethod @@ -116,7 +118,7 @@ limit_up_price = gpcode_manager.get_limit_up_price_as_num(code) - if len(fdatas) > 100: + if False and len(fdatas) > 100: # 骞惰澶勭悊涔板崟涓庡崠鍗� # 瓒呰繃100鏉℃暟鎹墠闇�瑕佸苟琛屽鐞� f1 = dask.delayed(statistic_big_buy_data)() @@ -155,11 +157,19 @@ try: current_price_process_manager.set_trade_price(code, fdatas[-1][0][1]) if not fdatas[-1][2]: - # 娌℃湁娑ㄥ仠 - EveryLimitupBigDealOrderManager.open_limit_up(code, f"鏈�鏂版垚浜や环锛歿fdatas[-1][0][1]}") - radical_buy_strategy.clear_data(code, msg=f"娌℃湁娑ㄥ仠锛歿fdatas[-1][0]}") - except: - pass + if code not in cls.__not_limit_up_time_dict: + cls.__not_limit_up_time_dict[code] = fdatas[-1][5] + last_time = cls.__not_limit_up_time_dict[code] + # 鐐告澘鏃堕棿鎸佺画500ms浠ヤ笂绠楃偢鏉� + if tool.trade_time_sub_with_ms(fdatas[-1][5], last_time) > 500: + # 娌℃湁娑ㄥ仠 + EveryLimitupBigDealOrderManager.open_limit_up(code, f"鏈�鏂版垚浜や环锛歿fdatas[-1][0][1]}") + radical_buy_strategy.clear_data(code, msg=f"娌℃湁娑ㄥ仠锛歿fdatas[-1][0]}") + else: + if code in cls.__not_limit_up_time_dict: + cls.__not_limit_up_time_dict.pop(code) + except Exception as e: + async_log_util.error(logger_debug, f"L2鎴愪氦寮�鏉胯绠楅敊璇細{str(e)}") total_datas = l2_data_util.local_today_datas.get(code) use_time_list = [] @@ -187,21 +197,12 @@ _start_time = time.time() try: + last_data = fdatas[-1] # 缁熻涓婃澘鏃堕棿 - try: - for d in fdatas: - if d[1]: - # 涓诲姩涔� - if d[2]: - # 娑ㄥ仠 - current_price_process_manager.set_latest_not_limit_up_time(code, d[5]) - else: - # 涓诲姩鍗栵紙鏉夸笂锛� - if d[2]: - L2LimitUpSellDataManager.clear_data(code) - break - except: - pass + if last_data[1] and last_data[2]: + current_price_process_manager.set_latest_not_limit_up_time(code, last_data[5]) + if not last_data[1] and last_data[2]: + L2LimitUpSellDataManager.clear_data(code) big_sell_order_info = None # 缁熻鍗栧崟 big_sell_order_info = HuaXinSellOrderStatisticManager.statistic_continue_limit_up_sell_transaction_datas( -- Gitblit v1.8.0