From 6a0d3ff5832e57ee1b1374d086f24b3c1679b332 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期五, 05 九月 2025 18:22:24 +0800 Subject: [PATCH] bug修复/降低测撤单率 --- huaxin_client/l1_client.py | 55 ++++++++----------------------------------------------- 1 files changed, 8 insertions(+), 47 deletions(-) diff --git a/huaxin_client/l1_client.py b/huaxin_client/l1_client.py index 356719b..0ee112f 100644 --- a/huaxin_client/l1_client.py +++ b/huaxin_client/l1_client.py @@ -11,8 +11,6 @@ from huaxin_client import tool, constant from log_module.log import logger_system, logger_local_huaxin_l1, logger_l2_codes_subscript, logger_debug from third_data import custom_block_in_money_manager -from third_data.custom_block_in_money_manager import BlockInMoneyRankManager, CodeInMoneyManager -from third_data.history_k_data_util import HistoryKDatasUtils, JueJinApi from utils import tool as out_tool ################B绫�################## @@ -132,16 +130,12 @@ if out_tool.get_limit_up_rate(pMarketDataField.SecurityID) > 1.1001: # 娑ㄥ仠鏉�20%浠ヤ笂鐨勬墦鎶� rate = rate / 2 - # (浠g爜, 鐜颁环, 娑ㄥ箙, 閲�, 褰撳墠鏃堕棿, 涔�1浠�, 涔�1閲�, 涔�2浠�, 涔�2閲�, 鏇存柊鏃堕棿) + # (浠g爜, 鐜颁环, 娑ㄥ箙, 閲�, 褰撳墠鏃堕棿, 涔�1浠�, 涔�1閲�, 涔�2浠�, 涔�2閲�, 鏇存柊鏃堕棿, 鍗�1浠�, 鍗�1閲�) level1_data_dict[pMarketDataField.SecurityID] = ( pMarketDataField.SecurityID, pMarketDataField.LastPrice, rate, pMarketDataField.Volume, time.time(), pMarketDataField.BidPrice1, pMarketDataField.BidVolume1, pMarketDataField.BidPrice2, - pMarketDataField.BidVolume2, pMarketDataField.UpdateTime) - try: - custom_block_in_money_manager.CodeInMoneyManager.set_market_info(pMarketDataField.SecurityID, lastPrice, - close_price, pMarketDataField.Turnover) - except: - pass + pMarketDataField.BidVolume2, pMarketDataField.UpdateTime, pMarketDataField.AskPrice1, + pMarketDataField.AskVolume1) __latest_subscript_codes = set() @@ -217,43 +211,19 @@ finally: time.sleep(3) -def __test_block_in_money(): - codes = BlockInMoneyRankManager().get_codes() - logger_debug.info("鑾峰彇鍒版祴璇曞噣娴佸叆浠g爜鏁伴噺锛歿}", len(codes)) - page_size = 200 - total_page = len(codes) // page_size + 1 - for i in range(0, total_page): - temp_codes = codes[i * page_size: (i + 1) * page_size] - print(temp_codes) - # 鑾峰彇鏈�杩戠殑淇℃伅 - latest_infos = HistoryKDatasUtils.get_gp_latest_info(temp_codes, "sec_id,pre_close") - pre_close_dict = {x["sec_id"]: x["pre_close"] for x in latest_infos} - - current_infos = JueJinApi.get_gp_current_info(temp_codes, "symbol,price,cum_amount") - current_infos = {x["symbol"].split(".")[1]: (x["price"], x["cum_amount"]) for x in - current_infos} - - for code in current_infos: - if code not in pre_close_dict: - continue - CodeInMoneyManager.set_market_info(code, current_infos[code][0], pre_close_dict[code], - current_infos[code][1]) - - -def run(queue_l1_w_strategy_r, queue_l1_r_strategy_w, queue_custom_block_in_money, fixed_codes=None): +def run(queue_l1_w_strategy_r, queue_l1_r_strategy_w, fixed_codes=None): """ 杩愯l1璁㈤槄浠诲姟 @param queue_l1_w_strategy_r: L1鏂瑰啓锛岀瓥鐣ユ柟璇� @param queue_l1_r_strategy_w: L1鏂硅锛岀瓥鐣ユ柟鍐� - @param queue_custom_block_in_money: 鏉垮潡娴佸叆娴佸嚭璁$畻缁撴灉 @param fixed_codes: 鍥哄畾瑕佽繑鍥炴暟鎹殑浠g爜 @return: """ if fixed_codes is None: fixed_codes = set() - logger_local_huaxin_l1.info("杩愯l1璁㈤槄鏈嶅姟") + logger_local_huaxin_l1.info(f"杩愯l1璁㈤槄鏈嶅姟锛屽浐瀹氫唬鐮侊細{fixed_codes}") codes_sh = [] codes_sz = [] for i in range(15): @@ -306,17 +276,10 @@ threading.Thread(target=__run_subscript_task, args=(spi,), daemon=True).start() - # 娴嬭瘯 - __test_block_in_money() - # 绛夊緟绋嬪簭缁撴潫 while True: - print("鏁伴噺", len(level1_data_dict)) + # print("鏁伴噺", len(level1_data_dict)) try: - # 璁$畻娴佸叆娴佸嚭骞朵笂浼� - custom_block_in_money_manager.BlockInMoneyRankManager().compute() - queue_custom_block_in_money.put_nowait((custom_block_in_money_manager.BlockInMoneyRankManager().get_in_list(), custom_block_in_money_manager.BlockInMoneyRankManager().get_out_list())) - if len(level1_data_dict) < 1: continue # 鏍规嵁娑ㄥ箙鎺掑簭 @@ -325,11 +288,10 @@ list_ = [level1_data_dict[k] for k in level1_data_dict] flist = [] now_time_int = int(tool.get_now_time_str().replace(":", "")) - threshold_rate = constant.L1_MIN_RATE_PRE if now_time_int < int( - "094000") else constant.L1_MIN_RATE + threshold_rate = constant.L1_MIN_RATE for d in list_: if d[2] >= threshold_rate or d[0] in fixed_codes: - # 娑ㄥ箙灏忎簬5%鐨勯渶瑕佸垹闄� + # 娑ㄥ箙灏忎簬3%鐨勯渶瑕佸垹闄� flist.append(d) flist.sort(key=lambda x: x[2], reverse=True) # 灏嗗浐瀹氫唬鐮佺殑鎺掑湪鏈�鍓� @@ -348,7 +310,6 @@ if len(datas) > 0: logger_l2_codes_subscript.info("寮�濮�#鍗庨懌L1涓婁紶浠g爜锛氭暟閲�-{}", len(datas)) __upload_codes_info(queue_l1_w_strategy_r, datas) - except Exception as e: logging.exception(e) logger_debug.exception(e) -- Gitblit v1.8.0