Administrator
2023-12-26 3a19a9bd4e301fa7e0d081e9c2aada3ac77700c1
third_data/code_plate_key_manager.py
@@ -9,7 +9,7 @@
import constant
from db.redis_manager_delegate import RedisUtils
from third_data import kpl_block_util, kpl_api
from third_data import kpl_block_util, kpl_api, kpl_util
from utils import global_util, tool
from log_module import log, async_log_util
from db import redis_manager_delegate as redis_manager
@@ -518,12 +518,16 @@
                if not general_blocks or block not in general_blocks:
                    # 没在泛化板块中
                    continue
            if d[4].find("连板") > 0:
                if d[4].replace("连板", "").isdigit():
                    count = int(d[4].replace("连板", ""))
                    if count >= 3:
                        is_strong_block = True
                        break
            count = kpl_util.get_high_level_count(d[4])
            if count >= 3:
                if d[4].find("连板") > 0:
                    is_strong_block = True
                    break
                elif d[0] in yesterday_current_limit_up_codes and len(block_codes) >= 2:
                    # 几天几板,且最近2连板
                    # 看是否有首板后排
                    is_strong_block = True
                    break
        if not is_strong_block:
            temp_block_codes = set(copy.deepcopy(block_codes))
@@ -764,10 +768,11 @@
    # high_level_general_code_blocks 高位泛化板块
    @classmethod
    def update_can_buy_blocks(cls, code, current_limit_up_datas, limit_up_record_datas,
                              yesterday_current_limit_up_records,
                              latest_current_limit_up_records,
                              before_blocks_dict, current_limit_up_block_codes_dict):
        yesterday_current_limit_up_codes = set()
        yesterday_current_limit_up_records_dict = {}
        yesterday_current_limit_up_records = latest_current_limit_up_records[0][1]
        if yesterday_current_limit_up_records:
            for r in yesterday_current_limit_up_records:
                yesterday_current_limit_up_codes.add(r[0])
@@ -775,21 +780,22 @@
        high_level_general_code_blocks = {}
        # 是否是3板及以上的高位板
        for r in current_limit_up_datas:
            if r[4].find("连板") > 0:
                if r[4].replace("连板", "").isdigit():
                    count = int(r[4].replace("连板", ""))
                    if count >= 3:
                        # 是高位板
                        # 当日精选
                        blocks = set(r[6].split("、"))
                        if r[0] in yesterday_current_limit_up_records_dict:
                            # 昨日涨停原因
                            blocks.add(yesterday_current_limit_up_records_dict.get(r[0])[5])
                        f_blocks = []
                        for b in blocks:
                            if b:
                                f_blocks.append(b)
                        high_level_general_code_blocks[r[0]] = f_blocks
            count = kpl_util.get_high_level_count(r[4])
            if count >= 3 and r[0] in yesterday_current_limit_up_codes:
                latest_datas = latest_current_limit_up_records[:count - 1]
                # 是高位板
                # 当日精选
                blocks = set(r[6].split("、"))
                for d in latest_datas:
                    for dd in d[1]:
                        if dd[0] == r[0]:
                            blocks.add(dd[5])
                            break
                f_blocks = []
                for b in blocks:
                    if b:
                        f_blocks.append(b)
                high_level_general_code_blocks[r[0]] = f_blocks
        can_buy_blocks, unique, msg, can_buy_strong_blocks, keys = cls.__compute_can_buy_blocks(code,
                                                                                                current_limit_up_datas,