Administrator
2024-08-05 31c03f7c3458ca00d66e04df0af53e7dc3438688
third_data/kpl_limit_up_data_manager.py
@@ -42,7 +42,8 @@
    # 首板身位
    __first_block_sequence_dict = {}
    def set_current_limit_up_datas(self, current_limit_up_datas):
    @classmethod
    def set_current_limit_up_datas(cls, current_limit_up_datas):
        """
        设置目前的涨停代码
        @param current_limit_up_datas:
@@ -68,6 +69,10 @@
            if b not in block_codes:
                block_codes[b] = set()
            block_codes[b].add(code)
        # 获取上个交易日涨停的代码
        yesterday_codes = kpl_data_manager.get_yesterday_limit_up_codes()
        if yesterday_codes is None:
            yesterday_codes = set()
        for code in limit_up_codes:
            # 计算身位
@@ -76,12 +81,29 @@
            total_count = len(codes)
            # 统计真正涨停数
            limit_up_count = 0
            limit_up_codes_list = []
            for c in codes:
                if c in limit_up_codes:
                    limit_up_count += 1
            # TODO 获取首板代码的排位
                    if c not in yesterday_codes:
                        limit_up_codes_list.append((c, current_code_block_dict[c][2]))
            # 获取首板代码的排位
            limit_up_codes_list.sort(key=lambda x: x[1])
            index = 1
            for i in range(0, len(limit_up_codes_list)):
                if limit_up_codes_list[i][0] == code:
                    index = i + 1
                    break
            cls.__first_block_sequence_dict[code] = (b, index, total_count, limit_up_count)
    @classmethod
    def get_current_limit_up_sequence(cls, code):
        """
        获取代码当前的板块身位
        @param code:
        @return:(板块名称,身位,总涨停数量,目前涨停数量)
        """
        return cls.__first_block_sequence_dict.get(code)
class LatestLimitUpBlockManager: