huaxin_client/l2_client.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
huaxin_client/l2_data_manager.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
huaxin_client/l2_client.py
@@ -303,11 +303,12 @@ min_volume, limit_up_price = self.codes_volume_and_price_dict.get(code) # 输出逐笔成交数据 if pTransaction['ExecType'] == b"2": transaction_big_order_nos = l2_data_manager.get_latest_transaction_order_nos(code) if transaction_big_order_nos and pTransaction['BuyNo'] in transaction_big_order_nos: # 正在成交的订单撤单了 l2_data_manager.trading_order_canceled(code, pTransaction['BuyNo']) async_log_util.info(logger_local_huaxin_g_cancel, f"G撤撤单:{code} - {pTransaction['BuyNo']}") # G撤数据暂时注释 # transaction_big_order_nos = l2_data_manager.get_latest_transaction_order_nos(code) # if transaction_big_order_nos and pTransaction['BuyNo'] in transaction_big_order_nos: # # 正在成交的订单撤单了 # l2_data_manager.trading_order_canceled(code, pTransaction['BuyNo']) # async_log_util.info(logger_local_huaxin_g_cancel, f"G撤撤单:{code} - {pTransaction['BuyNo']}") if min_volume is None: # 默认筛选50w if pTransaction['TradePrice'] * pTransaction['Volume'] < 500000: @@ -377,12 +378,13 @@ else: self.special_code_volume_for_order_dict.pop(code) if not can_listen: if pOrderDetail['OrderStatus'] == b'D': transaction_big_order_nos = l2_data_manager.get_latest_transaction_order_nos(code) if transaction_big_order_nos and pOrderDetail['OrderNO'] in transaction_big_order_nos: # 正在成交的订单撤单了 l2_data_manager.trading_order_canceled(code, pOrderDetail['OrderNO']) async_log_util.info(logger_local_huaxin_g_cancel, f"G撤撤单:{code} - {pOrderDetail['OrderNO']}") # 暂时注释掉G撤相关数据产生 # if pOrderDetail['OrderStatus'] == b'D': # transaction_big_order_nos = l2_data_manager.get_latest_transaction_order_nos(code) # if transaction_big_order_nos and pOrderDetail['OrderNO'] in transaction_big_order_nos: # # 正在成交的订单撤单了 # l2_data_manager.trading_order_canceled(code, pOrderDetail['OrderNO']) # async_log_util.info(logger_local_huaxin_g_cancel, f"G撤撤单:{code} - {pOrderDetail['OrderNO']}") min_volume, limit_up_price = self.codes_volume_and_price_dict.get(code) if min_volume is None: # 默认筛选50w @@ -399,23 +401,6 @@ "SubSeq": pOrderDetail['SubSeq'], "OrderNO": pOrderDetail['OrderNO'], "OrderStatus": pOrderDetail['OrderStatus'].decode()} l2_data_manager.add_l2_order_detail(item) # logger_local_huaxin_l2_orderdetail.info( # "OnRtnOrderDetail SecurityID[%s] Price[%.2f] Volume[%d] Side[%s] OrderType[%s] OrderTime[%d] MainSeq[%d] SubSeq[%d] OrderNO[%s] OrderStatus[%s] Info1[%d] Info2[%d] Info3[%d]" % ( # pOrderDetail['SecurityID'], # pOrderDetail['Price'], # pOrderDetail['Volume'], # pOrderDetail['Side'], # pOrderDetail['OrderType'], # pOrderDetail['OrderTime'], # pOrderDetail['MainSeq'], # pOrderDetail['SubSeq'], # pOrderDetail['OrderNO'], # pOrderDetail['OrderStatus'], # pOrderDetail['Info1'], # pOrderDetail['Info2'], # pOrderDetail['Info3'] # )) def OnRtnBondMarketData(self, pDepthMarketData, FirstLevelBuyNum, FirstLevelBuyOrderVolumes, FirstLevelSellNum, FirstLevelSellOrderVolumes): huaxin_client/l2_data_manager.py
@@ -67,13 +67,15 @@ # "OrderTime": pOrderDetail['OrderTime'], "MainSeq": pOrderDetail['MainSeq'], # "SubSeq": pOrderDetail['SubSeq'], "OrderNO": pOrderDetail['OrderNO'], # "OrderStatus": pOrderDetail['OrderStatus'].decode()} if data['Side'] == "1": # 记录所有买入的订单号 if data['SecurityID'] not in buy_order_nos_dict: buy_order_nos_dict[data['SecurityID']] = set() buy_order_nos_dict[data['SecurityID']].add(data['OrderNO']) # 买入订单号需要记录日志 async_log_util.huaxin_l2_log.info(logger_local_huaxin_l2_buy_no, f"{data['SecurityID']}#{data['OrderNO']}") # 用于G撤的数据,暂时注释 # if data['Side'] == "1": # # 记录所有买入的订单号 # if data['SecurityID'] not in buy_order_nos_dict: # buy_order_nos_dict[data['SecurityID']] = set() # buy_order_nos_dict[data['SecurityID']].add(data['OrderNO']) # # 买入订单号需要记录日志 # async_log_util.huaxin_l2_log.info(logger_local_huaxin_l2_buy_no, f"{data['SecurityID']}#{data['OrderNO']}") tmep_order_detail_queue_dict[code].put( (data['SecurityID'], data['Price'], data['Volume'], data['Side'], data['OrderType'], data['OrderTime'], @@ -94,24 +96,25 @@ # 判断是否为大单成交 code = data['SecurityID'] if code in buy_order_nos_dict: if data['BuyNo'] in buy_order_nos_dict[code]: try: temp_list = latest_big_order_transaction_orders_dict.get(code) if not temp_list: temp_list = [] if temp_list: if temp_list[-1] != data['BuyNo']: # 不加入重复订单号 temp_list.append(data['BuyNo']) if len(temp_list) > 10: # 最多加10个订单号 temp_list = temp_list[-10:] else: temp_list.append(data['BuyNo']) latest_big_order_transaction_orders_dict[code] = temp_list except: pass # G撤相关数据操作暂时注释 # if code in buy_order_nos_dict: # if data['BuyNo'] in buy_order_nos_dict[code]: # try: # temp_list = latest_big_order_transaction_orders_dict.get(code) # if not temp_list: # temp_list = [] # if temp_list: # if temp_list[-1] != data['BuyNo']: # # 不加入重复订单号 # temp_list.append(data['BuyNo']) # if len(temp_list) > 10: # # 最多加10个订单号 # temp_list = temp_list[-10:] # else: # temp_list.append(data['BuyNo']) # latest_big_order_transaction_orders_dict[code] = temp_list # except: # pass tmep_transaction_queue_dict[code].put((data['SecurityID'], data['TradePrice'], data['TradeVolume'], data['OrderTime'], data['MainSeq'], data['SubSeq'], data['BuyNo'], data['SellNo'], data['ExecType'])) @@ -314,9 +317,10 @@ def run_log(): fdatas = log_export.load_huaxin_local_buy_no() global buy_order_nos_dict buy_order_nos_dict = fdatas # G撤相关数据,暂时注释 # fdatas = log_export.load_huaxin_local_buy_no() # global buy_order_nos_dict # buy_order_nos_dict = fdatas t = threading.Thread(target=lambda: __run_log(), daemon=True) t.start()