Administrator
2024-06-27 f08cb61eb22a7c006c84fe57a2e857e2b23b061c
相同价格判断机制bug修复
10个文件已修改
33 ■■■■ 已修改文件
code_attribute/code_nature_analyse.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
code_attribute/first_target_code_data_processor.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
l2/code_price_manager.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
l2/huaxin/huaxin_delegate_postion_manager.py 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
l2/l2_data_manager_new.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
l2/transaction_progress.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/huaxin/huaxin_trade_api.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/huaxin/huaxin_trade_data_update.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/trade_gui.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
utils/init_data_util.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
code_attribute/code_nature_analyse.py
@@ -253,7 +253,7 @@
    datas = datas[-10:]
    for data in datas:
        limit_up_price = float(gpcode_manager.get_limit_up_price_by_preprice(code, data["pre_close"]))
        if abs(limit_up_price - data["high"]) < 0.01:
        if abs(limit_up_price - data["high"]) < 0.001:
            date = data['bob'].strftime("%Y-%m-%d")
            return round((datas[-1]["close"] - data["close"]) / data["close"], 4), date
    return 0, ''
@@ -272,7 +272,7 @@
        date = data['bob'].strftime("%Y-%m-%d")
        if data["high"] > max_price:
            max_price = data["high"]
        if abs(limit_up_price - data["high"]) < 0.01:
        if abs(limit_up_price - data["high"]) < 0.001:
            limit_ups.append((date, True))
            limit_up_count += 1
        else:
code_attribute/first_target_code_data_processor.py
@@ -275,7 +275,7 @@
            limit_up_time = None
        if code not in limit_up_price_dict:
            continue
        is_limit_up = abs(float(limit_up_price_dict[code]) - float(price)) < 0.01
        is_limit_up = abs(float(limit_up_price_dict[code]) - float(price)) < 0.001
        # 纠正数据
        if is_limit_up and limit_up_time is None:
            limit_up_time = tool.get_now_time_str()
l2/code_price_manager.py
@@ -171,7 +171,7 @@
        # 保存买1价格
        self.__save_buy1_price(code, buy_1_price)
        is_limit_up = abs(float(limit_up_price) - float(buy_1_price)) < 0.01
        is_limit_up = abs(float(limit_up_price) - float(buy_1_price)) < 0.001
        old_limit_up_time, old_open_limit_up_time = self.__get_buy1_price_limit_up_info_cache(code)
        # 判断真正涨停
        if is_limit_up and not old_limit_up_time and int(sell_1_volumn) <= 0:
l2/huaxin/huaxin_delegate_postion_manager.py
@@ -55,7 +55,7 @@
                # 判断影子订单位置
                if val["num"] != huaxin_client_constant.SHADOW_ORDER_VOLUME // 100:
                    continue
                if abs(shadow_price - float(val["price"])) >= 0.01:
                if abs(shadow_price - float(val["price"])) >= 0.001:
                    continue
                if not L2DataUtil.is_buy_cancel(val):
                    continue
@@ -106,7 +106,7 @@
        # 判断影子订单位置
        if val["num"] != huaxin_client_constant.SHADOW_ORDER_VOLUME // 100:
            continue
        if abs(shadow_price - float(val["price"])) >= 0.01:
        if abs(shadow_price - float(val["price"])) >= 0.001:
            continue
        if d["index"] <= exec_data["index"]:
            continue
@@ -138,7 +138,7 @@
            d = total_datas[i]
            if d["val"]["num"] != volume // 100:
                continue
            if abs(float(price) - float(d["val"]["price"])) >= 0.01:
            if abs(float(price) - float(d["val"]["price"])) >= 0.001:
                continue
            # 必须是买入
            if not L2DataUtil.is_limit_up_price_buy(d["val"]):
@@ -150,7 +150,7 @@
                d = total_datas[i]
                if d["val"]["num"] != volume // 100:
                    continue
                if abs(float(price) - float(d["val"]["price"])) >= 0.01:
                if abs(float(price) - float(d["val"]["price"])) >= 0.001:
                    continue
                # 必须是买入
                if not L2DataUtil.is_limit_up_price_buy(d["val"]):
@@ -161,7 +161,6 @@
        if not real_place_index:
            real_place_index_info = shadow_place_order_index, RELIABILITY_TYPE_VIRTUAL
        else:
            # TODO 需要矫正是否撤单
            real_place_index_info = real_place_index, RELIABILITY_TYPE_REAL
    elif tool.trade_time_sub(datas[-1]['val']['time'], exec_data['val']['time']) >= estimate_time_space and time.time() - order_time >5:
        # 下单超过2s且绝对时间超过5S以上才会估算真实下单位置
