From 06df6025404f0aa1cae1bff229c00bb09db0a861 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期一, 27 十一月 2023 16:42:56 +0800
Subject: [PATCH] 新版选票机制实行

---
 l2/l2_data_manager_new.py |   31 +++++++++++++++++++++++++------
 1 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/l2/l2_data_manager_new.py b/l2/l2_data_manager_new.py
index 9fb0a2d..b274409 100644
--- a/l2/l2_data_manager_new.py
+++ b/l2/l2_data_manager_new.py
@@ -1001,17 +1001,36 @@
                                                          kpl_data_manager.KPLLimitUpDataRecordManager.latest_origin_datas,
                                                          kpl_data_manager.KPLLimitUpDataRecordManager.total_datas,
                                                          yesterday_codes,
-                                                         block_info.get_before_blocks_dict())
+                                                         block_info.get_before_blocks_dict(),
+                                                         kpl_data_manager.KPLLimitUpDataRecordManager.get_current_code_block_dict())
             can_buy_result = CodePlateKeyBuyManager.can_buy(code)
 
         if can_buy_result is None:
             return False, True, "灏氭湭鑾峰彇鍒版澘鍧椾俊鎭�"
 
-        # 鏉垮潡涓嶅彲涔帮紝涓旀病鏈夋寕杩囧崟鐨勫氨涓嶈兘涔�
-        if not can_buy_result[0] and trade_manager.CodesTradeStateManager().get_trade_state_cache(
-                code) == trade_manager.TRADE_STATE_NOT_TRADE:
-            return False, True, can_buy_result[1]
-        return True, False, can_buy_result[1]
+        # 鑾峰彇K绾垮舰鎬侊紝鍒ゆ柇鏄惁杩�2澶╂槸鍚︿负10澶╁唴鏈�澶ч噺
+        k_format = code_nature_analyse.CodeNatureRecordManager().get_k_format_cache(code)
+        if k_format and len(k_format) >= 10 and k_format[9][0]:
+            # 鏄嫭鑻�
+            if can_buy_result[1]:
+                if cls.volume_rate_info[code][0] < 0.6:
+                    return False, True, f"鐙嫍锛氳繎2澶╂湁10鏃ュ唴鏈�楂橀噺锛岄噺姣旓紙{cls.volume_rate_info[code][0]}锛夋湭杈惧埌60%"
+            else:
+                if cls.volume_rate_info[code][0] < 0.3:
+                    return False, True, f"杩�2澶╂湁10鏃ュ唴鏈�楂橀噺锛岄噺姣旓紙{cls.volume_rate_info[code][0]}锛夋湭杈惧埌30%"
+
+        # 鏄嫭鑻�
+        if can_buy_result[1]:
+            now_time_int = int(tool.get_now_time_str().replace(":", ""))
+            if now_time_int < int("100000") or int("130000") <= now_time_int < int("133000"):
+                # 鐙嫍蹇呴』9:30-10:00鍜�13:00-13:30鏃堕棿娈靛唴涔�
+                return True, False, f"鐙嫍锛歿can_buy_result[2]}"
+            else:
+                return False, True, f"鐙嫍锛氬綋鍓嶆椂闂翠笉鑳戒拱"
+        else:
+            if can_buy_result[0]:
+                return True, False, can_buy_result[2]
+        return False, True, can_buy_result[2]
 
     @classmethod
     def __cancel_buy(cls, code):

--
Gitblit v1.8.0