From 5ed30c03ddfedd4cf79cd8fea9fc45b05821d898 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期一, 16 十月 2023 12:44:07 +0800 Subject: [PATCH] 真实下单位置计算方法修改 --- third_data/kpl_block_util.py | 35 +++++++++++++++++++++++++---------- 1 files changed, 25 insertions(+), 10 deletions(-) diff --git a/third_data/kpl_block_util.py b/third_data/kpl_block_util.py index f229381..673b534 100644 --- a/third_data/kpl_block_util.py +++ b/third_data/kpl_block_util.py @@ -13,15 +13,16 @@ # 鏄惁涓绘澘寮�1 # limit_up_record_datas 浠婃棩鍘嗗彶娑ㄥ仠 -def is_shsz_open_limit_up(code, block, limit_up_record_datas, code_block_dict): +def get_shsz_open_limit_up_codes(code, block, limit_up_record_datas, code_block_dict): # 鑾峰彇浠婃棩9锛�30鐨勬椂闂存埑 time_str = datetime.datetime.now().strftime("%Y-%m-%d") + " 09:30:00" timestamp = time.mktime(time.strptime(time_str, '%Y-%m-%d %H:%M:%S')) + limit_up_codes = set() for k in limit_up_record_datas: if code_block_dict.get(k[3]) == block: if int(k[5]) < timestamp: - return True, f"{k[3]}寮�涓�" - return False, "" + limit_up_codes.add(k[3]) + return limit_up_codes # 浠g爜鏄惁鏄悗鎺� @@ -87,7 +88,7 @@ return False, block_codes_infos[:topn] -def is_record_top_block(code, block, limit_up_record_datas,yesterday_current_limit_up_codes, topn): +def is_record_top_block(code, block, limit_up_record_datas, yesterday_current_limit_up_codes, topn): block_codes_infos = [] limit_up_time = time.time() for k in limit_up_record_datas: @@ -123,11 +124,15 @@ # 鑾峰彇褰撴棩鍘嗗彶韬綅 # shsz:鏄惁涓绘澘 -def get_code_record_rank(code, block, limit_up_record_datas, code_limit_up_reason_dict, shsz=True): +def get_code_record_rank(code, block, limit_up_record_datas, code_limit_up_reason_dict, + yesterday_current_limit_up_codes, shsz=True): block_codes_infos = [] limit_up_time = time.time() for k in limit_up_record_datas: if shsz and k[3].find("00") != 0 and k[3].find("60") != 0: + continue + # 鍓旈櫎楂樹綅鏉� + if k[3] in yesterday_current_limit_up_codes: continue if code_limit_up_reason_dict.get(k[3]) == block: if k[3] != code: @@ -136,19 +141,26 @@ limit_up_time = int(k[5]) block_codes_infos.append((code, limit_up_time)) block_codes_infos.sort(key=lambda x: x[1]) + front_codes = [] for i in range(0, len(block_codes_infos)): if block_codes_infos[i][0] == code: - return i - return 0 + return i, front_codes + else: + front_codes.append(block_codes_infos[i][0]) + return 0,[] # 鑾峰彇褰撴棩瀹炴椂韬綅 # before_blocks_dict鏍煎紡浣峽"浠g爜":set("鏉垮潡")} -def get_code_current_rank(code, block, current_limit_up_datas, code_limit_up_reason_dict, shsz=False): +def get_code_current_rank(code, block, current_limit_up_datas, code_limit_up_reason_dict, + yesterday_current_limit_up_codes, shsz=False): block_codes_infos = [] limit_up_time = time.time() for k in current_limit_up_datas: if shsz and k[0].find("00") != 0 and k[0].find("60") != 0: + continue + # 鍓旈櫎楂樹綅鏉� + if k[0] in yesterday_current_limit_up_codes: continue if code_limit_up_reason_dict.get(k[0]) == block: if k[0] != code: @@ -158,10 +170,13 @@ limit_up_time = int(k[2]) block_codes_infos.append((code, limit_up_time)) block_codes_infos.sort(key=lambda x: x[1]) + front_codes = [] for i in range(0, len(block_codes_infos)): if block_codes_infos[i][0] == code: - return i - return 0 + return i, front_codes + else: + front_codes.append(block_codes_infos[i][0]) + return 0,[] if __name__ == "__main__": -- Gitblit v1.8.0