Administrator
2025-01-24 ce624fe5b2c05f6ddd649f33ad6ebabc7e975f55
bug修复
2个文件已修改
71 ■■■■ 已修改文件
l2/l2_data_manager_new.py 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
l2/l2_limitup_sell_data_manager.py 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
l2/l2_data_manager_new.py
@@ -376,9 +376,10 @@
                limit_up_price = round(float(limit_up_price), 2)
            # if trade_price_info and limit_up_price and trade_price_info[0] == limit_up_price:
            #     filter_limit_up_sell = True
            L2LimitUpSellDataManager.add_l2_origin_data(code, origin_datas)
            datas = l2_huaxin_util.get_format_l2_datas(code, origin_datas, limit_up_price, _start_index,
                                                       filter_limit_up_sell)
            L2LimitUpSellDataManager.add_l2_data(code, datas)
            __start_time = round(t.time() * 1000)
            if len(datas) > 0:
                cls.process_add_datas(code, datas, 0, __start_time)
@@ -812,8 +813,13 @@
                return False, True, f"只买想买:没在想买单和绿单", True
        if not cls.__WantBuyCodesManager.is_in_cache(code):
            average_rate = cls.__Buy1PriceManager.get_average_rate(code)
            if average_rate and average_rate <= 0.05:
                return False, True, f"均价涨幅({average_rate})小于5%", True
            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
l2/l2_limitup_sell_data_manager.py
@@ -3,6 +3,7 @@
"""
from code_attribute import gpcode_manager
from l2 import l2_log
from l2.l2_data_util import L2DataUtil
from log_module import async_log_util, log_export
from log_module.log import hx_logger_l2_sell_delegate, hx_logger_l2_sell_deal
from utils import tool
@@ -24,11 +25,11 @@
    __delegating_sell_num_dict = {}
    @classmethod
    def add_l2_origin_data(cls, code, origin_datas):
    def add_l2_data(cls, code, add_datas):
        """
        添加L2委托原始数据
        @param code: 代码
        @param origin_datas: 原始数据
        @param add_datas: 新增的格式化数据
        @return:
        """
        try:
@@ -40,25 +41,23 @@
                cls.__delegating_sell_num_dict[code] = 0
            limit_up_price = gpcode_manager.get_limit_up_price_as_num(code)
            for d in origin_datas:
                order_no, price, volume = d[8], d[1], d[2]
                if price != limit_up_price:
                    continue
                if d[9] == 'D':
                    if d[3] != '1':
                        # 卖撤
                        cls.__order_no_set_dict[code].discard(order_no)
                        cls.__delegating_sell_num_dict[code] -= volume
                        async_log_util.l2_data_log.info(hx_logger_l2_sell_delegate,
                                                        f"{code}-卖撤-{(order_no, price, volume)}-{cls.__delegating_sell_num_dict[code]}")
                else:
                    if d[3] != '1':
                        # 卖
                        cls.__order_no_data_map_dict[code][order_no] = (order_no, price, volume)
                        cls.__order_no_set_dict[code].add(order_no)
                        cls.__delegating_sell_num_dict[code] += volume
                        async_log_util.l2_data_log.info(hx_logger_l2_sell_delegate,
                                                        f"{code}-卖-{(order_no, price, volume)}-{cls.__delegating_sell_num_dict[code]}")
            for d in add_datas:
                val = d["val"]
                if L2DataUtil.is_limit_up_price_sell(val):
                    # 卖
                    order_no, price, volume = val["orderNo"], val["price"], val["num"]*100
                    cls.__order_no_data_map_dict[code][order_no] = (order_no, price, volume)
                    cls.__order_no_set_dict[code].add(order_no)
                    cls.__delegating_sell_num_dict[code] += volume
                    async_log_util.l2_data_log.info(hx_logger_l2_sell_delegate,
                                                    f"{code}-卖-{(order_no, price, volume)}-{cls.__delegating_sell_num_dict[code]}")
                elif L2DataUtil.is_limit_up_price_sell_cancel(val):
                    # 卖撤
                    order_no, price, volume = val["orderNo"], val["price"], val["num"] * 100
                    cls.__order_no_set_dict[code].discard(order_no)
                    cls.__delegating_sell_num_dict[code] -= volume
                    async_log_util.l2_data_log.info(hx_logger_l2_sell_delegate,
                                                    f"{code}-卖撤-{(order_no, price, volume)}-{cls.__delegating_sell_num_dict[code]}")
        except:
            pass
@@ -115,15 +114,15 @@
        @param code:
        @return:
        """
        if code in cls.__order_no_set_dict:
            cls.__order_no_set_dict.pop(code)
        if cls.__order_no_set_dict.get(code):
            cls.__order_no_set_dict[code].clear()
        if code in cls.__order_no_data_map_dict:
            cls.__order_no_data_map_dict.pop(code)
        if cls.__order_no_data_map_dict.get(code):
            cls.__order_no_data_map_dict[code].clear()
        if code in cls.__delegating_sell_num_dict:
            cls.__delegating_sell_num_dict.pop(code)
            async_log_util.l2_data_log.info(hx_logger_l2_sell_deal,
        if cls.__delegating_sell_num_dict.get(code):
            cls.__delegating_sell_num_dict[code] = 0
            async_log_util.l2_data_log.info(hx_logger_l2_sell_delegate,
                                            f"出现主动卖清除数据:{code}")
@@ -144,4 +143,6 @@
            fdatas.append(x)
    total_delegate = sum([x[2][2] for x in fdatas])
    print(fdatas)
    print("总委托", total_delegate, total_delegate*20.41)
    for d in fdatas:
        print(d)
    print("总委托", total_delegate, total_delegate * 20.41)