From fe1b515c6286f80a244e044236fb140ab7090495 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期日, 04 八月 2024 23:39:15 +0800
Subject: [PATCH] 板上放量下单规则修改

---
 third_data/kpl_limit_up_data_manager.py |   53 ++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 50 insertions(+), 3 deletions(-)

diff --git a/third_data/kpl_limit_up_data_manager.py b/third_data/kpl_limit_up_data_manager.py
index 037d27c..4b4a138 100644
--- a/third_data/kpl_limit_up_data_manager.py
+++ b/third_data/kpl_limit_up_data_manager.py
@@ -35,6 +35,55 @@
     return kpl_data_manager.KPLLimitUpDataRecordManager.total_datas
 
 
+class CodeLimitUpSequenceManager:
+    """
+    浠g爜韬綅绠$悊
+    """
+    # 棣栨澘韬綅
+    __first_block_sequence_dict = {}
+
+    def set_current_limit_up_datas(self, current_limit_up_datas):
+        """
+        璁剧疆鐩墠鐨勬定鍋滀唬鐮�
+        @param current_limit_up_datas:
+        @return:
+        """
+        records = get_today_history_limit_up_datas_cache()
+        # 鎸変唬鐮佹帓搴�
+        # {"浠g爜":锛堜唬鐮侊紝娑ㄥ仠鍘熷洜, 娑ㄥ仠鏃堕棿, 鍑犵増锛墋
+        current_code_block_dict = {x[0]: (x[0], x[2], x[5], x[4]) for x in current_limit_up_datas}
+        record_code_block_dict = {x[3]: (x[3], x[2], x[5], x[12]) for x in records}
+        # 鏍规嵁娑ㄥ仠鍘熷洜缁熻
+        # {"鏉垮潡":{浠g爜}}
+        block_codes = {}
+        limit_up_codes = set()
+        for code in current_code_block_dict:
+            b = current_code_block_dict[code][1]
+            if b not in block_codes:
+                block_codes[b] = set()
+            block_codes[b].add(code)
+            limit_up_codes.add(code)
+        for code in record_code_block_dict:
+            b = record_code_block_dict[code][1]
+            if b not in block_codes:
+                block_codes[b] = set()
+            block_codes[b].add(code)
+
+        for code in limit_up_codes:
+            # 璁$畻韬綅
+            b = current_code_block_dict[code][1]
+            codes = block_codes[b]
+            total_count = len(codes)
+            # 缁熻鐪熸娑ㄥ仠鏁�
+            limit_up_count = 0
+            for c in codes:
+                if c in limit_up_codes:
+                    limit_up_count += 1
+            # TODO 鑾峰彇棣栨澘浠g爜鐨勬帓浣�
+
+
+
+
 class LatestLimitUpBlockManager:
     """
     鏈�杩戞定鍋滅殑鏉垮潡绠$悊
@@ -184,7 +233,7 @@
             max_rate_info = None
             for code in block_codes_dict[d[0]]:
                 if max_rate_info is None:
-                    max_rate_info = (code, self.__k_max_rate.get(code),  self.__code_name_dict.get(code))
+                    max_rate_info = (code, self.__k_max_rate.get(code), self.__code_name_dict.get(code))
                 if max_rate_info[1] < self.__k_max_rate.get(code):
                     max_rate_info = (code, self.__k_max_rate.get(code), self.__code_name_dict.get(code))
             fdata.append(max_rate_info)
@@ -234,5 +283,3 @@
         rate = int((volumes_data[0]["close"] - min_price) * 100 / min_price)
         cls.__k_max_rate[code] = rate
         return cls.__k_datas.get(code)
-
-

--
Gitblit v1.8.0