@@ -171,7 +170,7 @@
    if real_place_index_info:
        # 获取到了下单位置
        async_log_util.info(hx_logger_trade_debug, f"真实下单位置:{code}-{real_place_index_info}")
        async_log_util.info(logger_real_place_order_position, f"真实下单位置:{code}-{real_place_index_info}")
        async_log_util.info(logger_real_place_order_position, f"真实下单位置:{code}-{real_place_index_info}-{shadow_place_order_index}")
        if code in _place_order_info_dict:
            _place_order_info_dict.pop(code)
        __place_order_position[code] = real_place_index_info[0]
@@ -246,7 +245,7 @@
                                continue
                            if val["num"] != huaxin_client_constant.SHADOW_ORDER_VOLUME // 100:
                                continue
                            if abs(shadow_price - float(val["price"])) >= 0.01:
                            if abs(shadow_price - float(val["price"])) >= 0.001:
                                continue
                            shadow_order_indexes.append(i)
                        async_log_util.info(logger_debug, f"下单位矫正# {code}获取到影子单索引:{shadow_order_indexes}")
l2/l2_data_manager_new.py
@@ -848,7 +848,7 @@
            # limit_up_price = gpcode_manager.get_limit_up_price(code)
            # if limit_up_price is None:
            #     return False, "尚未获取到涨停价"
            # if abs(float(buy1_price) - float(limit_up_price)) >= 0.01:
            # if abs(float(buy1_price) - float(limit_up_price)) >= 0.001:
            #     return False, "买1价不为涨停价,买1价-{} 涨停价-{}".format(buy1_price, limit_up_price)
            # 从买入信号起始点到当前数据末尾的纯买手数与当前的卖1做比较,如果比卖1小则不能买入
            total_datas = local_today_datas[code]
l2/transaction_progress.py
@@ -111,7 +111,7 @@
                return None
        self.last_buy_queue_data[code] = queues
        if abs(float(buy_1_price) - float(limit_up_price)) >= 0.01:
        if abs(float(buy_1_price) - float(limit_up_price)) >= 0.001:
            # 保存最近的涨停起始时间
            self.__save_latest_not_limit_up_time(code, buy_1_time)
            return None
trade/huaxin/huaxin_trade_api.py
@@ -66,7 +66,7 @@
        # 获取涨停价
        limit_up_price = gpcode_manager.get_limit_up_price(code)
        if limit_up_price and volume == huaxin_client_constant.SHADOW_ORDER_VOLUME:
            if abs(float(limitPrice) - float(limit_up_price)) >= 0.01:
            if abs(float(limitPrice) - float(limit_up_price)) >= 0.001:
                is_shadow_order = True
        order = HuaxinOrderEntity(code, orderStatus, orderRef, accountID, orderSysID,
trade/huaxin/huaxin_trade_data_update.py
@@ -60,7 +60,7 @@
                                    limit_up_price = gpcode_manager.get_limit_up_price_cache(code)
                                    if limit_up_price and volume == huaxin_client_constant.SHADOW_ORDER_VOLUME:
                                        if abs(float(limitPrice) - float(limit_up_price)) >= 0.01:
                                        if abs(float(limitPrice) - float(limit_up_price)) >= 0.001:
                                            is_shadow_order = True
                                    if is_shadow_order:
                                        continue
trade/trade_gui.py
@@ -271,7 +271,7 @@
            # TODO 暂时不验证涨停价
            # if not constant.TEST:
            #     if abs(float(limit_up_price_now) - float(limit_up_price)) >= 0.01:
            #     if abs(float(limit_up_price_now) - float(limit_up_price)) >= 0.001:
            #         error = "涨停价验证出错 {}-{}".format(limit_up_price, limit_up_price_now)
            #         raise Exception(error)
utils/init_data_util.py
@@ -107,7 +107,7 @@
            # 是否有涨停
            limit_up_price = float(gpcode_manager.get_limit_up_price_by_preprice(code, item["pre_close"]))
            # 不看超过60天的涨停
            if abs(limit_up_price - item["high"]) < 0.01 and i <= 59:
            if abs(limit_up_price - item["high"]) < 0.001 and i <= 59:
                # 涨停
                next_volume = 0
                if i > 0: