22from expr_codegen import codegen_exec
33
44# 从日线中取涨跌停
5- df_1d = (pl .read_parquet (r"M:\preprocessing\data1.parquet" )
5+ df_1d = (pl .read_parquet (r"M:\preprocessing\data1.parquet" ). filter ( pl . col ( "paused" ) == 0 )
66 .rename ({"time" : "date" , "code" : "asset" })
7- .select ("date" , "asset" , "high_limit" , "low_limit" ))
7+ .select ("date" , "asset" , "high_limit" , "low_limit" , "volume" ))
8+
9+
10+ def _code_block_0 ():
11+ 过去5日平均每分钟成交量 = ts_sum (volume , 5 )[1 ] / (240 * 5 )
12+
13+
14+ df_1d = codegen_exec (df_1d , _code_block_0 , output_file = "2_out.py" )
815
916# 加载分钟数据
10- df_1m = (pl .read_parquet (r"D:\data\jqresearch\get_price_stock_minute\20241*.parquet" )
17+ df_1m = (pl .read_parquet (r"D:\data\jqresearch\get_price_stock_minute\20241*.parquet" ). filter ( pl . col ( "paused" ) == 0 )
1118 .rename ({"time" : "datetime" , "code" : "asset" })
1219 .select ("datetime" , "asset" , "open" , "high" , "close" , "paused" , "volume" , "money" )
1320 .with_columns (pl .col ("datetime" ).cast (pl .Datetime ('us' ))))
14- df_1m = df_1m .filter (pl .col ("paused" ) == 0 )
1521df_1m = df_1m .with_columns (date = pl .col ("datetime" ).dt .truncate ('1d' ))
16-
1722df = df_1m .join (df_1d , on = ["date" , "asset" ])
23+
1824del df_1m
1925del df_1d
2026
@@ -30,12 +36,13 @@ def _code_block_1():
3036 封板 = (~ 昨收涨停 & 开盘涨停 ) | (~ 开盘涨停 & 最高涨停 )
3137 炸板 = (昨收涨停 & ~ 开盘涨停 ) | (最高涨停 & ~ 收盘涨停 )
3238 # 个股分时图上的黄线
33- 平均价格 = ts_cum_sum (money )/ ts_cum_sum (volume )
39+ 平均价格 = ts_cum_sum (money ) / ts_cum_sum (volume )
40+ 量比 = ts_cum_sum (volume ) / ts_cum_count (volume ) / 过去5日平均每分钟成交量
3441
3542
3643df = df .with_columns (_asset_date = pl .struct ("asset" , "date" ))
3744df = codegen_exec (df , _code_block_1 , asset = "_asset_date" , output_file = "1_out.py" )
38- print (df )
45+ print (df . tail (). to_pandas () )
3946
4047df = df .group_by ("asset" , "date" ).agg (
4148 炸板次数 = pl .col ("炸板" ).sum (),
0 commit comments