""" 策略分析 """ import datetime from db.mysql_data_delegate import Mysqldb from third_data import history_k_data_util from utils import tool def __load_limit_up_records(day): mysql = Mysqldb() datas = mysql.select_all(f"select * from kpl_limit_up_record where _day = '{day}'") return datas if __name__ == '__main__': dates = history_k_data_util.HistoryKDatasUtils.get_trading_dates("2024-05-01", "2024-08-19") datas_dict = {} for day in dates: datas = __load_limit_up_records(day) # 将数据根据涨停原因聚合 temp_dict = {} for d in datas: if d[2] not in temp_dict: temp_dict[d[2]] = [] temp_dict[d[2]].append(d) datas_dict[day] = temp_dict # 统计前面7天的所有板块 datas_list = [(x, datas_dict[x]) for x in datas_dict] SD = 7 for i in range(SD, len(datas_list)): fblocks = set() for j in range(1, SD + 1): blocks = set(datas_list[i - j][1].keys()) fblocks |= blocks c_blocks = datas_list[i][1].keys() first_limit_up_fblocks = c_blocks - fblocks print(f"-------------[{datas_list[i][0]}]--------------") for b in first_limit_up_fblocks: codes_list = [(x[3], x[4], x[12], datetime.datetime.fromtimestamp(int(x[5])).strftime('%H:%M:%S')) for x in datas_list[i][1][b]] if len(codes_list) >= 2: print(b, codes_list) print(len(datas_dict))