From 97ec997e855faee25f8f2e35734f87afa5af6f95 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期二, 27 八月 2024 17:15:21 +0800 Subject: [PATCH] 9:25之前的订阅数据处理 --- huaxin_client/l1_client.py | 56 +++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 39 insertions(+), 17 deletions(-) diff --git a/huaxin_client/l1_client.py b/huaxin_client/l1_client.py index 558f08e..05e29af 100644 --- a/huaxin_client/l1_client.py +++ b/huaxin_client/l1_client.py @@ -123,7 +123,22 @@ return close_price = round(pMarketDataField.UpperLimitPrice / out_tool.get_limit_up_rate(pMarketDataField.SecurityID), 2) - rate = round((pMarketDataField.LastPrice - close_price) * 100 / close_price, 2) + try: + # 娴嬭瘯L1鏁版嵁 + if pMarketDataField.SecurityID == '600636' or pMarketDataField.SecurityID == '002430' or pMarketDataField.SecurityID == '300466': + d = {"SecurityID": pMarketDataField.SecurityID, "PreClosePrice": pMarketDataField.PreClosePrice, + "LastPrice": pMarketDataField.LastPrice, "BidPrice1": pMarketDataField.BidPrice1, + "BidVolume1": pMarketDataField.BidVolume1, "AskVolume1": pMarketDataField.AskVolume1, + "AskPrice1": pMarketDataField.AskPrice1, "UpperLimitPrice": pMarketDataField.UpperLimitPrice, + "UpdateTime": pMarketDataField.UpdateTime, "UpdateMillisec": pMarketDataField.UpdateMillisec} + logger_local_huaxin_l1.info(f"L1鏁版嵁锛歿d}") + except: + pass + + lastPrice = pMarketDataField.LastPrice + if pMarketDataField.BidPrice1: + lastPrice = pMarketDataField.BidPrice1 + rate = round((lastPrice - close_price) * 100 / close_price, 2) if out_tool.get_limit_up_rate(pMarketDataField.SecurityID) > 1.1001: # 娑ㄥ仠鏉�20%浠ヤ笂鐨勬墦鎶� rate = rate / 2 @@ -165,16 +180,9 @@ logger_local_huaxin_l1.info(f"({request_id})鏂板鍔犺闃呯殑浠g爜锛歿add_codes}") -is_re_subscript = False - - # 閲嶆柊璁㈤槄浠g爜 def re_subscript(spi: MdSpi): try: - global is_re_subscript - if is_re_subscript: - return - is_re_subscript = True codes_sh, codes_sz = l1_subscript_codes_manager.request_l1_subscript_target_codes() if len(codes_sh) > 100 and len(codes_sz) > 100: logger_local_huaxin_l1.info(f"閲嶆柊璁㈤槄 sh-{len(codes_sh)} sz-{len(codes_sz)}") @@ -201,6 +209,26 @@ pass finally: time.sleep(1) + + +def __run_subscript_task(spi): + """ + 杩愯璁㈤槄浠诲姟锛屽湪9:19鍒�9:29涔嬮棿寮�濮嬭闃� + @return: + """ + is_re_subscript = False + while True: + try: + # 鍒ゆ柇鏄惁闇�瑕侀噸鏂拌闃� + if tool.is_pre_trade_time(): + re_subscript(spi) + is_re_subscript = True + if is_re_subscript: + break + except: + pass + finally: + time.sleep(3) def run(queue_l1_w_strategy_r, queue_l1_r_strategy_w): @@ -254,6 +282,9 @@ # "002292", 8.06, 9.96, 969500 * 100, time.time()) threading.Thread(target=__read_from_strategy, args=(queue_l1_r_strategy_w,), daemon=True).start() + + threading.Thread(target=__run_subscript_task, args=(spi,), daemon=True).start() + # 绛夊緟绋嬪簭缁撴潫 while True: print("鏁伴噺", len(level1_data_dict)) @@ -294,15 +325,6 @@ logging.exception(e) finally: time.sleep(3) - try: - # 鍒ゆ柇鏄惁闇�瑕侀噸鏂拌闃� - if tool.is_pre_trade_time(): - re_subscript(spi) - else: - global is_re_subscript - is_re_subscript = False - except: - pass # 閲婃斁鎺ュ彛瀵硅薄 api.Release() -- Gitblit v1.8.0