From 3af02884a1f2e98c899cc2f21ab434fd6062c34f Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期日, 28 四月 2024 17:32:43 +0800
Subject: [PATCH] 板块调整

---
 l2/l2_data_manager_new.py |   57 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 53 insertions(+), 4 deletions(-)

diff --git a/l2/l2_data_manager_new.py b/l2/l2_data_manager_new.py
index 170d270..91f3008 100644
--- a/l2/l2_data_manager_new.py
+++ b/l2/l2_data_manager_new.py
@@ -927,6 +927,10 @@
         if 130100 >= now_time_int >= 112900:
             return False, True, f"11:29:00-13:01:00涓嶈兘浜ゆ槗"
 
+        place_order_count = cls.__PlaceOrderCountManager.get_place_order_count(code)
+        if place_order_count > 0 and now_time_int >= 140000:
+            return False, True, f"14:00:00涓嶆墦鍥炲皝"
+
         limit_up_price = gpcode_manager.get_limit_up_price(code)
 
         if constant.MIN_CODE_PRICE < float(limit_up_price) < constant.MAX_CODE_PRICE:
@@ -1030,7 +1034,7 @@
         if not cls.__WantBuyCodesManager.is_in_cache(code):
             # if cls.__TradeTargetCodeModeManager.get_mode_cache() == TradeTargetCodeModeManager.MODE_ONLY_BUY_WANT_CODES:
             #     return False, True, f"鍙拱鎯充拱鍗曚腑鐨勪唬鐮�"
-            return cls.can_buy_first(code, limit_up_price)
+            return cls.can_buy_first_new(code, limit_up_price)
         else:
             return True, False, "鍦ㄦ兂涔板崟涓�"
 
@@ -1235,6 +1239,48 @@
             #             if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[
             #                 0] and not is_special:
             #                 return False, True, f"闈炲己鍔�10鍒嗛挓锛岄潪寮哄娍涓荤嚎鍚庢帓銆愪富绾垮悗鎺掋��, 婊¤冻鑷敱甯傚�硷紝鏃犺鲸璇嗗害锛屽綋鏃ラ噺姣�({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[0]}"
+            return True, False, can_buy_result[2]
+
+    @classmethod
+    def can_buy_first_new(cls, code, limit_up_price):
+        now_timestamp = int(tool.get_now_time_str().replace(":", ""))
+        # 鍒ゆ柇鏉垮潡
+        # (鍙互涔扮殑鏉垮潡鍒楄〃, 鏄惁鏄嫭鑻�, 娑堟伅绠�浠�,鍙拱鐨勫己鍔夸富绾�, 鏉垮潡鍏抽敭璇�)
+        can_buy_result = cls.__get_can_buy_block(code)
+        if can_buy_result is None:
+            return False, True, "灏氭湭鑾峰彇鍒版澘鍧椾俊鎭�"
+
+        # 鏄惁鏄己鍔�30鍒嗛挓
+        is_in_strong_time_30 = now_timestamp <= int("100000")
+
+
+        # 鑾峰彇甯傚満琛屾儏
+        situation = cls.__MarketSituationManager.get_situation_cache()
+        zylt_threshold_as_yi = buy_condition_util.get_zyltgb_threshold(situation)
+        zyltgb_as_yi = round(global_util.zyltgb_map.get(code) / 100000000, 2)
+
+        if zyltgb_as_yi >= zylt_threshold_as_yi[1]:
+            return False, True, f"{zylt_threshold_as_yi[1]}浜夸互涓婄殑閮戒笉涔帮紙{zyltgb_as_yi}锛�"
+
+        if zyltgb_as_yi < zylt_threshold_as_yi[0]:
+            return False, True, f"{zylt_threshold_as_yi[0]}浜夸互涓嬬殑閮戒笉涔帮紙{zyltgb_as_yi}锛�"
+
+        msg_list = []
+        if is_in_strong_time_30:
+            msg_list.append("寮哄娍30鍒嗛挓")
+            # 鐙嫍
+            if not can_buy_result[0] and can_buy_result[1]:
+                msg_list.append("鐙嫍")
+                return True, False, "寮哄娍30鍒嗛挓锛岀嫭鑻�"
+            elif not can_buy_result[0]:
+                return False, True, f"寮哄娍30鍒嗛挓锛岄潪鐙嫍涓嶆弧瓒宠韩浣嶏細{can_buy_result[2]}"
+            else:
+                msg_list.append("闈炵嫭鑻�")
+                # 鍚庢帓锛屾弧瓒宠嚜鐢辨祦閫氬競鍊奸渶瑕佷笅鍗�
+                return True, False, can_buy_result[2]
+        else:
+            if not can_buy_result[0]:
+                return False, True, f"闈炲己鍔�30鍒嗛挓锛屼笉婊¤冻韬綅锛歿can_buy_result[2]}"
             return True, False, can_buy_result[2]
 
     @classmethod
@@ -1672,7 +1718,8 @@
                 if _val["num"] * float(_val["price"]) < 5000:
                     continue
 
-                return True, i, [refer_sell_data[0], 0], '涓婅瘉涔板叆',  OrderBeginPosInfo.MODE_ACTIVE if active_buy_blocks else  OrderBeginPosInfo.MODE_FAST
+                return True, i, [refer_sell_data[0],
+                                 0], '涓婅瘉涔板叆', OrderBeginPosInfo.MODE_ACTIVE if active_buy_blocks else OrderBeginPosInfo.MODE_FAST
             return False, -1, "鏈幏鍙栧埌婵�杩涗拱鐨勮捣濮嬩俊鍙�", '', OrderBeginPosInfo.MODE_NORMAL
         else:
             # 娣辫瘉
@@ -1721,13 +1768,15 @@
                     buy_single_index = cls.__get_active_single_start_index(code, start_index, end_index, continue_count,
                                                                            valid_single=True)
                     if buy_single_index is not None:
-                        return True, buy_single_index, [refer_sell_data[0], 0], "涓婃澘鏈夋垚浜や拱鍏ヤ俊鍙�", OrderBeginPosInfo.MODE_ACTIVE if active_buy_blocks else  OrderBeginPosInfo.MODE_FAST
+                        return True, buy_single_index, [refer_sell_data[0],
+                                                        0], "涓婃澘鏈夋垚浜や拱鍏ヤ俊鍙�", OrderBeginPosInfo.MODE_ACTIVE if active_buy_blocks else OrderBeginPosInfo.MODE_FAST
             else:
                 # 鏉夸笂鏀鹃噺锛氬彧闇�瑕佷竴绗旀定鍋滀拱鍙綔涓轰俊鍙�
                 buy_single_index = cls.__get_active_single_start_index(code, start_index, end_index, continue_count,
                                                                        valid_single=False)
                 if buy_single_index is not None:
-                    return True, buy_single_index, [refer_sell_data[0], 0], "鏉夸笂鏀鹃噺", OrderBeginPosInfo.MODE_ACTIVE if active_buy_blocks else OrderBeginPosInfo.MODE_NORMAL
+                    return True, buy_single_index, [refer_sell_data[0],
+                                                    0], "鏉夸笂鏀鹃噺", OrderBeginPosInfo.MODE_ACTIVE if active_buy_blocks else OrderBeginPosInfo.MODE_NORMAL
 
         return False, -1, "鏈幏鍙栧埌婵�杩涗拱鐨勮捣濮嬩俊鍙�", '', OrderBeginPosInfo.MODE_NORMAL
 

--
Gitblit v1.8.0