Administrator
2025-02-07 7eb1a8ed1a007d80de41d131071ee38f5872700c
third_data/kpl_limit_up_data_manager.py
@@ -126,8 +126,8 @@
    """
    最近涨停的板块管理
    """
    # 看最近3天,不包含今天
    __LATEST_DAY_COUNT = 3
    # 看最近2天,不包含今天
    __LATEST_DAY_COUNT = 2
    __days = []
    # 目前涨停
@@ -232,8 +232,8 @@
        block_codes_dict = {}
        for day in self.__block_day_datas:
            for b in self.__block_day_datas[day]:
                total_limit_up_count = self.__block_day_datas[day][b][0] + self.__block_day_datas[day][b][1]
                if total_limit_up_count < 3:
                finally_limit_up_count = self.__block_day_datas[day][b][0]
                if finally_limit_up_count < 3:
                    continue
                # 板块涨停个数
                if b not in block_count_dict:
@@ -242,9 +242,9 @@
                    block_codes_dict[b] = set()
                block_count_dict[b].add(day)
                block_codes_dict[b] |= self.__block_day_datas[day][b][2]
        # [(板块,涨停日期集合)]
        block_count_list = [(k, block_count_dict[k]) for k in block_count_dict]
        block_count_list.sort(key=lambda x: x[1], reverse=True)
        block_count_list.sort(key=lambda x: len(x[1]), reverse=True)
        block_count_list = block_count_list[:50]
        # [(涨停原因,累计涨停次数,连续次数)]
        fdatas = []
@@ -257,6 +257,11 @@
                if day not in self.__block_day_datas:
                    continue
                if b in self.__block_day_datas[day]:
                    finally_limit_up_count = self.__block_day_datas[day][b][0]
                else:
                    finally_limit_up_count = 0
                if b in self.__block_day_datas[day] and finally_limit_up_count >= 3:
                    # 板块代码数量>=3个
                    temp.append(day)
                else:
                    c = len(temp)
@@ -308,10 +313,10 @@
        if cls.__days:
            volumes_data = HistoryKDataManager().get_history_bars(code, cls.__days[1])
            if volumes_data:
                volumes_data = volumes_data[:cls.__LATEST_DAY_COUNT - 1]
                volumes_data = volumes_data[:cls.__LATEST_DAY_COUNT]
                cls.__k_datas[code] = volumes_data
        if not volumes_data:
            volumes_data = init_data_util.get_volumns_by_code(code, cls.__LATEST_DAY_COUNT - 1)
            volumes_data = init_data_util.get_volumns_by_code(code, cls.__LATEST_DAY_COUNT)
            if volumes_data:
                cls.__k_datas[code] = volumes_data
        # 获取最大涨幅
@@ -322,3 +327,11 @@
        rate = int((volumes_data[0]["close"] - min_price) * 100 / min_price)
        cls.__k_max_rate[code] = rate
        return cls.__k_datas.get(code)
if __name__ == "__main__":
    # datas = LatestLimitUpBlockManager().statistics_limit_up_block_infos()
    # print(datas)
    code = "600126"
    blocks = LimitUpCodesBlockRecordManager().get_radical_buy_blocks(code)
    print(blocks)