| | |
| | | import datetime |
| | | |
| | | import constant |
| | | import juejin |
| | | import tool |
| | | from third_data import kpl_util, kpl_data_manager |
| | | from utils import tool |
| | | from third_data import kpl_util |
| | | from third_data.history_k_data_util import HistoryKDatasUtils |
| | | from third_data.kpl_data_manager import KPLLimitUpDataRecordManager, KPLDataManager |
| | | |
| | | from third_data import kpl_data_manager |
| | | |
| | | __before_block_dict = {} |
| | | |
| | |
| | | return __before_block_dict.get(code) |
| | | |
| | | |
| | | # 获取之前的板块 |
| | | def get_before_blocks(code): |
| | | return __before_block_dict.get(code) |
| | | |
| | | |
| | | # 获取之前的代码-板块字典 |
| | | def get_before_blocks_dict(): |
| | | return __before_block_dict |
| | | |
| | | |
| | | def __get_code_from_code_info(code_info): |
| | | code = code_info[0][1].split(".")[0] |
| | | return code |
| | |
| | | # (代码, 名称, 首次涨停时间, 最近涨停时间, 几板, 涨停原因, 板块, 实际流通, 主力净额) |
| | | def __get_blocks(code, limit_up_datas, filter=True): |
| | | blocks = [] |
| | | for data in limit_up_datas: |
| | | if data[0] == code: |
| | | block = data[5] |
| | | if block in constant.KPL_INVALID_BLOCKS and filter: |
| | | continue |
| | | blocks.append(block) |
| | | if limit_up_datas: |
| | | for data in limit_up_datas: |
| | | if data[0] == code: |
| | | block = data[5] |
| | | if block in constant.KPL_INVALID_BLOCKS and filter: |
| | | continue |
| | | blocks.append(block) |
| | | return blocks |
| | | |
| | | |
| | |
| | | if now_day in __blocks_dict: |
| | | return __blocks_dict[now_day] |
| | | now_date = datetime.datetime.now() |
| | | end_date = juejin.JueJinManager.get_previous_trading_date(tool.get_now_date_str()) |
| | | end_date = HistoryKDatasUtils.get_previous_trading_date(tool.get_now_date_str()) |
| | | start_date = now_date - datetime.timedelta(days=(day_count * 2 + 10)) |
| | | start_date = start_date.strftime("%Y-%m-%d") |
| | | days = juejin.JueJinManager.get_trading_dates(start_date, end_date) |
| | | days = HistoryKDatasUtils.get_trading_dates(start_date, end_date) |
| | | days = days[0 - day_count:] |
| | | results = KPLLimitUpDataRecordManager.list_blocks_with_day(days) |
| | | __blocks_dict[now_day] = results |
| | |
| | | code_ = d[3] |
| | | limit_up_codes_info_set.add((code_, d[5])) |
| | | block_codes_set.add(code_) |
| | | elif d[3]==code: |
| | | elif d[3] == code: |
| | | limit_up_codes_info_set.add((d[3], d[5])) |
| | | # 获取涨停的顺序 |
| | | limit_up_index = -1 |
| | |
| | | return fresult |
| | | |
| | | |
| | | # 初始化板块数据 |
| | | def init(): |
| | | # 加载数据到内存中 |
| | | kpl_data_manager.get_current_limit_up_data_records(10) |
| | | |
| | | |
| | | def init_code(code): |
| | | # 加载历史涨停原因 |
| | | __load_before_block(code) |
| | | |
| | | |
| | | if __name__ == "__main__": |
| | | get_info("603133") |