| | |
| | | |
| | | import constant |
| | | from db.redis_manager_delegate import RedisUtils |
| | | from log_module import async_log_util |
| | | from log_module import async_log_util, log |
| | | from utils import tool |
| | | |
| | | # 开盘啦历史涨停数据管理 |
| | |
| | | __LimitUpCodesPlateKeyManager = LimitUpCodesPlateKeyManager() |
| | | __CodesPlateKeysManager = CodesHisReasonAndBlocksManager() |
| | | __current_code_reasons_dict = {} |
| | | # 当前涨停原因+推荐原因的代码集合 |
| | | __current_reason_codes_dict = {} |
| | | # 当前涨停原因的代码集合 |
| | | __current_limit_up_reason_codes_dict = {} |
| | | __records_cache = {} |
| | | record_code_dict = {} |
| | | |
| | | @classmethod |
| | | def __load_hist_and_blocks(cls, code): |
| | |
| | | # 统计代码所属板块 |
| | | code_block_dict = {} |
| | | for data in records: |
| | | cls.record_code_dict[data[0]] = data |
| | | blocks = set(data[5].split("、")) |
| | | code = data[0] |
| | | for b in blocks: |
| | |
| | | |
| | | code_reasons_dict = {} |
| | | reason_codes_dict = {} |
| | | limit_up_reason_codes_dict = {} |
| | | for d in records: |
| | | if d[5] not in limit_up_reason_codes_dict: |
| | | limit_up_reason_codes_dict[d[5]] = set() |
| | | limit_up_reason_codes_dict[d[5]].add(d[0]) |
| | | |
| | | # 涨停原因 + 推荐原因 |
| | | bs = {d[5]} |
| | | if d[6]: |
| | |
| | | reason_codes_dict[b].add(d[0]) |
| | | cls.__current_code_reasons_dict = code_reasons_dict |
| | | cls.__current_reason_codes_dict = reason_codes_dict |
| | | cls.__current_limit_up_reason_codes_dict = limit_up_reason_codes_dict |
| | | |
| | | # 涨停数据记录 |
| | | mysqldb = mysql_data.Mysqldb() |
| | |
| | | @classmethod |
| | | def get_current_reason_codes_dict(cls): |
| | | return copy.deepcopy(cls.__current_reason_codes_dict) |
| | | |
| | | @classmethod |
| | | def get_current_limit_up_reason_codes_dict(cls): |
| | | return copy.deepcopy(cls.__current_limit_up_reason_codes_dict) |
| | | |
| | | @classmethod |
| | | def get_current_reasons(cls): |
| | |
| | | @return: |
| | | """ |
| | | # 修复涨停 |
| | | logger_debug.info("任务修复-开盘啦:启动修复") |
| | | key = "limit_up" |
| | | if key not in cls.__latest_update_time_dict or time.time() - cls.__latest_update_time_dict[key] > 20: |
| | | logger_debug.info("任务修复-开盘啦:涨停列表") |
| | |
| | | |
| | | @classmethod |
| | | def run_limit_up_task(cls): |
| | | # 关闭log |
| | | log.close_print() |
| | | while True: |
| | | try: |
| | | if (tool.is_trade_time() and int(tool.get_now_time_str().replace(':', '')) > int("092530")): |