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