Administrator
2024-08-04 fe1b515c6286f80a244e044236fb140ab7090495
l2/l2_data_manager_new.py
@@ -908,7 +908,7 @@
            # 判断是否为板上放量:
            # 1.当前成交价为涨停价
            # 2.总卖额为0
            if abs(float(limit_up_price) - float(trade_price)) < 0.001:
            if abs(limit_up_price - float(trade_price)) < 0.001:
                # 获取最近的非涨停价成交时间
                not_limit_up_info = current_price_process_manager.get_trade_not_limit_up_info(code)
                if not not_limit_up_info or tool.trade_time_sub(total_data[-1]['val']['time'],
@@ -919,8 +919,18 @@
                    if deal_list:
                        total_deal_volume = sum([x[1] for x in deal_list])
                    total_deal_money = int(total_deal_volume * float(limit_up_price))
                    if total_deal_money < 200000:
                        return False, True, f"板上放量成交金额不足,近2s总成交金额:{total_deal_money}小于20w"
                    # 获取买1的封单额
                    buy1_money = code_price_manager.Buy1PriceManager().get_latest_buy1_money(code)
                    buy1_price = code_price_manager.Buy1PriceManager().get_buy1_price(code)
                    if buy1_price and abs(limit_up_price - buy1_price) > 0.0001:
                        # 买1未涨停
                        buy1_money = 0
                    if not buy1_money:
                        buy1_money = 1
                    deal_rate = round(total_deal_money / buy1_money, 2)
                    if deal_rate < 0.05:
                        return False, True, f"板上放量成交金额不足,近2s总成交比例({deal_rate}):{total_deal_money}/{buy1_money}小于0.05"
            # 判断成交进度是否距离我们的位置很近
            trade_index, is_default = cls.__TradeBuyQueue.get_traded_index(code)
            if False and not is_default and trade_index:
@@ -2249,6 +2259,11 @@
            # 9:31之前下单,安全笔数最小为5笔
            if int(tool.get_now_time_str().replace(":", "")) < int("093100"):
                safe_count = max(safe_count, 5)
            # 深证的票,第一次下单必须要有3笔安全笔数
            if tool.is_sz_code(code):
                place_order_count = trade_data_manager.PlaceOrderCountManager().get_place_order_count(code)
                if place_order_count == 0:
                    safe_count = max(safe_count, 3)
            if buy_count < safe_count:
                not_buy_msg = f"【{i}】安全笔数不足,{buy_count}/{safe_count}"