From 178d119f552136d7e119ddab50a01e7f5d642186 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期四, 22 八月 2024 23:38:40 +0800 Subject: [PATCH] 绿名单 /股票板块修改 --- third_data/code_plate_key_manager.py | 50 +++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 39 insertions(+), 11 deletions(-) diff --git a/third_data/code_plate_key_manager.py b/third_data/code_plate_key_manager.py index 80903ff..9ba79fa 100644 --- a/third_data/code_plate_key_manager.py +++ b/third_data/code_plate_key_manager.py @@ -21,8 +21,10 @@ from third_data.kpl_util import KPLPlatManager from trade import trade_manager, l2_trade_util, trade_constant - # 浠g爜绮鹃�夋澘鍧楃鐞� +from utils.kpl_data_db_util import KPLLimitUpDataUtil + + class KPLCodeJXBlockManager: __db = 3 __redisManager = redis_manager.RedisManager(3) @@ -474,6 +476,30 @@ blocks = set() return reasons | blocks + __history_blocks_dict_cache = {} + + def get_history_blocks(self, code): + """ + 鑾峰彇180澶╃殑鍘嗗彶娑ㄥ仠鍘熷洜 + @param code: + @return: + """ + if code in self.__history_blocks_dict_cache: + return self.__history_blocks_dict_cache.get(code) + try: + kpl_results = KPLLimitUpDataUtil.get_latest_block_infos(code=code) + keys = set() + if kpl_results: + keys |= set([x[2] for x in kpl_results]) + for r in kpl_results: + if r[3]: + keys |= set(r[3].split("銆�")) + self.__history_blocks_dict_cache[code] = keys + return keys + except: + pass + return set() + # 鐩爣浠g爜鏉垮潡鍏抽敭璇嶇鐞� class TargetCodePlateKeyManager: @@ -487,7 +513,7 @@ # 杩斿洖key闆嗗悎(鎺掗櫎鏃犳晥鏉垮潡),浠婃棩娑ㄥ仠鍘熷洜,浠婃棩鍘嗗彶娑ㄥ仠鍘熷洜,鍘嗗彶娑ㄥ仠鍘熷洜,浜岀骇,绮鹃�夋澘鍧� def get_plate_keys(self, code): """ - 鑾峰彇浠g爜鐨勬澘鍧� + 鑾峰彇浠g爜鐨勬澘鍧�: 锛�180澶╃殑娑ㄥ仠鍘熷洜+鎺ㄨ崘鍘熷洜锛�+浠婃棩娑ㄥ仠鍘熷洜+浠婃棩娑ㄥ仠鎺ㄨ崘鍘熷洜+浠婃棩鎺ㄨ崘鍘熷洜 @param code: @return: 锛堟澘鍧楀叧閿瘝闆嗗悎,浠婃棩娑ㄥ仠鍘熷洜+娑ㄥ仠鎺ㄨ崘鍘熷洜,浠婃棩鍘嗗彶娑ㄥ仠鍘熷洜,鍘嗗彶娑ㄥ仠鍘熷洜,绮鹃�夋澘鍧楋級 """ @@ -502,10 +528,13 @@ k2 = self.__CodesPlateKeysManager.get_history_limit_up_reason_cache(code) if k2 is None: k2 = set() - k3 = set() - industry = global_util.code_industry_map.get(code) - if industry: - k3 = {industry} + + k3 = self.__CodesPlateKeysManager.get_history_blocks(code) + if k3: + keys |= k3 + # industry = global_util.code_industry_map.get(code) + # if industry: + # k3 = {industry} k4 = set() jingxuan_block_info = self.__KPLCodeJXBlockManager.get_jx_blocks_cache(code) @@ -517,11 +546,10 @@ if k1: # 娑ㄥ仠杩� keys |= k1 - keys = keys - set(constant.KPL_INVALID_BLOCKS) - if not keys: - # 鑾峰彇涓嶅埌娑ㄥ仠鍘熷洜 - keys |= k4 - keys = keys - set(constant.KPL_INVALID_BLOCKS) + + # 鑾峰彇涓嶅埌娑ㄥ仠鍘熷洜 + keys |= k4 + keys = keys - set(constant.KPL_INVALID_BLOCKS) return keys, k1, k11, k2, k3, k4 -- Gitblit v1.8.0