Administrator
2024-08-13 077e12531a7b005e4e89a30c789d3de7c6201e82
新P撤
2个文件已修改
20 ■■■■ 已修改文件
cancel_strategy/s_l_h_cancel_strategy.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
l2/cancel_buy_strategy.py 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cancel_strategy/s_l_h_cancel_strategy.py
@@ -1599,11 +1599,11 @@
                            if total_num > thresh_hold_num:
                                # 成交位到下单位还有足够的单没撤
                                l2_log.l_cancel_debug(code,
                                                      f"L上撤阻断: 成交位-{trade_progress_index} 真实下单位-{real_place_order_index_info[0]} 阈值-{thresh_hold_money}")
                                                      f"L前撤阻断: 成交位-{trade_progress_index} 真实下单位-{real_place_order_index_info[0]} 阈值-{thresh_hold_money}")
                                return False, None
                canceled_indexes.sort()
                l2_log.l_cancel_debug(code, f"L上撤单,撤单位置:{canceled_indexes[-1]}")
                l2_log.l_cancel_debug(code, f"L前撤单,撤单位置:{canceled_indexes[-1]}")
                return True, total_data[canceled_indexes[-1]]
        return False, None
l2/cancel_buy_strategy.py
@@ -22,7 +22,7 @@
from utils import tool
from l2.transaction_progress import TradeBuyQueue
from trade import trade_queue_manager, l2_trade_factor, trade_manager, trade_data_manager
from l2 import l2_log, l2_data_source_util
from l2 import l2_log, l2_data_source_util, code_price_manager
from l2.l2_data_util import L2DataUtil, local_today_num_operate_map, local_today_datas, local_today_buyno_map, \
    local_today_canceled_buyno_map
from log_module.log import logger_buy_1_volumn, logger_l2_error
@@ -221,6 +221,8 @@
    __redis_manager = redis_manager.RedisManager(0)
    __real_order_index_cache = {}
    __max_buy_order_num_cache = {}
    # 下单距离太远计算
    __far_away_computed_cache = {}
    __instance = None
@@ -284,6 +286,7 @@
    # 设置真实的下单位置
    def set_real_order_index(self, code, index, is_default):
        self.__set_real_order_index(code, index, is_default)
        self.__far_away_computed_cache[code] = False
        # if not is_default and code.find("60") == 0:
        try:
            # 统计未成交的最大单
@@ -431,6 +434,17 @@
        total_count, total_num = L2DataComputeUtil.compute_left_buy_order(code, trade_index, real_order_index,
                                                                          limit_up_price, min_money)
        # 下单后3秒,排撤比例≥65%则撤掉,视为P撤的一种,排得太后了。
        if sub_time > 3 and not self.__far_away_computed_cache.get(code):
            self.__far_away_computed_cache[code] = True
            # 成交进度位到真实下单位的位置过远
            total_count_, total_num_ = L2DataComputeUtil.compute_left_buy_order(code, trade_index, real_order_index,
                                                                                limit_up_price, 500000)
            # 获取买1金额
            buy1_money = code_price_manager.Buy1PriceManager().get_latest_buy1_money(code)
            if buy1_money:
                if total_num_ * limit_up_price * 100 > buy1_money * 0.65:
                    return True, f"P撤:成交位置距离下单位置太远 成交位-{trade_index} 下单位-{real_order_index} 买1-{buy1_money}"
        min_time_s, max_time_s = 2, 30
        if total_num * limit_up_price >= 299 * 100:
            min_time_s, max_time_s = 30, 60