1919 '参股券商' ,
2020 '参股新三板' ,
2121 '参股银行' ,
22-
2322 '创业板综' ,
2423 '创业成份' ,
2524 '低价股' ,
3837 '宁组合' ,
3938 '破净股' ,
4039 'QFII重仓' ,
41- '融资融券' ,
40+ # '融资融券',
4241 '社保重仓' ,
4342 '深成500' ,
4443 '深股通' ,
6160 '昨日涨停_含一字' ,
6261 '中特估' ,
6362 '中证500' ,
64- '转债标的' ,
63+ # '转债标的',
6564 '中字头' ,
66- '国企改革' ,
65+ # '国企改革',
6766]
6867
6968地区板块 = [
8887
8988# 读取个股数据
9089df_stock = pl .read_parquet (r"M:\preprocessing\data2.parquet" )
90+ # 读取分时数据
91+ df_min = pl .read_parquet (r"分时炸板.parquet" )
92+ df_stock = df_stock .join (df_min , how = 'left' , on = ['asset' , 'date' ])
9193df_stock = df_stock .with_columns (code = pl .col ('asset' ).str .slice (0 , 6 ))
9294print (df_stock .schema )
9395
@@ -97,6 +99,7 @@ def _code_block_1():
9799 收盘跌停 = close <= low_limit + 0.001
98100 连板天数 = ts_cum_sum_reset (收盘涨停 )
99101 涨停T天 , 涨停N板 , _ = ts_up_stat (收盘涨停 )
102+ 放量 = volume / volume [1 ]
100103
101104
102105df_stock = codegen_exec (df_stock , _code_block_1 )
@@ -109,22 +112,23 @@ def _code_block_1():
109112DATE2 = pl .date (2024 , 11 , 25 )
110113df_stock = df_stock .filter (pl .col ('date' ) >= DATE2 )
111114
112- df_stock_board = df_stock .join (df_board , how = 'left' , left_on = ['code' ], right_on = ['代码' ]).filter (pl .col ('board' ).is_not_null ())
115+ df_stock_board = df_stock .join (df_board , how = 'left' , left_on = ['code' ], right_on = ['代码' ]) # .filter(pl.col('board').is_not_null())
113116del df_stock
114117del df_board
115- df_stock_board = df_stock_board .select ('date' , 'asset' , '名称' , '涨停T天' , '涨停N板' , '连板天数' , '收盘涨停' , 'board' )
118+
119+ columns = ['名称' , "涨停T天" , "涨停N板" , "收盘涨停" , '放量' , '炸板次数' , '首次封板' , '最后封板' ]
116120
117121df_board_sorted = df_stock_board .group_by ('date' , 'board' ).agg (
118122 pl .col ('收盘涨停' ).sum ().alias ('封板数' ),
119123 (pl .col ('连板天数' ) > 1 ).sum ().alias ('连板数' ),
120- pl .col ('名称' , "asset" , "涨停T天" , "涨停N板" , "收盘涨停" ).top_k_by ('涨停N板' , 5 ),
124+ pl .col ("asset" , * columns ).top_k_by ('涨停N板' , 5 ),
121125).sort ('date' , '封板数' , descending = [False , True ]).with_row_index ()
122- df_board_sorted .explode ("asset" , '名称' , "涨停T天" , "涨停N板" , "收盘涨停" ).write_csv ('涨停板块前5.csv' )
126+ df_board_sorted .explode ("asset" , * columns ).write_csv ('涨停板块前5.csv' )
123127print (df_board_sorted )
124128
125129df_stock_board = df_stock_board .join (df_board_sorted .select ('index' , 'date' , 'board' ), how = 'left' , on = ['date' , 'board' ])
126130df_stock_board = df_stock_board .sort ('date' , 'asset' , 'index' )
127131
128- df_stock_list = df_stock_board .group_by ('date' , 'asset' ).agg (pl .col ('名称' , '涨停T天' , '涨停N板' , '连板天数' , '收盘涨停' ).first (), pl .col ('board' ).str .join (',' ))
132+ df_stock_list = df_stock_board .group_by ('date' , 'asset' ).agg (pl .col (* columns ).first (), pl .col ('board' ).str .join (',' ))
129133df_stock_list .sort ('date' , '涨停N板' , descending = [False , True ]).write_csv ('涨停个股.csv' )
130134print (df_stock_list )
0 commit comments