Administrator
2023-10-12 998181a86215590aef76c9dcac31e7b097065b9e
暂时屏蔽G撤
2个文件已修改
101 ■■■■■ 已修改文件
huaxin_client/l2_client.py 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
huaxin_client/l2_data_manager.py 60 ●●●● 补丁 | 查看 | 原始文档 | 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()