Administrator
2025-02-13 a30af0e60e1d17ef1c8829cf4353a31a26113bfd
每次上板参考大单阈值修改/辨识度代码规则修改
3个文件已修改
43 ■■■■■ 已修改文件
l2/l2_data_manager_new.py 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/buy_radical/block_special_codes_manager.py 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/buy_radical/radical_buy_data_manager.py 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
l2/l2_data_manager_new.py
@@ -812,15 +812,15 @@
            if not cls.__WantBuyCodesManager.is_in_cache(
                    code) and not gpcode_manager.GreenListCodeManager().is_in_cache(code):
                return False, True, f"只买想买:没在想买单和绿单", True
        if not cls.__WantBuyCodesManager.is_in_cache(code):
            average_rate = cls.__Buy1PriceManager.get_average_rate(code)
            if average_rate :
                if tool.is_ge_code(code):
                    if average_rate <= 0.1:
                        return False, True, f"均价涨幅({average_rate})小于10%", True
                else:
                    if average_rate <= 0.05:
                        return False, True, f"均价涨幅({average_rate})小于5%", True
        # if not cls.__WantBuyCodesManager.is_in_cache(code):
        average_rate = cls.__Buy1PriceManager.get_average_rate(code)
        if average_rate:
            if tool.is_ge_code(code):
                if average_rate <= 0.1:
                    return False, True, f"均价涨幅({average_rate})小于10%", True
            else:
                if average_rate <= 0.05:
                    return False, True, f"均价涨幅({average_rate})小于5%", True
        return True, False, f"", False
    @classmethod
@@ -1307,13 +1307,15 @@
            # 是否是交易队列触发
            # 扫入下单只有L撤能撤单
            if order_begin_pos and order_begin_pos.mode == OrderBeginPosInfo.MODE_RADICAL and cancel_type not in {
                trade_constant.CANCEL_TYPE_L_DOWN, trade_constant.CANCEL_TYPE_L, trade_constant.CANCEL_TYPE_RD, trade_constant.CANCEL_TYPE_P}:
                trade_constant.CANCEL_TYPE_L_DOWN, trade_constant.CANCEL_TYPE_L, trade_constant.CANCEL_TYPE_RD,
                trade_constant.CANCEL_TYPE_P}:
                l2_log.cancel_debug(code, "撤单中断,原因:{}", "扫入下单不是L撤")
                return False
            # 加绿只有L撤/人撤生效
            if gpcode_manager.GreenListCodeManager().is_in_cache(code):
                if cancel_type not in {trade_constant.CANCEL_TYPE_L, trade_constant.CANCEL_TYPE_L_UP,
                                       trade_constant.CANCEL_TYPE_L_DOWN, trade_constant.CANCEL_TYPE_RD, trade_constant.CANCEL_TYPE_P}:
                                       trade_constant.CANCEL_TYPE_L_DOWN, trade_constant.CANCEL_TYPE_RD,
                                       trade_constant.CANCEL_TYPE_P}:
                    l2_log.cancel_debug(code, "撤单中断,原因:{}", "加绿不是L撤")
                    return False
trade/buy_radical/block_special_codes_manager.py
@@ -199,10 +199,18 @@
                continue
            code_info_list = block_codes_dict[b]
            # 取自由市值的前1/3
            # 取自由市值的前1/3 和涨停次数最多的2个代码
            code_info_list.sort(key=lambda x: float(limit_up_info_map[x[0]][2]), reverse=True)
            max_count = len(code_info_list) // 3
            zylt_list = code_info_list[:max_count]
            # 取涨停次数最多的
            temp_codes = [x[0] for x in zylt_list]
            code_info_list.sort(key=lambda x: x[1], reverse=True)
            limit_up_count_max = code_info_list[:2]
            for d in limit_up_count_max:
                if d[0] not in temp_codes and d[1] >= 6:
                    # 涨停次数大于6次
                    zylt_list.append(d)
            # 按照涨停次数排序
            zylt_list.sort(key=lambda x: x[1], reverse=True)
            zylt_list = [x[0] for x in zylt_list]
trade/buy_radical/radical_buy_data_manager.py
@@ -1588,7 +1588,12 @@
    if before_time:
        current_threshold_count = int(round(0.4 * money_y * 1.5))
    current_threshold_money = current_threshold_count * 2990000
    if not is_first_limit_up_buy(code):
        # 如果是回封下单阈值就采用均大单
        THRESHOLD_MONEY, is_temp_threshold_money = BeforeSubDealBigOrderManager().get_big_order_threshold_info(code)
        current_threshold_money = current_threshold_count * THRESHOLD_MONEY
    else:
        current_threshold_money = current_threshold_count * 2990000
    # ==========判断总大单成交================
    total_lack_money_info = get_total_deal_big_order_info(code, limit_up_price, is_for_buy=for_buy)
@@ -1608,7 +1613,7 @@
        # 要下单的且不是创业版的目标代码大单数量打8折
        if is_first_limit_up_buy(code):
            # 首封不打折
            total_lack_money = int(total_threshold_money*0.8 - total_deal_money)
            total_lack_money = int(total_threshold_money * 0.8 - total_deal_money)
        else:
            total_lack_money = int(total_threshold_money - total_deal_money)
        if total_lack_money < 0: