Administrator
2024-11-04 5724dc30a98d0fe00f93e9f71c5901216d506eb6
l2/l2_data_manager_new.py
@@ -13,7 +13,7 @@
from l2.huaxin import l2_huaxin_util, huaxin_delegate_postion_manager
from l2.l2_limitup_sell_data_manager import L2LimitUpSellDataManager
from l2.l2_sell_manager import L2MarketSellManager, L2LimitUpSellManager
from l2.l2_transaction_data_manager import HuaXinSellOrderStatisticManager, BigOrderDealManager
from l2.l2_transaction_data_manager import HuaXinSellOrderStatisticManager, BigOrderDealManager, HuaXinBuyOrderManager
from l2.place_order_single_data_manager import L2TradeSingleDataProcessor
from log_module import async_log_util, log_export
from third_data import kpl_data_manager, block_info
@@ -1555,7 +1555,7 @@
                                                     max_num_set=set(),
                                                     buy_volume_rate=buy_volume_rate,
                                                     mode=OrderBeginPosInfo.MODE_RADICAL,
                                                     mode_desc=f"总抛压小扫入",
                                                     mode_desc=f"总抛压小扫入:{radical_result[2]}",
                                                     sell_info=sell_info,
                                                     threshold_money=threshold_money)
            order_begin_pos_info.at_limit_up = cls.__is_at_limit_up_buy(code)
@@ -1977,14 +1977,14 @@
            if cls.__is_at_limit_up_buy(code, start_index):
                return False, None, "板上放量"
            total_datas = local_today_datas[code]
            min_num = int(29900 / gpcode_manager.get_limit_up_price_as_num(code))
            limit_up_price = gpcode_manager.get_limit_up_price_as_num(code)
            bigger_money = l2_data_util.get_big_money_val(limit_up_price, tool.is_ge_code(code))
            min_num = int(bigger_money / limit_up_price / 100)
            # 如果有大单成交就不需要看大单
            deal_money_list = BigOrderDealManager().get_total_buy_money_list(code)
            if deal_money_list:
                for m in deal_money_list:
                    if m >= 2990000:
                        min_num = int(5000 / gpcode_manager.get_limit_up_price_as_num(code))
                        break
            total_deal_money = BigOrderDealManager().get_total_buy_money(code)
            THRESHOLD_MONEY = 2990000
            if total_deal_money >= THRESHOLD_MONEY:
                min_num = int(5000 / limit_up_price)
            single_index = None
            for i in range(start_index, end_index + 1):
@@ -1994,9 +1994,24 @@
                    continue
                if val["num"] < min_num:
                    continue
                # 上证有可能是部分成交的大单
                if i == start_index and tool.is_sh_code(code):
                    dealing_active_order_info = HuaXinBuyOrderManager().get_dealing_active_order_info(code)
                    if dealing_active_order_info and dealing_active_order_info[0] == int(val["orderNo"]):
                        # 判断是否为大单
                        order_money = dealing_active_order_info[2] + round(val["price"], 2) * val["num"] * 100
                        if order_money >= bigger_money:
                            total_deal_money += order_money
                if total_deal_money >= THRESHOLD_MONEY:
                    single_index = i
                    break
                if int(val["orderNo"]) <= radical_data[1]:
                    # 主动买单后的数据不算
                    continue
                total_deal_money += round(val["price"], 2) * val["num"] * 100
                if total_deal_money >= THRESHOLD_MONEY:
                single_index = i
                break
            if single_index is not None:
@@ -2010,6 +2025,8 @@
            return False, None, "超过生效时间"
        result = __can_order()
        l2_log.debug(code, f"L2扫入判断:{result}")
        if result[0]:
            return True, result[1], f"扫入板块:{radical_data[2]}"
        return result
    @classmethod