From 09991e316ce092d0b05a198aad9d58e78e06f69b Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期四, 23 五月 2024 10:55:13 +0800 Subject: [PATCH] bug修复 --- huaxin_client/l2_client_for_cb.py | 40 +++++++++++++++++++++++++--------------- 1 files changed, 25 insertions(+), 15 deletions(-) diff --git a/huaxin_client/l2_client_for_cb.py b/huaxin_client/l2_client_for_cb.py index cee96b9..b5f9a42 100644 --- a/huaxin_client/l2_client_for_cb.py +++ b/huaxin_client/l2_client_for_cb.py @@ -12,7 +12,6 @@ import time import concurrent.futures - from code_attribute import target_codes_manager from code_attribute.history_k_data_util import JueJinApi, JueJinHttpApi from huaxin_client import command_manager @@ -50,8 +49,6 @@ market_code_dict = {} - - class Lev2MdSpi(lev2mdapi.CTORATstpLev2MdSpi): special_code_volume_for_order_dict = {} # 宸茬粡璁㈤槄鐨勪唬鐮� @@ -76,9 +73,10 @@ szse_codes = [] sse_codes = [] for code in codes: - if code.find("00") == 0 or code.find("30") == 0: + market_type = tool.get_market_type(code) + if market_type == tool.MARKET_TYPE_SZSE: szse_codes.append(code.encode()) - elif code.find("60") == 0 or code.find("68") == 0: + elif market_type == tool.MARKET_TYPE_SSE: sse_codes.append(code.encode()) return sse_codes, szse_codes @@ -279,12 +277,20 @@ rate = round( (pDepthMarketData['LastPrice'] - pDepthMarketData['PreClosePrice']) / pDepthMarketData['PreClosePrice'], 4) + # 浠g爜, 鏈�杩戠殑浠锋牸, 娑ㄥ箙, 涔�1浠凤紝 涔�1閲�, 鎴愪氦鎬婚噺, 濮旀墭涔板叆鎬婚噺, 濮旀墭鍗栧嚭鎬婚噺 + + market_call_back_queue.put_nowait((pDepthMarketData['SecurityID'], pDepthMarketData['LastPrice'], rate, + pDepthMarketData['BidPrice1'], pDepthMarketData['BidVolume1'], + pDepthMarketData['TotalVolumeTrade'], pDepthMarketData['TotalBidVolume'], pDepthMarketData['TotalAskVolume'])) code = pDepthMarketData['SecurityID'] if code.find("00") == 0 or code.find("60") == 0: if rate >= 0.05: self.__high_rate_codes.add(code) else: self.__high_rate_codes.discard(code) + elif code.find("11") == 0 or code.find("12") == 0: + # 杩囨护鍙浆鍊� + pass else: if rate >= 0.10: self.__high_rate_codes.add(code) @@ -383,29 +389,32 @@ 鍒濆鍖栨暟鎹� :return: """ - codes = [] + market_codes = [] # 鑾峰彇鐩爣浠g爜 for i in range(3): try: - codes = target_codes_manager.get_subscript_codes() - if codes: + underlying_codes = target_codes_manager.get_subscript_underlying_codes() + cb_codes = target_codes_manager.get_subscript_cb_codes() + if underlying_codes and cb_codes: + market_codes.extend(underlying_codes) + market_codes.extend(cb_codes) break except Exception as e: logger_system.exception(e) time.sleep(5) - logger_system.info(f'鍙浆鍊烘鑲℃暟閲忥細{len(codes)}') - if codes: + logger_system.info(f'璁㈤槄琛屾儏鏁伴噺锛歿len(market_codes)}') + if market_codes: # 鑾峰彇鐩爣浠g爜鐨勬敹鐩樹环 pre_price_dict = {} for i in range(3): try: - pre_price_dict = get_pre_price(codes) + pre_price_dict = get_pre_price(market_codes) if pre_price_dict: break except Exception as e: logger_system.exception(e) time.sleep(5) - logger_system.info(f'鍙浆鍊烘鑲℃槰鏃ユ敹鐩樹环鏁伴噺锛歿len(codes)}') + logger_system.info(f'鏄ㄦ棩鏀剁洏浠锋暟閲忥細{len(market_codes)}') if pre_price_dict: for k in pre_price_dict: if k.find("00") == 0 or k.find("60") == 0: @@ -413,7 +422,7 @@ else: limit_up_price = tool.to_price(decimal.Decimal(str(pre_price_dict[k])) * decimal.Decimal("1.2")) Lev2MdSpi.limit_up_price_dict[k] = round(float(limit_up_price), 2) - return codes + return market_codes def start_sub_high_price(): @@ -425,7 +434,7 @@ time.sleep(3) -def run(trade_call_back_queue_: multiprocessing.Queue) -> None: +def run(trade_call_back_queue_: multiprocessing.Queue, market_call_back_queue_: multiprocessing.Queue) -> None: """ 鍏堣闃呮墍鏈夌殑L2market琛屾儏鏁版嵁锛岀瓫閫夊嚭姣旇緝澶х殑娑ㄥ箙锛堜富鏉�>5%,绉戝垱鏉�/鍒涗笟鏉�>10%锛夌殑绁紝鐒跺悗璁㈤槄鍏朵氦鎴愪氦L2鏁版嵁 :param trade_call_back_queue_: 娣诲姞鐨勫唴瀹规牸寮忎负锛氾紙浠g爜,浜ゆ槗鏃堕棿锛� @@ -436,8 +445,9 @@ try: # log.close_print() # 鍒濆鍖� - global trade_call_back_queue + global trade_call_back_queue, market_call_back_queue trade_call_back_queue = trade_call_back_queue_ + market_call_back_queue = market_call_back_queue_ codes = __init_data() __init_l2(codes) -- Gitblit v1.8.0