From 73e4f3990342d1fd01da1ff39e9f4fb0d62745e7 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期四, 05 十二月 2024 22:34:05 +0800 Subject: [PATCH] bug修复 --- third_data/code_plate_key_manager.py | 72 +++++++++++++++++++++++------------- 1 files changed, 46 insertions(+), 26 deletions(-) diff --git a/third_data/code_plate_key_manager.py b/third_data/code_plate_key_manager.py index 47f8d38..07ea293 100644 --- a/third_data/code_plate_key_manager.py +++ b/third_data/code_plate_key_manager.py @@ -12,8 +12,7 @@ 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 third_data.kpl_data_constant import LimitUpCodesBlockRecordManager -from third_data.kpl_limit_up_data_manager import ContainsLimitupCodesBlocksManager +from third_data.kpl_data_constant import LimitUpCodesBlockRecordManager, ContainsLimitupCodesBlocksManager from third_data.third_blocks_manager import BlockMapManager from utils import global_util, tool, buy_condition_util from log_module import async_log_util @@ -21,7 +20,7 @@ from log_module.log import logger_kpl_block_can_buy, logger_kpl_jx_out, logger_kpl_jx_in, logger_debug from third_data.kpl_util import KPLPlatManager -from trade import trade_manager, l2_trade_util, trade_constant +from trade import l2_trade_util, trade_constant # 浠g爜绮鹃�夋澘鍧楃鐞� from utils.kpl_data_db_util import KPLLimitUpDataUtil @@ -353,12 +352,30 @@ __top_jx_out_blocks = [] # 绮鹃�夋澘鍧楁祦鍏ラ噾棰� __jx_blocks_in_money_dict = {} + # 甯傚満琛屾儏鐑害锛岄粯璁や负60 + __market_strong = 60 + + @classmethod + def get_jingxuan_in_block_threshold_count(cls): + """ + 鑾峰彇涔扮簿閫夋祦鍏ュ墠鍑� + @return: + """ + score = 60 + if cls.__market_strong is not None: + score = int(cls.__market_strong) + score = score // 10 + if score >= 10: + score = 9 + if score < 6: + score = 5 + return score * 2 - 2 @classmethod def set_market_jingxuan_blocks(cls, datas): """ 璁剧疆绮鹃�夋祦鍏ユ暟鎹� - @param datas: + @param datas:[(鏉垮潡缂栧彿,鏉垮潡鍚嶇О,娑ㄥ箙, 鏉垮潡娴佸叆閲戦)] @return: """ # 娴佸叆闃堝�� @@ -366,6 +383,8 @@ THRESHOLD_MONEY = min(THRESHOLD_MONEY, 10000) THRESHOLD_MONEY = max(THRESHOLD_MONEY, 1000) THRESHOLD_MONEY = THRESHOLD_MONEY * 10000 + # 鏈�澶ф暟閲� + MAX_COUNT = cls.get_jingxuan_in_block_threshold_count() cls.top_in_list_cache = datas blocks = set() @@ -382,7 +401,6 @@ if blocks & fb: continue - for b in fb: fblock_money[b] = data[3] blocks |= fb @@ -396,7 +414,7 @@ if has_code: count += 1 - if count >= 10: + if count >= MAX_COUNT: break # 璁板綍绮鹃�夋祦鍑烘棩蹇� async_log_util.info(logger_kpl_jx_in, f"鍘熸暟鎹細{datas[:20]} 鏉垮潡锛歿blocks}") @@ -432,6 +450,19 @@ # 璁板綍绮鹃�夋祦鍑烘棩蹇� async_log_util.info(logger_kpl_jx_out, f"鍘熸暟鎹細{datas[:10]} 鏉垮潡锛歿blocks}") cls.__top_jx_out_blocks = list(blocks) + + @classmethod + def set_market_strong(cls, strong): + """ + 璁剧疆甯傚満琛屾儏寮哄害 + @param strong: + @return: + """ + cls.__market_strong = strong + + @classmethod + def get_market_strong(cls): + return cls.__market_strong @classmethod def get_top_market_jingxuan_blocks(cls): @@ -671,19 +702,7 @@ __TargetCodePlateKeyManager = TargetCodePlateKeyManager() __LimitUpCodesPlateKeyManager = LimitUpCodesPlateKeyManager() __CodesHisReasonAndBlocksManager = CodesHisReasonAndBlocksManager() - __CodesTradeStateManager = trade_manager.CodesTradeStateManager() __can_buy_compute_result_dict = {} - - @classmethod - def __remove_from_l2(cls, code, msg): - # 鏍规嵁韬綅绉婚櫎浠g爜 - # return - # 涓嬭繃鍗曠殑浠g爜涓嶇Щ闄� - if trade_manager.CodesTradeStateManager().get_trade_state_cache(code) != trade_constant.TRADE_STATE_NOT_TRADE: - # 鍙涓嬭繃鍗曠殑灏变笉绉婚櫎 - return - l2_trade_util.forbidden_trade(code, msg=msg) - logger_kpl_block_can_buy.info(msg) # 鏄惁闇�瑕佺Н鏋佷拱 @classmethod @@ -1021,7 +1040,8 @@ @classmethod def __compute_can_buy_blocks(cls, code, current_limit_up_datas, limit_up_record_datas, yesterday_current_limit_up_codes, before_blocks_dict, - current_limit_up_block_codes_dict, high_level_general_code_blocks): + current_limit_up_block_codes_dict, high_level_general_code_blocks, codes_delegate, + codes_success): # 鏍规嵁浠g爜娉涘寲鏉垮潡鑾峰彇娉涘寲鏉垮潡鐨勪唬鐮侀泦鍚� high_level_general_block_codes = {} for c in high_level_general_code_blocks: @@ -1037,10 +1057,7 @@ high_level_general_block_codes) if not blocks_compute_results: return False, True, f"娌℃湁鎵惧埌鏉垮潡", [], keys, [] - codes_delegate = set(cls.__CodesTradeStateManager.get_codes_by_trade_states_cache( - {trade_constant.TRADE_STATE_BUY_DELEGATED, trade_constant.TRADE_STATE_BUY_PLACE_ORDER})) - codes_success = set(cls.__CodesTradeStateManager.get_codes_by_trade_states_cache( - {trade_constant.TRADE_STATE_BUY_SUCCESS})) + codes = codes_delegate | codes_success # 缁熻鎴愪氦浠g爜鐨勬澘鍧� trade_codes_blocks_dict = {} @@ -1119,7 +1136,7 @@ @classmethod def update_can_buy_blocks(cls, code, current_limit_up_datas, limit_up_record_datas, latest_current_limit_up_records, - before_blocks_dict, current_limit_up_block_codes_dict): + before_blocks_dict, current_limit_up_block_codes_dict, delegate_codes, deal_codes): yesterday_current_limit_up_codes = set() yesterday_current_limit_up_records_dict = {} yesterday_current_limit_up_records = latest_current_limit_up_records[0][1] @@ -1153,11 +1170,14 @@ yesterday_current_limit_up_codes, before_blocks_dict, current_limit_up_block_codes_dict, - high_level_general_code_blocks) + high_level_general_code_blocks, + delegate_codes, + deal_codes) # 淇濆瓨鏉垮潡璁$畻缁撴灉 cls.__can_buy_compute_result_dict[code] = ( can_buy_blocks, unique, msg, can_buy_strong_blocks, keys, active_buy_blocks) if __name__ == "__main__": - pass + RealTimeKplMarketData.set_market_strong(120) + print(RealTimeKplMarketData.get_jingxuan_in_block_threshold_count()) -- Gitblit v1.8.0