Administrator
2023-09-06 0732c541712a6acc6c8ad12970d783a4b9ae880b
L撤监听数据临近撤单触发撤单
2个文件已修改
12 ■■■■ 已修改文件
l2/cancel_buy_strategy.py 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/huaxin/huaxin_trade_record_manager.py 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
l2/cancel_buy_strategy.py
@@ -1128,7 +1128,8 @@
        self.__last_trade_progress_dict[code] = index
        if self.__real_place_order_index_dict.get(code):
            # 触发计算
            self.compute_watch_index(code, self.__last_trade_progress_dict.get(code), self.__real_place_order_index_dict.get(code))
            self.compute_watch_index(code, self.__last_trade_progress_dict.get(code),
                                     self.__real_place_order_index_dict.get(code))
    def __compute_need_cancel(self, code, buy_exec_index, start_index, end_index, total_data,
                              _local_today_num_operate_map, is_first_code):
@@ -1154,6 +1155,8 @@
                    break
        if need_compute:
            # 计算撤单比例
            watch_indexes_list = list(watch_indexes)
            watch_indexes_list.sort()
            canceled_count = 0
            for wi in watch_indexes:
                left_count = l2_data_source_util.L2DataSourceUtils.get_limit_up_buy_no_canceled_count(code,
@@ -1161,6 +1164,11 @@
                                                                                                      total_data,
                                                                                                      _local_today_num_operate_map)
                canceled_count += total_data[wi]["re"] - left_count
                if wi == watch_indexes_list[-1] and left_count == 0:
                    # 离下单位置最近的一个撤单,必须触发撤单
                    l2_log.l_cancel_debug(code, f"计算范围:{start_index}-{end_index},临近撤单:{wi}")
                    return True, total_data[-1]
            rate = round(canceled_count / total_count, 3)
            l2_log.l_cancel_debug(code, f"计算范围:{start_index}-{end_index},已撤单比例:{rate}")
            if rate >= constant.L_CANCEL_RATE:
trade/huaxin/huaxin_trade_record_manager.py
@@ -348,7 +348,6 @@
        RedisUtils.expire_async(self.__db, f"huaxin_local_order_id-{code}", tool.get_expire())
        # 删除订单ID
    def remove_local_order_id(self, code, local_order_id):
        val = local_order_id
        if code in self.__huaxin_local_order_id_cache:
@@ -356,7 +355,6 @@
        RedisUtils.srem_async(self.__db, f"huaxin_local_order_id-{code}", val)
        # 查询所有的订单号
    def list_local_order_ids(self, code):
        return RedisUtils.smembers(self.__get_redis(), f"huaxin_local_order_id-{code}")