From cf4df50c71235bfa6ee73776c556ee1f95ce6356 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期一, 15 七月 2024 16:59:55 +0800 Subject: [PATCH] 独苗定义强化 --- code_attribute/first_target_code_data_processor.py | 71 +++++++++-------------------------- 1 files changed, 19 insertions(+), 52 deletions(-) diff --git a/code_attribute/first_target_code_data_processor.py b/code_attribute/first_target_code_data_processor.py index d3d265f..eaff5e7 100644 --- a/code_attribute/first_target_code_data_processor.py +++ b/code_attribute/first_target_code_data_processor.py @@ -12,6 +12,7 @@ from code_attribute.gpcode_manager import WantBuyCodesManager from log_module.log import logger_first_code_record, logger_l2_codes_subscript from third_data.code_plate_key_manager import CodesHisReasonAndBlocksManager +from third_data.history_k_data_manager import HistoryKDataManager from third_data.history_k_data_util import HistoryKDatasUtils, JueJinApi from ths import l2_code_operate from trade import trade_data_manager, l2_trade_util @@ -41,9 +42,12 @@ def process_first_codes_datas(dataList, request_id=None): logger_l2_codes_subscript.info(f"{request_id}鍔犺浇l2浠g爜鐩稿叧鏁版嵁") - print("棣栨澘浠g爜鏁伴噺锛�", len(dataList)) # 鑾峰彇鏈�杩�5澶╃殑浜ゆ槗鏃ユ湡锛屼负鍚庨潰鐨勬暟鎹绠楀仛鍑嗗 - HistoryKDatasUtils.get_latest_trading_date_cache(5) + dates = HistoryKDatasUtils.get_latest_trading_date_cache(5) + latest_trading_date = None + if dates: + latest_trading_date = dates[0] + limit_up_price_dict = {} temp_codes = [] codes = [] @@ -73,43 +77,14 @@ dataList.append({"code": code, "price": f"{_limit_up_price}", "volume": "0", "volumeUnit": 0, "time": "00:00:00", "zyltgb": "100", "zyltgbUnit": 0}) - - # ---淇濆瓨鏈瓫閫夌殑棣栨澘浠g爜 - new_add_codes = gpcode_first_screen_manager.set_target_no_screen_codes(codes) - # 淇濆瓨鑷敱娴侀�氳偂鏈紝鏆傛椂涓嶄繚瀛� - # if dataList: - # zyltgb_list = [] - # for data in dataList: - # code = data["code"] - # if code in global_util.zyltgb_map: - # continue - # zyltgb_list.append( - # {"code": code, "zyltgb": data["zyltgb"], "zyltgb_unit": data["zyltgbUnit"]}) - # if zyltgb_list: - # ZYLTGBUtil.save_list(zyltgb_list) - # global_data_loader.load_zyltgb() - # 鑾峰彇鏄ㄦ棩鏀剁洏浠� + need_get_limit_up_codes = set() for code in codes: # 濡傛灉娑ㄥ仠浠锋槸绌哄�煎氨闇�瑕佽缃槰鏃ユ敹鐩樹环鏍� if gpcode_manager.get_limit_up_price(code) is None: - init_data_util.re_set_price_pres([code], True) - - # 鏉垮潡鍏抽敭瀛楀噯澶� 鏆傛椂鍒犻櫎 - # for code in codes: - # if __CodesPlateKeysManager.get_history_limit_up_reason(code) is None: - # # 浠庢暟鎹簱鍔犺浇鍘嗗彶娑ㄥ仠鍘熷洜 - # __CodesPlateKeysManager.set_history_limit_up_reason(code, - # KPLLimitUpDataRecordManager.get_latest_blocks_set( - # code)) - # if __CodesPlateKeysManager.get_blocks(code) is None: - # try: - # results = kpl_api.getStockIDPlate(code) - # bs = [r[1] for r in results] - # __CodesPlateKeysManager.set_blocks(code, bs) - # except Exception as e: - # logging.exception(e) - # pass + need_get_limit_up_codes.add(code) + if need_get_limit_up_codes: + init_data_util.re_set_price_pres(list(need_get_limit_up_codes), True) logger_l2_codes_subscript.info(f"{request_id}鍔犺浇l2浠g爜娑ㄥ仠浠风粨鏉�") # 鑾峰彇60澶╂渶澶ц褰� for code in codes: @@ -125,7 +100,12 @@ if limit_up_price is None: continue try: - volumes_data = init_data_util.get_volumns_by_code(code, 150) + # 棣栧厛浠庣紦瀛橀噷闈㈣幏鍙� + volumes_data = None + if latest_trading_date: + volumes_data = HistoryKDataManager().get_history_bars(code, latest_trading_date) + if not volumes_data: + volumes_data = init_data_util.get_volumns_by_code(code, 150) volumes = init_data_util.parse_max_volume(code, volumes_data[:90], code_nature_analyse.is_new_top(code, limit_up_price, @@ -156,7 +136,8 @@ l2_trade_util.forbidden_trade(code, f"鏃犺鲸璇嗗害锛屾定鍋滀环({limit_up_price})>50") continue - if code_nature_analyse.is_price_too_high_in_days(code, volumes_data, limit_up_price)[0] and code.find("30")!=0: + if code_nature_analyse.is_price_too_high_in_days(code, volumes_data, limit_up_price)[ + 0] and code.find("30") != 0: # 鍒ゆ柇鏄惁澶珮 l2_trade_util.forbidden_trade(code, "6澶╁唴鑲′环闀垮緱澶珮") continue @@ -199,7 +180,7 @@ # gpcode_manager.get_limit_up_price(code), # volumes_data) except Exception as e: - logger_first_code_record.error(f"{code}:{str(e)}") + logger_first_code_record.error(f"{request_id}-{code}:{str(e)}") logger_first_code_record.exception(e) logger_l2_codes_subscript.info(f"{request_id}鍔犺浇l2浠g爜K绾跨粨鏉�") @@ -208,20 +189,6 @@ # 鍒濆鍖栨澘鍧椾俊鎭紝鏆傛椂鍒犻櫎 # for code in codes: # block_info.init_code(code) - - if new_add_codes: - gpcode_manager.FirstGPCodesManager().set_first_gp_codes_with_data(HistoryKDatasUtils.get_gp_latest_info(codes, - fields="symbol,sec_name,sec_type,sec_level")) - # 鍔犲叆棣栨澘鍘嗗彶璁板綍 - logger_first_code_record.info("鏂板棣栨澘锛歿}", new_add_codes) - - # 绉婚櫎浠g爜 - if constant.L2_SOURCE_TYPE == constant.L2_SOURCE_TYPE_THS: - listen_codes = gpcode_manager.get_listen_codes() - for lc in listen_codes: - if not gpcode_manager.is_in_gp_pool(lc): - # 绉婚櫎浠g爜 - l2_code_operate.L2CodeOperate.get_instance().add_operate(0, lc, "浠g爜琚Щ闄�") # 淇濆瓨鐜颁环 if dataList: situation = MarketSituationManager().get_situation_cache() -- Gitblit v1.8.0