From f62bb70f7ec94d513fad29572deec78a33a2d9bc Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期三, 29 十一月 2023 15:48:52 +0800
Subject: [PATCH] 买入策略调整

---
 third_data/code_plate_key_manager.py |   15 +++++++--------
 1 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/third_data/code_plate_key_manager.py b/third_data/code_plate_key_manager.py
index c66f962..b31f7f1 100644
--- a/third_data/code_plate_key_manager.py
+++ b/third_data/code_plate_key_manager.py
@@ -37,7 +37,7 @@
     def __get_redis(self):
         return self.__redisManager.getRedis()
 
-    def save_jx_blocks(self, code, blocks: list, by=False):
+    def save_jx_blocks(self, code, blocks: list, current_limit_up_blocks: set, by=False):
         if not blocks:
             return
         final_blocks = copy.deepcopy(blocks)
@@ -47,11 +47,10 @@
             blocks.sort(key=lambda x: x[2])
             blocks.reverse()
             for b in blocks:
-                if b[2] > 0 and b[1] not in constant.KPL_INVALID_BLOCKS:
+                if (b[2] > -1 or b[1] in current_limit_up_blocks) and b[1] not in constant.KPL_INVALID_BLOCKS:
                     final_blocks.append(b)
             if len(final_blocks) < 2:
                 final_blocks = blocks
-
         # 淇濆瓨鍓�2鏉℃暟鎹�
         if by:
             RedisUtils.setex_async(self.__db, f"kpl_jx_blocks_by-{code}", tool.get_expire(), json.dumps(final_blocks))
@@ -89,8 +88,8 @@
         else:
             return self.__code_blocks.get(code)
 
-    # 浠庣綉缁滀笂鍔犺浇绮鹃�夋澘鍧�
-    def load_jx_blocks(self, code, buy_1_price, limit_up_price):
+    # 浠庣綉缁滀笂鍔犺浇绮鹃�夋澘鍧�, 褰撳墠娑ㄥ仠鐨勬澘鍧�
+    def load_jx_blocks(self, code, buy_1_price, limit_up_price, current_limit_up_blocks):
         try:
             # logger_kpl_block_can_buy.info(f"鍑嗗鏇存柊绮鹃�夋澘鍧楋細{code}-{buy_1_price}-{limit_up_price}")
             if limit_up_price and buy_1_price:
@@ -102,7 +101,7 @@
                     jx_blocks_info = self.get_jx_blocks_cache(code)
                     if not jx_blocks_info:
                         blocks = kpl_api.getCodeJingXuanBlocks(code)
-                        self.save_jx_blocks(code, blocks)
+                        self.save_jx_blocks(code, blocks, current_limit_up_blocks)
                         async_log_util.info(logger_kpl_block_can_buy, f"{code}:鑾峰彇鍒扮簿閫夋澘鍧�-{blocks}")
                     else:
                         # 杩樻病娑ㄥ仠鐨勯渶瑕佹洿鏂扮簿閫夋澘鍧� 鏇存柊绮鹃�夋澘鍧�
@@ -120,14 +119,14 @@
                             if time.time() - jx_blocks_info[1] > UPDATE_TIME_SPACE:
                                 # 璺濈涓婃鏇存柊鏃堕棿杩囧幓浜�5鍒嗛挓
                                 blocks = kpl_api.getCodeJingXuanBlocks(code)
-                                self.save_jx_blocks(code, blocks)
+                                self.save_jx_blocks(code, blocks, current_limit_up_blocks)
                                 async_log_util.info(logger_kpl_block_can_buy, f"{code}:鑾峰彇鍒扮簿閫夋澘鍧楋紙鏇存柊锛�-{blocks}")
 
                 elif price_rate > 0.03:
                     # 娣诲姞澶囩敤鏉垮潡
                     if not self.get_jx_blocks_cache(code, by=True):
                         blocks = kpl_api.getCodeJingXuanBlocks(code)
-                        self.save_jx_blocks(code, blocks, by=True)
+                        self.save_jx_blocks(code, blocks,current_limit_up_blocks, by=True)
                         async_log_util.info(logger_kpl_block_can_buy, f"{code}:鑾峰彇鍒扮簿閫夋澘鍧�(澶囩敤)-{blocks}")
         except Exception as e:
             logger_kpl_block_can_buy.error(f"{code} 鑾峰彇鏉垮潡鍑洪敊")

--
Gitblit v1.8.0