Administrator
2024-05-21 47e255f56fc9f97253d6ad4d58dd2b95ab51e190
bug修复
1个文件已修改
55 ■■■■ 已修改文件
l2/cancel_buy_strategy.py 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
l2/cancel_buy_strategy.py
@@ -456,7 +456,7 @@
        threash_money_w, threash_money_danger_w = self.__get_fast_threshold_value(code)
        total_fast_num = 0
        try:
            # 15分钟内真实成交位距离真实下单位,金额≤800万 ,大单阈值变为200w
            trade_index, is_default = TradeBuyQueue().get_traded_index(code)
            if trade_index is None:
                trade_index = 0
@@ -466,31 +466,34 @@
                fdeal = big_sell_order_info[1][0][3]
                start_order_no = fdeal[1]
                sell_time_str = l2_huaxin_util.convert_time(fdeal[0], with_ms=False)
                if tool.trade_time_sub(sell_time_str, total_datas[real_order_index]['val']['time']) < 15 * 60:
                    total_num = 0
                    # 获取正在成交的数据
                    dealing_info = HuaXinBuyOrderManager.get_dealing_order_info(code)
                    for i in range(trade_index, real_order_index):
                        data = total_datas[i]
                        val = data['val']
                        if int(val['orderNo']) < start_order_no:
                            continue
                        if i == trade_index and dealing_info and str(
                                total_datas[trade_index]["val"]["orderNo"]) == str(
                            dealing_info[0]):
                            # 减去当前正在成交的数据中已经成交了的数据
                            total_num -= dealing_info[1] // 100
                        left_count = l2_data_source_util.L2DataSourceUtils.get_limit_up_buy_no_canceled_count_v2(
                            code,
                            i,
                            total_datas,
                            local_today_canceled_buyno_map.get(
                                code))
                        if left_count > 0:
                            total_num += val["num"]
                            total_fast_num += val['num']
                    if total_num * float(limit_up_price) < 800 * 100:
                        threash_money_w = threash_money_danger_w
                total_num = 0
                # 获取正在成交的数据
                # 计算成交进度到真实下单位的纯买额
                dealing_info = HuaXinBuyOrderManager.get_dealing_order_info(code)
                for i in range(trade_index, real_order_index):
                    data = total_datas[i]
                    val = data['val']
                    if int(val['orderNo']) < start_order_no:
                        continue
                    if i == trade_index and dealing_info and str(
                            total_datas[trade_index]["val"]["orderNo"]) == str(
                        dealing_info[0]):
                        # 减去当前正在成交的数据中已经成交了的数据
                        total_num -= dealing_info[1] // 100
                        total_fast_num-=dealing_info[1] // 100
                    left_count = l2_data_source_util.L2DataSourceUtils.get_limit_up_buy_no_canceled_count_v2(
                        code,
                        i,
                        total_datas,
                        local_today_canceled_buyno_map.get(
                            code))
                    if left_count > 0:
                        total_num += val["num"]
                        total_fast_num += val['num']
                if total_num * float(limit_up_price) < 800 * 100 and tool.trade_time_sub(sell_time_str, total_datas[real_order_index]['val']['time']) < 15 * 60:
                    # 15分钟内真实成交位距离真实下单位,金额≤800万 ,大单阈值变为200w
                    threash_money_w = threash_money_danger_w
        except Exception as e:
            l2_log.s_cancel_debug(code, f"S撤激进下单计算大单卖阈值出错:{str(e)}")
        total_fast_money = int(total_fast_num * 100 * float(limit_up_price))