From d2d5ca80907183f88a5e78aa28c085a746868d6d Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期三, 13 十一月 2024 18:50:56 +0800
Subject: [PATCH] 扫入策略修改

---
 third_data/kpl_data_constant.py |   22 +++++++++++++---------
 1 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/third_data/kpl_data_constant.py b/third_data/kpl_data_constant.py
index 6713879..e0ef757 100644
--- a/third_data/kpl_data_constant.py
+++ b/third_data/kpl_data_constant.py
@@ -8,9 +8,12 @@
 from utils.kpl_data_db_util import KPLLimitUpDataUtil
 
 # 鐢ㄤ簬璁$畻婵�杩涗拱寮�1鐨勬澘鏁帮細{"浠g爜":(鍑犵増,{鏉垮潡})}
+from utils.tool import singleton
+
 open_limit_up_code_dict_for_radical_buy = None
 
 
+@singleton
 class LimitUpCodesBlockRecordManager:
     """
     鍘嗗彶娑ㄥ仠浠g爜鐨勬澘鍧楃鐞�
@@ -26,15 +29,16 @@
 
     __instance = None
 
-    def __new__(cls, *args, **kwargs):
-        if not cls.__instance:
-            cls.__instance = super(LimitUpCodesBlockRecordManager, cls).__new__(cls, *args, **kwargs)
-            cls.__load_data()
-        return cls.__instance
+    __day = tool.get_now_date_str()
+
+    def __init__(self, day=tool.get_now_date_str()):
+        self.__day = day
+        self.__load_data()
 
     @classmethod
     def __load_data(cls):
-        kpl_results = KPLLimitUpDataUtil.get_latest_block_infos()
+        kpl_results = KPLLimitUpDataUtil.get_latest_block_infos(min_day=tool.date_sub(cls.__day, 180),
+                                                                max_day=cls.__day)
         limit_up_reasons_dict = {}
         limit_up_recommend_block_dict = {}
         for r in kpl_results:
@@ -55,11 +59,10 @@
             cls.__limit_up_recommend_reasons_dict[code] = set(limit_up_recommend_block_dict[code])
 
         # 鍔犺浇涓烘壂鍏ヤ拱鍖归厤鐨勪唬鐮佹澘鍧�
-        kpl_results = KPLLimitUpDataUtil.get_latest_block_infos(min_day=tool.date_sub(tool.get_now_date_str(), 365))
+        kpl_results = KPLLimitUpDataUtil.get_latest_block_infos(min_day=tool.date_sub(cls.__day, 365),
+                                                                max_day=cls.__day)
         kpl_block_dict = {}
         for r in kpl_results:
-            if r[2] in constant.KPL_INVALID_BLOCKS:
-                continue
             code = r[0]
             if code not in kpl_block_dict:
                 kpl_block_dict[code] = []
@@ -80,6 +83,7 @@
             if len(temp_list) > 1:
                 if temp_list[1][1] >= 2:
                     blocks.add(temp_list[1][0])
+            blocks -= constant.KPL_INVALID_BLOCKS
             cls.__radical_buy_reasons_dict[code] = blocks
 
     def get_limit_up_reasons(self, code):

--
Gitblit v1.8.0