From b53b0f632cca75df8f39a17fab3d26caeecb2caf Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期五, 15 十一月 2024 18:44:23 +0800 Subject: [PATCH] 自定义板块净流入 --- huaxin_client/l1_client.py | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 41 insertions(+), 2 deletions(-) diff --git a/huaxin_client/l1_client.py b/huaxin_client/l1_client.py index 8ce91fd..4937ecc 100644 --- a/huaxin_client/l1_client.py +++ b/huaxin_client/l1_client.py @@ -10,6 +10,9 @@ import xmdapi 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,7 +135,13 @@ # (浠g爜, 鐜颁环, 娑ㄥ箙, 閲�, 褰撳墠鏃堕棿, 涔�1浠�, 涔�1閲�, 涔�2浠�, 涔�2閲�, 鏇存柊鏃堕棿) level1_data_dict[pMarketDataField.SecurityID] = ( pMarketDataField.SecurityID, pMarketDataField.LastPrice, rate, pMarketDataField.Volume, time.time(), - pMarketDataField.BidPrice1, pMarketDataField.BidVolume1, pMarketDataField.BidPrice2, pMarketDataField.BidVolume2, pMarketDataField.UpdateTime) + 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 __latest_subscript_codes = set() @@ -208,12 +217,36 @@ finally: time.sleep(3) +def __test_block_in_money(): + codes = BlockInMoneyRankManager().get_codes() + page_size = 200 + total_page = len(codes) // page_size + 1 -def run(queue_l1_w_strategy_r, queue_l1_r_strategy_w, fixed_codes=None): + 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): """ 杩愯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: """ @@ -272,6 +305,9 @@ threading.Thread(target=__run_subscript_task, args=(spi,), daemon=True).start() + # TODO 娴嬭瘯 + __test_block_in_money() + # 绛夊緟绋嬪簭缁撴潫 while True: print("鏁伴噺", len(level1_data_dict)) @@ -307,6 +343,9 @@ if len(datas) > 0: logger_l2_codes_subscript.info("寮�濮�#鍗庨懌L1涓婁紶浠g爜锛氭暟閲�-{}", len(datas)) __upload_codes_info(queue_l1_w_strategy_r, datas) + # 璁$畻娴佸叆娴佸嚭骞朵笂浼� + 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()) except Exception as e: logging.exception(e) logger_debug.exception(e) -- Gitblit v1.8.0