From 2c707e6083d8d60b088a7f91a0020370e65c8c7f Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期二, 29 十月 2024 17:10:24 +0800
Subject: [PATCH] 昨日跌幅过大不扫入/添加日志记录

---
 l2/l2_data_manager_new.py |   75 +++++++++++++++++++------------------
 1 files changed, 39 insertions(+), 36 deletions(-)

diff --git a/l2/l2_data_manager_new.py b/l2/l2_data_manager_new.py
index a93f09d..1f6c604 100644
--- a/l2/l2_data_manager_new.py
+++ b/l2/l2_data_manager_new.py
@@ -724,7 +724,8 @@
             return False, True, f"14:57鍚庝笉鑳戒氦鏄�", True
 
         if cls.__TradeTargetCodeModeManager.get_mode_cache() == TradeTargetCodeModeManager.MODE_ONLY_BUY_WANT_CODES:
-            if not cls.__WantBuyCodesManager.is_in_cache(code) and not gpcode_manager.GreenListCodeManager().is_in_cache(code):
+            if not cls.__WantBuyCodesManager.is_in_cache(
+                    code) and not gpcode_manager.GreenListCodeManager().is_in_cache(code):
                 return False, True, f"鍙拱鎯充拱锛氭病鍦ㄦ兂涔板崟鍜岀豢鍗�", True
 
         return True, False, f"", False
@@ -1156,10 +1157,7 @@
         k_format = code_nature_analyse.CodeNatureRecordManager().get_k_format_cache(code)
         # 鏄惁鏈夎鲸璇嗗害
         is_special = True if k_format and k_format[8][0] else False
-        # 涓�5涓氦鏄撴棩鏈夌偢鏉夸箣鍚�
-        has_open_limit_up_in_5 = True if k_format and len(k_format) >= 11 and k_format[10] else False
-        # 涓�5涓氦鏄撴棩鏈夎穼鍋�
-        has_limit_down_in_5 = True if k_format and len(k_format) >= 13 and k_format[12] else False
+
         # 鏄惁鏄己鍔�10鍒嗛挓
         is_in_strong_time = now_timestamp <= int("094000")
         # 鏄惁鏄己鍔�30鍒嗛挓
@@ -1519,7 +1517,7 @@
                                                      max_num_set=set(),
                                                      buy_volume_rate=buy_volume_rate,
                                                      mode=OrderBeginPosInfo.MODE_RADICAL,
-                                                     mode_desc="鎬绘姏鍘嬪皬鎵叆",
+                                                     mode_desc=f"鎬绘姏鍘嬪皬鎵叆",
                                                      sell_info=sell_info,
                                                      threshold_money=threshold_money)
             order_begin_pos_info.at_limit_up = cls.__is_at_limit_up_buy(code)
@@ -1933,43 +1931,48 @@
         @param end_index:
         @return: (鏄惁鑾峰彇鍒颁俊鍙�, 淇″彿浣嶇疆, 娑堟伅)
         """
+
         # 婵�杩涗拱淇″彿鐨勬椂闂�
+
+        def __can_order():
+            # 鍒ゆ柇鏄惁鏄澘涓婃斁閲�
+            if cls.__is_at_limit_up_buy(code, start_index):
+                return False, None, "鏉夸笂鏀鹃噺"
+            total_datas = local_today_datas[code]
+            min_num = int(29900 / gpcode_manager.get_limit_up_price_as_num(code))
+            # 濡傛灉鏈夊ぇ鍗曟垚浜ゅ氨涓嶉渶瑕佺湅澶у崟
+            deal_money_list = BigOrderDealManager().get_total_buy_money_list(code)
+            if deal_money_list:
+                for m in deal_money_list:
+                    if m >= 2990000:
+                        min_num = int(5000 / gpcode_manager.get_limit_up_price_as_num(code))
+                        break
+
+            single_index = None
+            for i in range(start_index, end_index + 1):
+                data = total_datas[i]
+                val = data["val"]
+                if not L2DataUtil.is_limit_up_price_buy(val):
+                    continue
+                if val["num"] < min_num:
+                    continue
+                if int(val["orderNo"]) <= radical_data[1]:
+                    # 涓诲姩涔板崟鍚庣殑鏁版嵁涓嶇畻
+                    continue
+                single_index = i
+                break
+            if single_index is not None:
+                return True, single_index, "鏈夊ぇ鍗�"
+            return False, None, "鏃犲ぇ鍗�"
 
         radical_data = RadicalBuyDealCodesManager.buy_by_l2_delegate_expire_time_dict.get(code)
         if not radical_data:
             return False, None, "涓嶆弧瓒虫縺杩涗拱鐨勬潯浠�"
         if t.time() > radical_data[0]:
             return False, None, "瓒呰繃鐢熸晥鏃堕棿"
-
-        # 鍒ゆ柇鏄惁鏄澘涓婃斁閲�
-        if cls.__is_at_limit_up_buy(code, start_index):
-            return False, None, "鏉夸笂鏀鹃噺"
-        total_datas = local_today_datas[code]
-        min_num = int(29900 / gpcode_manager.get_limit_up_price_as_num(code))
-        # 濡傛灉鏈夊ぇ鍗曟垚浜ゅ氨涓嶉渶瑕佺湅澶у崟
-        deal_money_list = BigOrderDealManager().get_total_buy_money_list(code)
-        if deal_money_list:
-            for m in deal_money_list:
-                if m >= 2990000:
-                    min_num = int(5000 / gpcode_manager.get_limit_up_price_as_num(code))
-                    break
-
-        single_index = None
-        for i in range(start_index, end_index + 1):
-            data = total_datas[i]
-            val = data["val"]
-            if not L2DataUtil.is_limit_up_price_buy(val):
-                continue
-            if val["num"] < min_num:
-                continue
-            if int(val["orderNo"]) <= radical_data[1]:
-                # 涓诲姩涔板崟鍚庣殑鏁版嵁涓嶇畻
-                continue
-            single_index = i
-            break
-        if single_index is not None:
-            return True, single_index, "鏈夊ぇ鍗�"
-        return False, None, "鏃犲ぇ鍗�"
+        result = __can_order()
+        l2_log.debug(code, f"L2鎵叆鍒ゆ柇锛歿result}")
+        return result
 
     @classmethod
     def test__compute_active_order_begin_pos(cls, code, continue_count, start_index, end_index):

--
Gitblit v1.8.0