From a66b4a987444c655b5ab5f678dbfefc82b7785b2 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期二, 27 八月 2024 15:12:06 +0800 Subject: [PATCH] 开盘啦精选板块调整 --- third_data/code_plate_key_manager.py | 59 ++++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 44 insertions(+), 15 deletions(-) diff --git a/third_data/code_plate_key_manager.py b/third_data/code_plate_key_manager.py index 5aa2814..cdd0181 100644 --- a/third_data/code_plate_key_manager.py +++ b/third_data/code_plate_key_manager.py @@ -8,11 +8,12 @@ import time import constant -from code_attribute import code_nature_analyse from db.redis_manager_delegate import RedisUtils from third_data import kpl_block_util, kpl_api, kpl_util from settings.trade_setting import MarketSituationManager -from utils import global_util, tool, buy_condition_util +from third_data.history_k_data_manager import HistoryKDataManager +from third_data.history_k_data_util import HistoryKDatasUtils +from utils import global_util, tool, buy_condition_util, init_data_util from log_module import log, async_log_util from db import redis_manager_delegate as redis_manager @@ -20,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) @@ -473,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: @@ -486,7 +513,7 @@ # 杩斿洖key闆嗗悎(鎺掗櫎鏃犳晥鏉垮潡),浠婃棩娑ㄥ仠鍘熷洜,浠婃棩鍘嗗彶娑ㄥ仠鍘熷洜,鍘嗗彶娑ㄥ仠鍘熷洜,浜岀骇,绮鹃�夋澘鍧� def get_plate_keys(self, code): """ - 鑾峰彇浠g爜鐨勬澘鍧� + 鑾峰彇浠g爜鐨勬澘鍧�: 锛�180澶╃殑娑ㄥ仠鍘熷洜+鎺ㄨ崘鍘熷洜锛�+浠婃棩娑ㄥ仠鍘熷洜+浠婃棩娑ㄥ仠鎺ㄨ崘鍘熷洜+浠婃棩鎺ㄨ崘鍘熷洜 @param code: @return: 锛堟澘鍧楀叧閿瘝闆嗗悎,浠婃棩娑ㄥ仠鍘熷洜+娑ㄥ仠鎺ㄨ崘鍘熷洜,浠婃棩鍘嗗彶娑ㄥ仠鍘熷洜,鍘嗗彶娑ㄥ仠鍘熷洜,绮鹃�夋澘鍧楋級 """ @@ -501,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) @@ -516,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 @@ -597,7 +626,7 @@ if not block_codes: # 楂樹綅鏉挎硾鍖栨澘鍧椾腑鏃犳澘鍧� if not high_level_block_codes.get(block): - return False, True, f"{block}:鏉垮潡鏃犳定鍋�", False, False + return False, True, f"銆恵block}銆�:鏉垮潡鏃犳定鍋�", False, False elif len(block_codes) == 1 and code in block_codes: if not high_level_block_codes.get(block): return False, True, f"{block}:鏉垮潡鍙湁褰撳墠浠g爜娑ㄥ仠", False, False @@ -747,7 +776,7 @@ if not block_codes: # 楂樹綅鏉挎硾鍖栨澘鍧椾腑鏃犳澘鍧� if not high_level_block_codes.get(block): - return False, True, f"{block}:鏉垮潡鏃犳定鍋�", False, False, 0, 0, 0 + return False, True, f"銆恵block}銆�:鏉垮潡鏃犳定鍋�", False, False, 0, 0, 0 elif len(block_codes) == 1 and code in block_codes: if not high_level_block_codes.get(block): return False, True, f"{block}:鏉垮潡鍙湁褰撳墠浠g爜娑ㄥ仠", False, False, 0, 0, 0 -- Gitblit v1.8.0