Administrator
2024-09-23 99cc81fca997dc7b73c5ac00ad47a60cf590d0ff
l2/l2_limitup_sell_data_manager.py
@@ -49,7 +49,6 @@
                        cls.__order_no_set_dict[code].discard(order_no)
                        cls.__delegating_sell_num_dict[code] -= volume
                        async_log_util.l2_data_log.info(hx_logger_l2_sell_delegate, f"{code}-卖撤-{order_no, price, volume}")
                else:
                    if d[3] != '1':
                        # 卖
@@ -59,6 +58,15 @@
                        async_log_util.l2_data_log.info(hx_logger_l2_sell_delegate, f"{code}-卖-{order_no, price, volume}")
        except:
            pass
    @classmethod
    def get_delegating_sell_num(cls, code):
        """
        获取处于委托状态的卖单总手数
        @param code:
        @return:
        """
        return cls.__delegating_sell_num_dict.get(code)
    @classmethod
    def set_deal_datas(cls, code, datas):
@@ -71,16 +79,44 @@
        try:
            limit_up_price = gpcode_manager.get_limit_up_price_as_num(code)
            has_limit_up_active_buy = False
            order_no_set =  cls.__order_no_set_dict.get(code)
            if order_no_set is None:
                order_no_set = set()
            for d in datas:
                if d[1] != limit_up_price:
                    continue
                # 是否有涨停主动买成交
                if d[6] < d[7]:
                    continue
                if d[1] != limit_up_price:
                    continue
                has_limit_up_active_buy = True
                break
            if code in cls.__delegating_sell_num_dict:
                for d in datas:
                    # 减去
                    if d[7] in order_no_set:
                        cls.__delegating_sell_num_dict[code] -= d[2]
            if has_limit_up_active_buy:
                # 打印日志
                async_log_util.l2_data_log.info(hx_logger_l2_sell_deal, f"有涨停主动卖:{code}-{datas[-1][3]}-{ cls.__delegating_sell_num_dict.get(code)}")
        except:
            pass
    @classmethod
    def clear_data(cls, code):
        """
        清除数据:当出现主动卖的时候就可以清除数据
        @param code:
        @return:
        """
        if code in cls.__order_no_set_dict:
            cls.__order_no_set_dict.pop(code)
        if code in cls.__order_no_data_map_dict:
            cls.__order_no_data_map_dict.pop(code)
        if code in cls.__delegating_sell_num_dict:
            cls.__delegating_sell_num_dict.pop(code)