8000 添加放量、封板时间 · wukan1986/alpha_examples@a54165e · GitHub
[go: up one dir, main page]

Skip to content

Commit a54165e

Browse files
committed
添加放量、封板时间
1 parent 5c9e14d commit a54165e

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

reports/涨停分时炸板.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def _code_block_1():
2525
最高涨停 = high >= high_limit - 0.001
2626
收盘涨停 = close >= high_limit - 0.001
2727
昨收涨停 = ts_delay(收盘涨停, 1, False)
28-
# 化简后逻辑表达式更复杂了
28+
# TODO 化简后逻辑表达式更复杂了,最好能简化一下
2929
封板 = (~昨收涨停 & 开盘涨停) | (~开盘涨停 & 最高涨停)
3030
炸板 = (昨收涨停 & ~开盘涨停) | (最高涨停 & ~收盘涨停)
3131

@@ -38,6 +38,7 @@ def _code_block_1():
3838
首次封板=pl.col("datetime").filter(pl.col('封板')).first(),
3939
最后封板=pl.col("datetime").filter(pl.col('封板')).last(),
4040
)
41+
df.write_parquet(r"分时炸板.parquet")
4142

4243
df = df.filter(pl.col("炸板次数") >= 5).sort("asset", "date")
4344

reports/涨跌停统计.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
'参股券商',
2020
'参股新三板',
2121
'参股银行',
22-
2322
'创业板综',
2423
'创业成份',
2524
'低价股',
@@ -38,7 +37,7 @@
3837
'宁组合',
3938
'破净股',
4039
'QFII重仓',
41-
'融资融券',
40+
# '融资融券',
4241
'社保重仓',
4342
'深成500',
4443
'深股通',
@@ -61,9 +60,9 @@
6160
'昨日涨停_含一字',
6261
'中特估',
6362
'中证500',
64-
'转债标的',
63+
# '转债标的',
6564
'中字头',
66-
'国企改革',
65+
# '国企改革',
6766
]
6867

6968
地区板块 = [
@@ -88,6 +87,9 @@
8887

8988
# 读取个股数据
9089
df_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'])
9193
df_stock = df_stock.with_columns(code=pl.col('asset').str.slice(0, 6))
9294
print(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

102105
df_stock = codegen_exec(df_stock, _code_block_1)
@@ -109,22 +112,23 @@ def _code_block_1():
109112
DATE2 = pl.date(2024, 11, 25)
110113
df_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())
113116
del df_stock
114117
del df_board
115-
df_stock_board = df_stock_board.select('date', 'asset', '名称', '涨停T天', '涨停N板', '连板天数', '收盘涨停', 'board')
118+
119+
columns = ['名称', "涨停T天", "涨停N板", "收盘涨停", '放量', '炸板次数', '首次封板', '最后封板']
116120

117121
df_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')
123127
print(df_board_sorted)
124128

125129
df_stock_board = df_stock_board.join(df_board_sorted.select('index', 'date', 'board'), how='left', on=['date', 'board'])
126130
df_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(','))
129133
df_stock_list.sort('date', '涨停N板', descending=[False, True]).write_csv('涨停个股.csv')
130134
print(df_stock_list)

0 commit comments

Comments
 (0)
0