From 7745dedc6dd22b80ad17e5b7c1490ef5ece3d1f5 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期五, 08 三月 2024 16:23:20 +0800
Subject: [PATCH] bug修复

---
 l2/l2_transaction_data_processor.py |   36 ++++++++++++++----------------------
 1 files changed, 14 insertions(+), 22 deletions(-)

diff --git a/l2/l2_transaction_data_processor.py b/l2/l2_transaction_data_processor.py
index 406cd94..9596efb 100644
--- a/l2/l2_transaction_data_processor.py
+++ b/l2/l2_transaction_data_processor.py
@@ -4,13 +4,13 @@
 from code_attribute import gpcode_manager
 from l2 import l2_data_util, l2_data_manager, l2_data_source_util, transaction_progress
 from l2.cancel_buy_strategy import FCancelBigNumComputer, LCancelBigNumComputer, LCancelRateManager, \
-    GCancelBigNumComputer, SecondCancelBigNumComputer, HourCancelBigNumComputer
+    GCancelBigNumComputer, SecondCancelBigNumComputer, HourCancelBigNumComputer, DCancelBigNumComputer
 from l2.l2_data_manager_new import L2TradeDataProcessor
 from l2.l2_data_util import L2DataUtil, local_today_canceled_buyno_map
 from l2.l2_transaction_data_manager import HuaXinTransactionDataManager
 from log_module import async_log_util
 from log_module.log import hx_logger_l2_debug, logger_l2_trade_buy_queue, logger_debug, hx_logger_l2_upload
-from msg import push_msg_manager
+from msg import push_msg_manager, buy_order_msg_manager
 from trade import current_price_process_manager, trade_manager
 from trade.deal_big_money_manager import DealOrderNoManager
 from utils import tool
@@ -54,7 +54,7 @@
                 # 宸茬粡涓嬪崟鐨勯渶瑕佺粺璁鎾�
                 try:
                     for d in datas:
-                        if FCancelBigNumComputer().need_cancel(d)[0]:
+                        if FCancelBigNumComputer().need_cancel(d)[0] and not DCancelBigNumComputer().has_auto_cancel_rules(code):
                             L2TradeDataProcessor.cancel_buy(code, f"F鎾ゆ挙鍗�:{d}")
                             order_begin_pos = None
                             break
@@ -63,7 +63,7 @@
                 try:
                     # 涓嬪崟2s鍚庢墠寮�濮嬬敓鏁�
                     cresult = LCancelBigNumComputer().add_transaction_datas(code, datas)
-                    if cresult[0]:
+                    if cresult[0] and not DCancelBigNumComputer().has_auto_cancel_rules(code):
                         L2TradeDataProcessor.cancel_buy(code, f"L鍚庢垚浜ゅお蹇挙鍗�:{cresult[1]}")
                         order_begin_pos = None
                 except Exception as e:
@@ -109,6 +109,9 @@
                 if order_begin_pos and order_begin_pos.buy_exec_index and order_begin_pos.buy_exec_index > -1:
                     HourCancelBigNumComputer().set_transaction_index(code, order_begin_pos.buy_single_index,
                                                                      buy_progress_index)
+                    cresult = FCancelBigNumComputer().need_cancel_for_deal_fast(code,buy_progress_index)
+                    if cresult[0] and not DCancelBigNumComputer().has_auto_cancel_rules(code):
+                        L2TradeDataProcessor.cancel_buy(code, f"涓嬪崟30s鍐呮帓鍗曚笉瓒�:{cresult[1]}")
                     # ---------------------------------鍒ゆ柇鏉垮潡鏄惁璺熶笂鏉ヤ簡-------------------------------
                     try:
                         pass
@@ -128,24 +131,13 @@
                         # 浜ゆ槗杩涘害鍙樺寲锛屽垽鏂埌鐪熷疄涓嬪崟浣嶇疆鐨勮窛绂�
                         real_order_index = SecondCancelBigNumComputer().get_real_place_order_index_cache(code)
                         if real_order_index and real_order_index >= buy_progress_index:
-
-                            total_left_count = 0
-                            for i in range(buy_progress_index + 1, real_order_index):
-                                val = total_datas[i]["val"]
-                                if not L2DataUtil.is_limit_up_price_buy(val):
-                                    continue
-                                if val["num"] * float(val["price"]) < 5000:
-                                    continue
-                                left_count = l2_data_source_util.L2DataSourceUtils.get_limit_up_buy_no_canceled_count_v2(
-                                    code, i,
-                                    total_datas,
-                                    local_today_canceled_buyno_map.get(
-                                        code))
-                                if left_count > 0:
-                                    total_left_count += 1
-                            if total_left_count <= 3:
-                                # 褰撴垚浜よ繘搴﹁窛绂荤湡瀹炰笅鍗曚綅缃笉瓒�3绗旀椂鎺ㄩ�佸嵆灏嗘垚浜ょ殑娑堟伅
-                                push_msg_manager.push_order_almost_deal(code, gpcode_manager.get_code_name(code))
+                            # 鍙戦�佷笅鍗曟秷鎭�
+                            try:
+                                buy_order_msg_manager.almost_deal(code, real_order_index, buy_progress_index)
+                                buy_order_msg_manager.follow_not_enough(code, order_begin_pos.buy_exec_index,
+                                                                        real_order_index)
+                            except Exception as e:
+                                logger_debug.exception(e)
             else:
                 pass
             if order_begin_pos and order_begin_pos.buy_exec_index and order_begin_pos.buy_exec_index > -1:

--
Gitblit v1.8.0