Administrator
2024-11-07 93ec042ae730c8e4cad1562d7ee579941847397c
l2/l2_transaction_data_processor.py
@@ -21,7 +21,7 @@
from trade import current_price_process_manager, trade_constant
import concurrent.futures
from trade.radical_buy_data_manager import RedicalBuyDataManager
from trade.radical_buy_data_manager import RadicalBuyDataManager, EveryLimitupBigDealOrderManager
from utils import tool
@@ -55,11 +55,12 @@
        buy_datas, bigger_buy_datas = HuaXinBuyOrderManager.statistic_big_buy_data(code, datas, limit_up_price)
        if buy_datas:
            BigOrderDealManager().add_buy_datas(code, buy_datas)
            EveryLimitupBigDealOrderManager.add_big_buy_order_deal(code, [x[0] for x in buy_datas])
        try:
            is_placed_order = l2_data_manager.TradePointManager.is_placed_order(order_begin_pos)
            if is_placed_order:
                if order_begin_pos and order_begin_pos.mode == OrderBeginPosInfo.MODE_RADICAL:
                    RedicalBuyDataManager.big_order_deal(code)
                    RadicalBuyDataManager.big_order_deal(code)
            if is_placed_order and bigger_buy_datas:
                # 有大于50w的大单成交
@@ -89,8 +90,12 @@
        # 设置成交价
        try:
            current_price_process_manager.set_trade_price(code, datas[-1][1])
            if limit_up_price > datas[-1][1]:
                # 没有涨停
                EveryLimitupBigDealOrderManager.open_limit_up(code)
        except:
            pass
        total_datas = l2_data_util.local_today_datas.get(code)
        use_time_list = []
        try:
@@ -101,6 +106,17 @@
            order_begin_pos = l2_data_manager.TradePointManager().get_buy_compute_start_data_cache(code)
            # 是否已经下单
            is_placed_order = l2_data_manager.TradePointManager.is_placed_order(order_begin_pos)
            _start_time = time.time()
            L2LimitUpSellDataManager.set_deal_datas(code, datas)
            #  大单统计
            # cls.__statistic_thread_pool.submit(cls.statistic_big_order_infos, code, datas, order_begin_pos)
            try:
                cls.statistic_big_order_infos(code, datas, order_begin_pos)
            except Exception as e:
                hx_logger_l2_debug.error(f"统计大单出错:{str(e)}")
            use_time_list.append(("统计买单数据", time.time() - _start_time))
            _start_time = time.time()
            big_sell_order_info = None
            try:
@@ -158,11 +174,7 @@
            except Exception as e:
                async_log_util.error(logger_debug, f"卖单统计异常:{big_sell_order_info}")
                logger_debug.exception(e)
            _start_time = time.time()
            L2LimitUpSellDataManager.set_deal_datas(code, datas)
            cls.__statistic_thread_pool.submit(cls.statistic_big_order_infos, code, datas, order_begin_pos)
            use_time_list.append(("统计买单数据", time.time() - _start_time))
            _start_time = time.time()
            # if big_money_count > 0:
            #     LCancelRateManager.compute_big_num_deal_rate(code)
@@ -197,7 +209,8 @@
                        try:
                            cancel_result = FCancelBigNumComputer().need_cancel_for_w(code)
                            if cancel_result[0]:
                                L2TradeDataProcessor.cancel_buy(code, f"W撤:{cancel_result[1]}", cancel_type=trade_constant.CANCEL_TYPE_W)
                                L2TradeDataProcessor.cancel_buy(code, f"W撤:{cancel_result[1]}",
                                                                cancel_type=trade_constant.CANCEL_TYPE_W)
                        except:
                            pass