Administrator
2025-06-11 6dbf7d8320b03533a8a7c70cb3cc309426eac94e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
"""
策略分析
"""
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))