Administrator
2024-02-22 e1788016750ad6ec1dfc28a4e6948ecaf5b326e4
huaxin_client/l2_data_manager.py
@@ -43,29 +43,30 @@
        self.l2_transaction_codes = set()
    # 设置订单过滤条件
    def set_order_fileter_condition(self, code, min_volume, limit_up_price, special_volumes=None,
    # special_price:过滤的1手的价格
    def set_order_fileter_condition(self, code, min_volume, limit_up_price, special_price, special_volumes=None,
                                    special_volumes_expire_time=None):
        if special_volumes is None:
            special_volumes = set()
        if code in self.filter_order_condition_dict and not special_volumes and not special_volumes_expire_time:
            self.filter_order_condition_dict[code][0] = (min_volume, limit_up_price)
            self.filter_order_condition_dict[code][0] = (min_volume, limit_up_price, special_price)
            huaxin_l2_log.info(logger_local_huaxin_l2_subscript,
                               f"({code})常规过滤条件设置:{self.filter_order_condition_dict[code]}")
        else:
            self.filter_order_condition_dict[code] = [(min_volume, limit_up_price), special_volumes,
            self.filter_order_condition_dict[code] = [(min_volume, limit_up_price, special_price), special_volumes,
                                                      special_volumes_expire_time]
            huaxin_l2_log.info(logger_local_huaxin_l2_subscript,
                               f"({code})下单后过滤条件设置:{self.filter_order_condition_dict[code]}")
    # 过滤订单
    def __filter_order(self, item):
        # if item[2] == 100 and item[3] == '1':
        #     # 不过滤买1手
        #     return item
        filter_condition = self.filter_order_condition_dict.get(item[0])
        if filter_condition:
            # item[2]为量
            if item[2] >= filter_condition[0][0]:
                return item
            # 1手的买单满足价格
            if item[2] == 100 and item[3] == '1' and abs(filter_condition[0][2] - item[1]) < 0.001:
                return item
            if filter_condition[1] and item[2] in filter_condition[1]:
                if filter_condition[2] and time.time() > filter_condition[2]:
@@ -73,8 +74,6 @@
                    filter_condition[1] = set()
                    filter_condition[2] = None
                    return None
                return item
            elif item[2] == 100 and item[3] == '1':
                return item
            return None
        return item