| | |
| | | # 首板身位 |
| | | __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: |
| | |
| | | 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: |
| | | # 计算身位 |
| | |
| | | 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: |