From ff6d60a42364ba8e2d0d5cfb5504454bee8017ad Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期四, 05 九月 2024 15:38:09 +0800 Subject: [PATCH] L2数据输出接口修改 --- third_data/code_plate_key_manager.py | 51 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 48 insertions(+), 3 deletions(-) diff --git a/third_data/code_plate_key_manager.py b/third_data/code_plate_key_manager.py index 7449bfd..aa002dc 100644 --- a/third_data/code_plate_key_manager.py +++ b/third_data/code_plate_key_manager.py @@ -19,7 +19,7 @@ from log_module import log, async_log_util from db import redis_manager_delegate as redis_manager -from log_module.log import logger_kpl_block_can_buy +from log_module.log import logger_kpl_block_can_buy, logger_debug from third_data.kpl_util import KPLPlatManager from trade import trade_manager, l2_trade_util, trade_constant @@ -1060,6 +1060,46 @@ 婵�杩涗拱鏉垮潡绠$悊 """ __TargetCodePlateKeyManager = TargetCodePlateKeyManager() + # 涓婃鐨勬定鍋滀唬鐮� + __last_limit_up_codes = set() + # 璁板綍浠g爜鐨勬定鍋滄椂闂� + __limit_up_time_dict = {} + # 鐐告澘浠g爜鐨勬�绘定鍋滄椂闂� + __total_limit_up_space_dict = {} + + # 褰撳墠娑ㄥ仠鐨勪唬鐮� + __current_limit_up_codes = set() + + @classmethod + def set_current_limit_up_datas(cls, current_limit_up_datas): + # 鏌ヨ褰撳墠鐨勬定鍋滀唬鐮侀泦鍚� + codes = set([d[0] for d in current_limit_up_datas]) + cls.__current_limit_up_codes = codes + try: + # 鐐告澘浠g爜 + break_limit_up_codes = cls.__last_limit_up_codes - codes + # 鏂版定鍋滅殑浠g爜 + new_limit_up_codes = codes - cls.__last_limit_up_codes + if new_limit_up_codes: + for code in new_limit_up_codes: + if code not in cls.__limit_up_time_dict: + cls.__limit_up_time_dict[code] = time.time() + if break_limit_up_codes: + # 璁板綍鎬绘定鍋滄椂闂� + for bc in break_limit_up_codes: + if bc in cls.__limit_up_time_dict: + space = tool.trade_time_sub(tool.get_now_time_str(), + tool.to_time_str(cls.__limit_up_time_dict[bc])) + if bc not in cls.__total_limit_up_space_dict: + cls.__total_limit_up_space_dict[bc] = 0 + cls.__total_limit_up_space_dict[bc] = cls.__total_limit_up_space_dict[bc] + space + logger_debug.info(f"鐐告澘浠g爜娑ㄥ仠鏃堕棿锛歿bc}-{cls.__total_limit_up_space_dict[bc]}") + cls.__limit_up_time_dict.pop(bc) + except Exception as e: + logger_debug.exception(e) + finally: + cls.__last_limit_up_codes = codes + cls.compute_open_limit_up_code_dict_for_radical_buy(current_limit_up_datas) @classmethod def compute_open_limit_up_code_dict_for_radical_buy(cls, current_limit_up_datas): @@ -1143,11 +1183,13 @@ 鑾峰彇鍘嗗彶娑ㄥ仠韬綅 @param code: @param block: - @param current_limit_up_datas: + @param current_limit_up_datas: 鏄ㄦ棩娑ㄥ仠浠g爜 + @param current_limit_up_codes: 鐩墠鐨勬定鍋滀唬鐮� @return: """ history_index = 0 block_codes_infos = [] + # 寮�1鏃堕棿鑼冨洿 timestamp_start, timestamp_end = kpl_block_util.open_limit_up_time_range limit_up_time = time.time() for k in LimitUpDataConstant.history_limit_up_datas: @@ -1168,7 +1210,10 @@ # 鍓旈櫎楂樹綅鏉� if _code in yesterday_limit_up_codes: continue - # 浠g爜.娑ㄥ仠鏃堕棿 + # 鍓旈櫎鐐告澘浠g爜鎸佺画娑ㄥ仠鏃堕棿灏忎簬1鍒嗛挓鐨勪唬鐮� + if _code not in cls.__current_limit_up_codes and _code in cls.__total_limit_up_space_dict and cls.__total_limit_up_space_dict[_code] < 60: + continue + # 浠g爜,娑ㄥ仠鏃堕棿 block_codes_infos.append((_code, int(k[5]))) block_codes_infos.append((code, limit_up_time)) block_codes_infos.sort(key=lambda x: x[1]) -- Gitblit v1.8.0