Files
NewStock/main/train/PlUpdateClassify.ipynb
2025-04-28 11:02:52 +08:00

1011 lines
178 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"id": "79a7758178bafdd3",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T15:09:12.588477Z",
"start_time": "2025-02-21T15:09:12.513776Z"
}
},
"source": [
"%load_ext autoreload\n",
"%autoreload 2"
],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The autoreload extension is already loaded. To reload it, use:\n",
" %reload_ext autoreload\n"
]
}
],
"execution_count": 13
},
{
"cell_type": "code",
"id": "a79cafb06a7e0e43",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T15:09:52.492559Z",
"start_time": "2025-02-21T15:09:12.603475Z"
}
},
"source": [
"from code.utils.utils import read_and_merge_h5_data_polars\n",
"\n",
"print('daily data')\n",
"df = read_and_merge_h5_data_polars('../../data/daily_data.h5', key='daily_data',\n",
" columns=['ts_code', 'trade_date', 'open', 'close', 'high', 'low', 'vol'],\n",
" df=None)\n",
"\n",
"print('daily basic')\n",
"df = read_and_merge_h5_data_polars('../../data/daily_basic.h5', key='daily_basic',\n",
" columns=['ts_code', 'trade_date', 'turnover_rate', 'pe_ttm', 'circ_mv', 'volume_ratio',\n",
" 'is_st'], df=df, join='inner')\n",
"\n",
"print('stk limit')\n",
"df = read_and_merge_h5_data_polars('../../data/stk_limit.h5', key='stk_limit',\n",
" columns=['ts_code', 'trade_date', 'pre_close', 'up_limit', 'down_limit'],\n",
" df=df)\n",
"print('money flow')\n",
"df = read_and_merge_h5_data_polars('../../data/money_flow.h5', key='money_flow',\n",
" columns=['ts_code', 'trade_date', 'buy_sm_vol', 'sell_sm_vol', 'buy_lg_vol', 'sell_lg_vol',\n",
" 'buy_elg_vol', 'sell_elg_vol', 'net_mf_vol'],\n",
" df=df)"
],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"daily data\n",
"daily basic\n",
"inner merge on ['ts_code', 'trade_date']\n",
"stk limit\n",
"left merge on ['ts_code', 'trade_date']\n",
"money flow\n",
"left merge on ['ts_code', 'trade_date']\n"
]
}
],
"execution_count": 14
},
{
"cell_type": "code",
"id": "a4eec8c93f6a7cc3",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T15:09:53.009911Z",
"start_time": "2025-02-21T15:09:52.621225Z"
}
},
"source": [
"print('industry')\n",
"df = read_and_merge_h5_data_polars('../../data/industry_data.h5', key='industry_data',\n",
" columns=['ts_code', 'l2_code'],\n",
" df=df, on=['ts_code'], join='left')\n"
],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"industry\n",
"left merge on ['ts_code']\n"
]
}
],
"execution_count": 15
},
{
"cell_type": "code",
"id": "4243c838-1775-4c33-8ec5-38d3fae3e55c",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T15:09:53.087600Z",
"start_time": "2025-02-21T15:09:53.016442Z"
}
},
"source": [
"import polars as pl\n",
"\n",
"def print_df_info(df: pl.DataFrame):\n",
" # 获取行列信息\n",
" shape = df.shape\n",
" print(f\"Shape: {shape[0]} rows, {shape[1]} columns\")\n",
" \n",
" # 获取内存占用大小\n",
" mem_size = df.estimated_size() # 单位是字节\n",
" print(f\"Memory usage: {mem_size / (1024 ** 2):.2f} MB\") # 转换为 MB\n",
" \n",
" # 获取列名和每列的类型\n",
" print(\"\\nColumn types:\")\n",
" for col_name, dtype in zip(df.columns, df.dtypes):\n",
" print(f\"{col_name}: {dtype}\")\n",
"\n",
"print_df_info(df)\n",
"\n"
],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Shape: 8418162 rows, 22 columns\n",
"Memory usage: 1380.84 MB\n",
"\n",
"Column types:\n",
"ts_code: String\n",
"trade_date: String\n",
"open: Float64\n",
"close: Float64\n",
"high: Float64\n",
"low: Float64\n",
"vol: Float64\n",
"turnover_rate: Float64\n",
"pe_ttm: Float64\n",
"circ_mv: Float64\n",
"volume_ratio: Float64\n",
"is_st: Boolean\n",
"up_limit: Float64\n",
"down_limit: Float64\n",
"buy_sm_vol: Int64\n",
"sell_sm_vol: Int64\n",
"buy_lg_vol: Int64\n",
"sell_lg_vol: Int64\n",
"buy_elg_vol: Int64\n",
"sell_elg_vol: Int64\n",
"net_mf_vol: Int64\n",
"l2_code: String\n"
]
}
],
"execution_count": 16
},
{
"cell_type": "code",
"id": "99776e73-f310-47c0-953e-2cf73ff13310",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T15:09:53.229940Z",
"start_time": "2025-02-21T15:09:53.151622Z"
}
},
"source": [
"import numpy as np\n",
"import talib\n",
"\n",
"\n",
"def get_technical_factor(df: pl.LazyFrame) -> pl.LazyFrame:\n",
" # 按股票和日期排序\n",
" df = df.sort(['ts_code', 'trade_date'])\n",
" \n",
" # 计算 up 和 down\n",
" df = df.with_columns([\n",
" ((pl.col('high') - pl.max_horizontal(['close', 'open'])) / pl.col('close')).alias('up'),\n",
" ((pl.min_horizontal(['close', 'open']) - pl.col('low')) / pl.col('close')).alias('down')\n",
" ])\n",
" \n",
" # 定义一个函数来计算分组指标(如 ATR、OBV、RSI 等)\n",
" def calculate_talib_indicator(col_names, func, *args, **kwargs):\n",
" return (\n",
" df.group_by('ts_code', maintain_order=True)\n",
" .agg(\n",
" pl.map_batches(\n",
" col_names,\n",
" lambda cols: pl.Series(func(*[col.to_numpy() for col in cols], **kwargs))\n",
" ).alias(kwargs.get('output_col'))\n",
" )\n",
" .explode(kwargs.get('output_col'))\n",
" )\n",
"\n",
" # 计算 ATR\n",
" atr_14_df = calculate_talib_indicator(\n",
" ['high', 'low', 'close'], talib.ATR, timeperiod=14, output_col='atr_14'\n",
" )\n",
" atr_6_df = calculate_talib_indicator(\n",
" ['high', 'low', 'close'], talib.ATR, timeperiod=6, output_col='atr_6'\n",
" )\n",
"\n",
" # 合并 ATR 列\n",
" df = df.join(atr_14_df, on='ts_code', how='left').join(atr_6_df, on='ts_code', how='left')\n",
"\n",
" # 计算 OBV 及其均线\n",
" obv_df = calculate_talib_indicator(\n",
" ['close', 'vol'], talib.OBV, output_col='obv'\n",
" )\n",
" maobv_6_df = obv_df.with_columns(\n",
" pl.map_batches(\n",
" ['obv'],\n",
" lambda cols: pl.Series(talib.SMA(cols[0].to_numpy(), timeperiod=6))\n",
" ).alias('maobv_6')\n",
" )\n",
"\n",
" # 合并 OBV 和 MAOBV 列\n",
" df = df.join(obv_df, on='ts_code', how='left').join(maobv_6_df, on='ts_code', how='left')\n",
" df = df.with_columns((pl.col('obv') - pl.col('maobv_6')).alias('obv-maobv_6'))\n",
"\n",
" # 计算 RSI\n",
" rsi_3_df = calculate_talib_indicator(\n",
" ['close'], talib.RSI, timeperiod=3, output_col='rsi_3'\n",
" )\n",
" rsi_6_df = calculate_talib_indicator(\n",
" ['close'], talib.RSI, timeperiod=6, output_col='rsi_6'\n",
" )\n",
" rsi_9_df = calculate_talib_indicator(\n",
" ['close'], talib.RSI, timeperiod=9, output_col='rsi_9'\n",
" )\n",
"\n",
" # 合并 RSI 列\n",
" df = (\n",
" df.join(rsi_3_df, on='ts_code', how='left')\n",
" .join(rsi_6_df, on='ts_code', how='left')\n",
" .join(rsi_9_df, on='ts_code', how='left')\n",
" )\n",
"\n",
" # 计算 return_5, return_10, return_20\n",
" df = df.with_columns([\n",
" (pl.col('close') / pl.col('close').shift(5) - 1).over('ts_code').alias('return_5'),\n",
" (pl.col('close') / pl.col('close').shift(10) - 1).over('ts_code').alias('return_10'),\n",
" (pl.col('close') / pl.col('close').shift(20) - 1).over('ts_code').alias('return_20')\n",
" ])\n",
"\n",
" # 计算 avg_close_5\n",
" df = df.with_columns(\n",
" (pl.col('close').rolling_mean(window_size=5) / pl.col('close')).over('ts_code').alias('avg_close_5')\n",
" )\n",
"\n",
" # 计算标准差指标\n",
" df = df.with_columns([\n",
" pl.col('close').pct_change().rolling_std(window_size=5).over('ts_code').alias('std_return_5'),\n",
" pl.col('close').pct_change().rolling_std(window_size=15).over('ts_code').alias('std_return_15'),\n",
" pl.col('close').pct_change().rolling_std(window_size=25).over('ts_code').alias('std_return_25'),\n",
" pl.col('close').pct_change().rolling_std(window_size=90).over('ts_code').alias('std_return_90'),\n",
" pl.col('close').shift(10).pct_change().rolling_std(window_size=90).over('ts_code').alias('std_return_90_2')\n",
" ])\n",
"\n",
" # 计算比值指标\n",
" df = df.with_columns([\n",
" (pl.col('std_return_5') / pl.col('std_return_90')).alias('std_return_5 / std_return_90'),\n",
" (pl.col('std_return_5') / pl.col('std_return_25')).alias('std_return_5 / std_return_25')\n",
" ])\n",
"\n",
" # 计算标准差差值\n",
" df = df.with_columns(\n",
" (pl.col('std_return_90') - pl.col('std_return_90_2')).alias('std_return_90 - std_return_90_2')\n",
" )\n",
"\n",
" return df\n",
"\n",
"def get_act_factor(df: pl.LazyFrame, cat=True) -> pl.LazyFrame:\n",
" # 按股票和日期排序\n",
" df = df.sort(['ts_code', 'trade_date'])\n",
" \n",
" # 定义一个函数来计算分组 EMA\n",
" def calculate_ema(col_name, timeperiod):\n",
" return (\n",
" df.group_by('ts_code', maintain_order=True)\n",
" .agg(\n",
" pl.map_batches(\n",
" [col_name],\n",
" lambda cols: pl.Series(talib.EMA(cols[0].to_numpy(), timeperiod=timeperiod))\n",
" ).alias(f\"ema_{timeperiod}\")\n",
" )\n",
" .explode(f\"ema_{timeperiod}\")\n",
" )\n",
" \n",
" # 计算 EMA 指标\n",
" ema_columns = []\n",
" for period in [5, 13, 20, 60]:\n",
" ema_df = calculate_ema('close', period)\n",
" ema_columns.append(ema_df.select([f\"ts_code\", f\"ema_{period}\"]))\n",
" \n",
" # 将所有 EMA 列合并到原始 DataFrame 中\n",
" for ema_col in ema_columns:\n",
" df = df.join(ema_col, on='ts_code', how='left')\n",
" \n",
" # 使用 NumPy 的 arctan 和 sqrt 计算 act_factor1, act_factor2, act_factor3, act_factor4\n",
" df = df.with_columns([\n",
" (pl.map_batches(\n",
" ['ema_5'],\n",
" lambda cols: pl.Series(np.arctan((cols[0] / cols[0].shift(1) - 1) * 100) * 57.3 / 50)\n",
" )).alias('act_factor1'),\n",
" (pl.map_batches(\n",
" ['ema_13'],\n",
" lambda cols: pl.Series(np.arctan((cols[0] / cols[0].shift(1) - 1) * 100) * 57.3 / 40)\n",
" )).alias('act_factor2'),\n",
" (pl.map_batches(\n",
" ['ema_20'],\n",
" lambda cols: pl.Series(np.arctan((cols[0] / cols[0].shift(1) - 1) * 100) * 57.3 / 21)\n",
" )).alias('act_factor3'),\n",
" (pl.map_batches(\n",
" ['ema_60'],\n",
" lambda cols: pl.Series(np.arctan((cols[0] / cols[0].shift(1) - 1) * 100) * 57.3 / 10)\n",
" )).alias('act_factor4')\n",
" ])\n",
" \n",
" if cat:\n",
" df = df.with_columns([\n",
" (pl.col('act_factor1') > 0).alias('cat_af1'),\n",
" (pl.col('act_factor2') > pl.col('act_factor1')).alias('cat_af2'),\n",
" (pl.col('act_factor3') > pl.col('act_factor2')).alias('cat_af3'),\n",
" (pl.col('act_factor4') > pl.col('act_factor3')).alias('cat_af4')\n",
" ])\n",
" \n",
" # 计算 act_factor5 和 act_factor6\n",
" df = df.with_columns([\n",
" (pl.col('act_factor1') + pl.col('act_factor2') + pl.col('act_factor3') + pl.col('act_factor4')).alias('act_factor5'),\n",
" ((pl.col('act_factor1') - pl.col('act_factor2')) / \n",
" pl.map_batches(\n",
" ['act_factor1', 'act_factor2'],\n",
" lambda cols: pl.Series(np.sqrt(cols[0]**2 + cols[1]**2))\n",
" )).alias('act_factor6')\n",
" ])\n",
" \n",
" # 根据 trade_date 截面计算排名\n",
" df = df.with_columns([\n",
" pl.col('act_factor1').rank(method='average', descending=True).over('trade_date').alias('rank_act_factor1'),\n",
" pl.col('act_factor2').rank(method='average', descending=True).over('trade_date').alias('rank_act_factor2'),\n",
" pl.col('act_factor3').rank(method='average', descending=True).over('trade_date').alias('rank_act_factor3')\n",
" ])\n",
" \n",
" return df"
],
"outputs": [],
"execution_count": 17
},
{
"cell_type": "code",
"id": "53f86ddc0677a6d7",
"metadata": {
"scrolled": true,
"ExecuteTime": {
"end_time": "2025-02-21T15:09:53.292850Z",
"start_time": "2025-02-21T15:09:53.234877Z"
}
},
"source": [
"origin_columns = df.columns\n",
"origin_columns = [col for col in origin_columns if col not in ['turnover_rate', 'pe_ttm', 'volume_ratio', 'l2_code']]\n",
"# origin_columns = [col for col in origin_columns if col not in index_data.columns]\n"
],
"outputs": [],
"execution_count": 18
},
{
"cell_type": "code",
"id": "5f3d9aece75318cd",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T15:09:55.552350Z",
"start_time": "2025-02-21T15:09:53.310664Z"
}
},
"source": [
"def filter_data(df):\n",
" # 转换为 lazy frame\n",
" df = df.lazy()\n",
"\n",
" df = df.filter(~pl.col('is_st')) # 去掉 is_st 为 True 的行\n",
" df = df.filter(~pl.col('ts_code').str.contains('BJ$')) # ts_code 以 'BJ' 结尾的行\n",
" df = df.filter(~pl.col('ts_code').str.contains('^30')) # ts_code 以 '30' 开头的行\n",
" df = df.filter(~pl.col('ts_code').str.contains('^68')) # ts_code 以 '68' 开头的行\n",
" df = df.filter(~pl.col('ts_code').str.contains('^8')) # ts_code 以 '8' 开头的行\n",
"\n",
" return df\n",
"\n",
"\n",
"\n",
"tdf = filter_data(df)\n",
"tdf = get_technical_factor(tdf)\n",
"tdf = get_act_factor(tdf)\n",
"# df = get_money_flow_factor(df)\n",
"# df = get_alpha_factor(df)\n",
"# df = df.merge(industry_df, on=['l2_code', 'trade_date'], how='left')\n",
"# df = df.rename(columns={'l2_code': 'cat_l2_code'})\n",
"# df = df.merge(index_data, on='trade_date', how='left')\n",
"\n",
"print_df_info(tdf.collect())"
],
"outputs": [
{
"ename": "PanicException",
"evalue": "python function failed: ATR() got an unexpected keyword argument 'output_col'",
"output_type": "error",
"traceback": [
"\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
"\u001B[1;31mPanicException\u001B[0m Traceback (most recent call last)",
"Cell \u001B[1;32mIn[19], line 24\u001B[0m\n\u001B[0;32m 17\u001B[0m tdf \u001B[38;5;241m=\u001B[39m get_act_factor(tdf)\n\u001B[0;32m 18\u001B[0m \u001B[38;5;66;03m# df = get_money_flow_factor(df)\u001B[39;00m\n\u001B[0;32m 19\u001B[0m \u001B[38;5;66;03m# df = get_alpha_factor(df)\u001B[39;00m\n\u001B[0;32m 20\u001B[0m \u001B[38;5;66;03m# df = df.merge(industry_df, on=['l2_code', 'trade_date'], how='left')\u001B[39;00m\n\u001B[0;32m 21\u001B[0m \u001B[38;5;66;03m# df = df.rename(columns={'l2_code': 'cat_l2_code'})\u001B[39;00m\n\u001B[0;32m 22\u001B[0m \u001B[38;5;66;03m# df = df.merge(index_data, on='trade_date', how='left')\u001B[39;00m\n\u001B[1;32m---> 24\u001B[0m print_df_info(\u001B[43mtdf\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mcollect\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m)\n",
"File \u001B[1;32mE:\\Python\\anaconda\\envs\\try_trader\\lib\\site-packages\\polars\\lazyframe\\frame.py:2053\u001B[0m, in \u001B[0;36mLazyFrame.collect\u001B[1;34m(self, type_coercion, predicate_pushdown, projection_pushdown, simplify_expression, slice_pushdown, comm_subplan_elim, comm_subexpr_elim, cluster_with_columns, collapse_joins, no_optimization, streaming, engine, background, _eager, **_kwargs)\u001B[0m\n\u001B[0;32m 2051\u001B[0m \u001B[38;5;66;03m# Only for testing purposes\u001B[39;00m\n\u001B[0;32m 2052\u001B[0m callback \u001B[38;5;241m=\u001B[39m _kwargs\u001B[38;5;241m.\u001B[39mget(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mpost_opt_callback\u001B[39m\u001B[38;5;124m\"\u001B[39m, callback)\n\u001B[1;32m-> 2053\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m wrap_df(\u001B[43mldf\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mcollect\u001B[49m\u001B[43m(\u001B[49m\u001B[43mcallback\u001B[49m\u001B[43m)\u001B[49m)\n",
"\u001B[1;31mPanicException\u001B[0m: python function failed: ATR() got an unexpected keyword argument 'output_col'"
]
}
],
"execution_count": 19
},
{
"cell_type": "code",
"id": "f4f16d63ad18d1bc",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T15:09:55.555352100Z",
"start_time": "2025-02-21T15:06:05.193979Z"
}
},
"source": [
"feature_columns = [col for col in tdf.columns if col not in ['trade_date',\n",
" 'ts_code',\n",
" 'label']]\n",
"feature_columns = [col for col in feature_columns if 'future' not in col]\n",
"feature_columns = [col for col in feature_columns if 'score' not in col]\n",
"feature_columns = [col for col in feature_columns if col not in origin_columns]\n",
"feature_columns = [col for col in feature_columns if not col.startswith('_')]\n",
"print(feature_columns)"
],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['turnover_rate', 'pe_ttm', 'volume_ratio', 'l2_code', 'up', 'down', 'atr_14', 'atr_6', 'rsi_3', 'rsi_6', 'rsi_9', 'return_5', 'return_10', 'return_20', 'avg_close_5', 'std_return_5', 'std_return_15', 'std_return_25', 'std_return_90', 'std_return_90_2', 'std_return_5 / std_return_90', 'std_return_5 / std_return_25', 'std_return_90 - std_return_90_2']\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\liaozhaorun\\AppData\\Local\\Temp\\ipykernel_6468\\1049439272.py:1: PerformanceWarning: Determining the column names of a LazyFrame requires resolving its schema, which is a potentially expensive operation. Use `LazyFrame.collect_schema().names()` to get the column names without this warning.\n",
" feature_columns = [col for col in tdf.columns if col not in ['trade_date',\n"
]
}
],
"execution_count": 8
},
{
"cell_type": "code",
"id": "0ebdfb92-d88b-4b5c-a715-675dab876fc0",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T15:06:05.360476Z",
"start_time": "2025-02-21T15:06:05.298420Z"
}
},
"source": [
"def create_deviation_within_dates(df, feature_columns):\n",
" groupby_col = 'cat_l2_code' # 使用 trade_date 进行分组\n",
" new_columns = {}\n",
" ret_feature_columns = feature_columns[:]\n",
"\n",
" # 自动选择所有数值型特征\n",
" num_features = [col for col in feature_columns if 'cat' not in col and 'index' not in col]\n",
"\n",
" # 遍历所有数值型特征\n",
" for feature in num_features:\n",
" if feature == 'trade_date': # 不需要对 'trade_date' 计算偏差\n",
" continue\n",
"\n",
" grouped_median = df.groupby(['trade_date', groupby_col])[feature].transform('median')\n",
" deviation_col_name = f'deviation_median_{feature}'\n",
" new_columns[deviation_col_name] = df[feature] - grouped_median\n",
" ret_feature_columns.append(deviation_col_name)\n",
"\n",
" grouped_mean = df.groupby(groupby_col)[feature].transform('mean')\n",
" deviation_col_name = f'deviation_mean_{feature}'\n",
" new_columns[deviation_col_name] = df[feature] - grouped_mean\n",
" ret_feature_columns.append(deviation_col_name)\n",
"\n",
" # 将新计算的偏差特征与原始 DataFrame 合并\n",
" df = pd.concat([df, pd.DataFrame(new_columns)], axis=1)\n",
"\n",
" # for feature in ['obv', 'return_20', 'act_factor1', 'act_factor2', 'act_factor3', 'act_factor4']:\n",
" # df[f'deviation_industry_{feature}'] = df[feature] - df[f'industry_{feature}']\n",
"\n",
" return df, ret_feature_columns\n"
],
"outputs": [],
"execution_count": 9
},
{
"cell_type": "code",
"id": "fbb968383f8cf2c7",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T15:06:05.485541Z",
"start_time": "2025-02-21T15:06:05.392972Z"
}
},
"source": [
"def get_qcuts(series, quantiles):\n",
" q = pd.qcut(series, q=quantiles, labels=False, duplicates='drop')\n",
" return q[-1] # 返回窗口最后一个元素的分位数标签\n",
"\n",
"\n",
"window = 5\n",
"quantiles = 20\n",
"\n",
"def calculate_risk_adjusted_target(df, days=5):\n",
" df = df.sort_values(by=['ts_code', 'trade_date'])\n",
"\n",
" df['future_close'] = df.groupby('ts_code')['close'].shift(-days)\n",
" df['future_return'] = (df['future_close'] - df['close']) / df['close']\n",
"\n",
" df['future_volatility'] = df.groupby('ts_code')['future_return'].rolling(days, min_periods=1).std().reset_index(level=0, drop=True)\n",
" df['sharpe_ratio'] = df['future_return'] * df['future_volatility']\n",
" df['sharpe_ratio'].replace([np.inf, -np.inf], np.nan, inplace=True)\n",
"\n",
" return df['sharpe_ratio']\n",
"\n",
"def get_label(df):\n",
" # labels = df['future_af13'] - df['act_factor1']\n",
" df['future_close'] = df.groupby('ts_code')['close'].shift(-4)\n",
" df['future_open'] = df.groupby('ts_code')['open'].shift(-1)\n",
" df['future_high'] = df.groupby('ts_code')['high'].shift(-1)\n",
" df['future_return'] = (df['future_close'] - df['close']) / df['close']\n",
" labels = df['future_return'] >= 0.03\n",
" # labels = df['future_af11']\n",
" # labels = df['ema_5'].shift(-1) - df['close']\n",
" # df['label'] = (df['future_af11'] - df['act_factor1']) / df['act_factor1']\n",
" # df['label'] = calculate_risk_adjusted_target(df, days=5)\n",
" # lower_percentile = df['label'].quantile(0.01) # 1%分位数\n",
" # upper_percentile = df['label'].quantile(0.99) # 99%分位数\n",
" # labels = df['label'].clip(lower=lower_percentile, upper=upper_percentile)\n",
" # labels = calculate_risk_adjusted_return(df, days=3, history_days=3, method='ratio')\n",
" return labels\n",
"\n",
"df['label'] = get_label(df)\n",
"# df = df.apply(lambda x: x.astype('float32') if x.dtype in ['float64', 'float32'] else x)\n",
"df = df.sort_values(by=['trade_date', 'ts_code'])\n",
"train_data = df[(df['trade_date'] <= '2023-01-01') & (df['trade_date'] >= '2016-01-01')]\n",
"test_data = df[df['trade_date'] >= '2023-01-01']\n",
"\n",
"train_data = train_data.merge(industry_df, on=['cat_l2_code', 'trade_date'], how='left')\n",
"# train_data = train_data.rename(columns={'l2_code': 'cat_l2_code'})\n",
"test_data = test_data.merge(industry_df, on=['cat_l2_code', 'trade_date'], how='left')\n",
"# test_data = test_data.rename(columns={'l2_code': 'cat_l2_code'})\n",
"\n",
"train_data = train_data.groupby('trade_date', group_keys=False).apply(lambda x: x.nlargest(1000, 'return_20'))\n",
"test_data = test_data.groupby('trade_date', group_keys=False).apply(lambda x: x.nlargest(1000, 'return_20'))\n",
"\n",
"# train_data = get_future_data(train_data)\n",
"\n",
"# df = df[['ts_code', 'trade_date', 'open', 'close']]\n",
"\n",
"train_data, test_data = train_data.replace([np.inf, -np.inf], np.nan), test_data.replace([np.inf, -np.inf], np.nan)\n"
],
"outputs": [
{
"ename": "AttributeError",
"evalue": "'DataFrame' object has no attribute 'groupby'",
"output_type": "error",
"traceback": [
"\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
"\u001B[1;31mAttributeError\u001B[0m Traceback (most recent call last)",
"Cell \u001B[1;32mIn[10], line 38\u001B[0m\n\u001B[0;32m 28\u001B[0m \u001B[38;5;66;03m# labels = df['future_af11']\u001B[39;00m\n\u001B[0;32m 29\u001B[0m \u001B[38;5;66;03m# labels = df['ema_5'].shift(-1) - df['close']\u001B[39;00m\n\u001B[0;32m 30\u001B[0m \u001B[38;5;66;03m# df['label'] = (df['future_af11'] - df['act_factor1']) / df['act_factor1']\u001B[39;00m\n\u001B[1;32m (...)\u001B[0m\n\u001B[0;32m 34\u001B[0m \u001B[38;5;66;03m# labels = df['label'].clip(lower=lower_percentile, upper=upper_percentile)\u001B[39;00m\n\u001B[0;32m 35\u001B[0m \u001B[38;5;66;03m# labels = calculate_risk_adjusted_return(df, days=3, history_days=3, method='ratio')\u001B[39;00m\n\u001B[0;32m 36\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m labels\n\u001B[1;32m---> 38\u001B[0m df[\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mlabel\u001B[39m\u001B[38;5;124m'\u001B[39m] \u001B[38;5;241m=\u001B[39m \u001B[43mget_label\u001B[49m\u001B[43m(\u001B[49m\u001B[43mdf\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 39\u001B[0m \u001B[38;5;66;03m# df = df.apply(lambda x: x.astype('float32') if x.dtype in ['float64', 'float32'] else x)\u001B[39;00m\n\u001B[0;32m 40\u001B[0m df \u001B[38;5;241m=\u001B[39m df\u001B[38;5;241m.\u001B[39msort_values(by\u001B[38;5;241m=\u001B[39m[\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mtrade_date\u001B[39m\u001B[38;5;124m'\u001B[39m, \u001B[38;5;124m'\u001B[39m\u001B[38;5;124mts_code\u001B[39m\u001B[38;5;124m'\u001B[39m])\n",
"Cell \u001B[1;32mIn[10], line 23\u001B[0m, in \u001B[0;36mget_label\u001B[1;34m(df)\u001B[0m\n\u001B[0;32m 21\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mget_label\u001B[39m(df):\n\u001B[0;32m 22\u001B[0m \u001B[38;5;66;03m# labels = df['future_af13'] - df['act_factor1']\u001B[39;00m\n\u001B[1;32m---> 23\u001B[0m df[\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mfuture_close\u001B[39m\u001B[38;5;124m'\u001B[39m] \u001B[38;5;241m=\u001B[39m \u001B[43mdf\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mgroupby\u001B[49m(\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mts_code\u001B[39m\u001B[38;5;124m'\u001B[39m)[\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mclose\u001B[39m\u001B[38;5;124m'\u001B[39m]\u001B[38;5;241m.\u001B[39mshift(\u001B[38;5;241m-\u001B[39m\u001B[38;5;241m4\u001B[39m)\n\u001B[0;32m 24\u001B[0m df[\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mfuture_open\u001B[39m\u001B[38;5;124m'\u001B[39m] \u001B[38;5;241m=\u001B[39m df\u001B[38;5;241m.\u001B[39mgroupby(\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mts_code\u001B[39m\u001B[38;5;124m'\u001B[39m)[\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mopen\u001B[39m\u001B[38;5;124m'\u001B[39m]\u001B[38;5;241m.\u001B[39mshift(\u001B[38;5;241m-\u001B[39m\u001B[38;5;241m1\u001B[39m)\n\u001B[0;32m 25\u001B[0m df[\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mfuture_high\u001B[39m\u001B[38;5;124m'\u001B[39m] \u001B[38;5;241m=\u001B[39m df\u001B[38;5;241m.\u001B[39mgroupby(\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mts_code\u001B[39m\u001B[38;5;124m'\u001B[39m)[\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mhigh\u001B[39m\u001B[38;5;124m'\u001B[39m]\u001B[38;5;241m.\u001B[39mshift(\u001B[38;5;241m-\u001B[39m\u001B[38;5;241m1\u001B[39m)\n",
"\u001B[1;31mAttributeError\u001B[0m: 'DataFrame' object has no attribute 'groupby'"
]
}
],
"execution_count": 10
},
{
"cell_type": "code",
"execution_count": 12,
"id": "de8c2f6c770d2439",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T15:06:05.491525100Z",
"start_time": "2025-02-20T16:12:48.951414Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Index(['ts_code', 'trade_date', 'open', 'close', 'high', 'low', 'vol',\n",
" 'turnover_rate', 'pe_ttm', 'circ_mv', 'volume_ratio', 'is_st',\n",
" 'up_limit', 'down_limit', 'buy_sm_vol', 'sell_sm_vol', 'buy_lg_vol',\n",
" 'sell_lg_vol', 'buy_elg_vol', 'sell_elg_vol', 'net_mf_vol',\n",
" 'cat_l2_code', 'up', 'down', 'atr_14', 'atr_6', 'obv', 'maobv_6',\n",
" 'obv-maobv_6', 'rsi_3', 'rsi_6', 'rsi_9', 'return_5', 'return_10',\n",
" 'return_20', 'avg_close_5', 'std_return_5', 'std_return_15',\n",
" 'std_return_25', 'std_return_90', 'std_return_90_2',\n",
" 'std_return_5 / std_return_90', 'std_return_5 / std_return_25',\n",
" 'std_return_90 - std_return_90_2', 'ema_5', 'ema_13', 'ema_20',\n",
" 'ema_60', 'act_factor1', 'act_factor2', 'act_factor3', 'act_factor4',\n",
" 'cat_af1', 'cat_af2', 'cat_af3', 'cat_af4', 'act_factor5',\n",
" 'act_factor6', 'rank_act_factor1', 'rank_act_factor2',\n",
" 'rank_act_factor3', 'active_buy_volume_large', 'active_buy_volume_big',\n",
" 'active_buy_volume_small', 'buy_lg_vol_minus_sell_lg_vol',\n",
" 'buy_elg_vol_minus_sell_elg_vol', 'log(circ_mv)', 'alpha_022',\n",
" 'alpha_003', 'alpha_007', 'alpha_013', 'future_close', 'future_open',\n",
" 'future_high', 'future_return', 'label', 'industry_obv',\n",
" 'industry_return_5', 'industry_obv_deviation',\n",
" 'industry_return_5_deviation', 'industry_return_5_percentile'],\n",
" dtype='object')\n"
]
}
],
"source": [
"print(train_data.columns)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "20ffa7229c9d2f86",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T15:06:05.492528800Z",
"start_time": "2025-02-20T16:12:49.145792Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"feature_columns size: 149\n",
"feature_columns size: 149\n",
"1164839\n",
"最小日期: 2017-03-21\n",
"最大日期: 2022-12-30\n",
"397977\n",
"最小日期: 2023-01-03\n",
"最大日期: 2025-02-12\n"
]
}
],
"source": [
"feature_columns_new = feature_columns[:]\n",
"train_data, feature_columns_new = create_deviation_within_dates(train_data, feature_columns)\n",
"print(f'feature_columns size: {len(feature_columns_new)}')\n",
"test_data, feature_columns_new = create_deviation_within_dates(test_data, feature_columns)\n",
"print(f'feature_columns size: {len(feature_columns_new)}')\n",
"\n",
"train_data = train_data.dropna(subset=feature_columns_new)\n",
"train_data = train_data.dropna(subset=['label'])\n",
"train_data = train_data.reset_index(drop=True)\n",
"\n",
"test_data = test_data.dropna(subset=feature_columns_new)\n",
"test_data = test_data.dropna(subset=['label'])\n",
"test_data = test_data.reset_index(drop=True)\n",
"\n",
"print(len(train_data))\n",
"print(f\"最小日期: {train_data['trade_date'].min().strftime('%Y-%m-%d')}\")\n",
"print(f\"最大日期: {train_data['trade_date'].max().strftime('%Y-%m-%d')}\")\n",
"print(len(test_data))\n",
"print(f\"最小日期: {test_data['trade_date'].min().strftime('%Y-%m-%d')}\")\n",
"print(f\"最大日期: {test_data['trade_date'].max().strftime('%Y-%m-%d')}\")"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "35238cb4f45ce756",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T15:06:05.507525300Z",
"start_time": "2025-02-20T16:13:07.227911Z"
}
},
"outputs": [],
"source": [
"cat_columns = [col for col in df.columns if col.startswith('cat')]\n",
"for col in cat_columns:\n",
" train_data[col] = train_data[col].astype('category')\n",
" test_data[col] = test_data[col].astype('category')"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "8f134d435f71e9e2",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T15:06:05.508526600Z",
"start_time": "2025-02-20T16:13:07.436171Z"
},
"jupyter": {
"source_hidden": true
}
},
"outputs": [],
"source": [
"from catboost import Pool\n",
"import lightgbm as lgb\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"\n",
"def train_light_model(train_data_df, test_data_df, params, feature_columns, callbacks, evals,\n",
" print_feature_importance=True, num_boost_round=100,\n",
" use_optuna=False):\n",
" train_data_df, test_data_df = train_data_df.dropna(subset=['label']), test_data_df.dropna(subset=['label'])\n",
" X_train = train_data_df[feature_columns]\n",
" y_train = train_data_df['label']\n",
"\n",
" X_val = test_data_df[feature_columns]\n",
" y_val = test_data_df['label']\n",
"\n",
" categorical_feature = [i for i, col in enumerate(feature_columns) if col.startswith('cat')]\n",
" print(f'categorical_feature: {categorical_feature}')\n",
" train_data = lgb.Dataset(X_train, label=y_train, categorical_feature=categorical_feature)\n",
" val_data = lgb.Dataset(X_val, label=y_val, categorical_feature=categorical_feature)\n",
" model = lgb.train(\n",
" params, train_data, num_boost_round=num_boost_round,\n",
" valid_sets=[train_data, val_data], valid_names=['train', 'valid'],\n",
" callbacks=callbacks\n",
" )\n",
"\n",
" if print_feature_importance:\n",
" lgb.plot_metric(evals)\n",
" # lgb.plot_tree(model, figsize=(20, 8))\n",
" lgb.plot_importance(model, importance_type='split', max_num_features=20)\n",
" plt.show()\n",
" return model\n",
"\n",
"\n",
"from catboost import CatBoostClassifier\n",
"import pandas as pd\n",
"\n",
"\n",
"def train_catboost(train_data_df, test_data_df, feature_columns, params=None, plot=False):\n",
"\n",
" train_data_df, test_data_df = train_data_df.dropna(subset=['label']), test_data_df.dropna(subset=['label'])\n",
" X_train = train_data_df[feature_columns]\n",
" y_train = train_data_df['label']\n",
"\n",
" X_val = test_data_df[feature_columns]\n",
" y_val = test_data_df['label']\n",
"\n",
" cat_features = [i for i, col in enumerate(feature_columns) if col.startswith('cat')]\n",
" print(f'cat_features: {cat_features}')\n",
" train_pool = Pool(data=X_train, label=y_train, cat_features=cat_features)\n",
" val_pool = Pool(data=X_val, label=y_val, cat_features=cat_features)\n",
"\n",
"\n",
" model = CatBoostClassifier(**params)\n",
" model.fit(train_pool,\n",
" eval_set=val_pool, plot=plot)\n",
"\n",
" return model"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "4a4542e1ed6afe7d",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T15:06:05.509525700Z",
"start_time": "2025-02-20T16:13:09.199245Z"
}
},
"outputs": [],
"source": [
"light_params = {\n",
" 'objective': 'binary',\n",
" 'metric': 'average_precision',\n",
" 'learning_rate': 0.05,\n",
" 'is_unbalance': True,\n",
" 'num_leaves': 2048,\n",
" 'min_data_in_leaf': 1024,\n",
" 'max_depth': 32,\n",
" 'max_bin': 1024,\n",
" 'feature_fraction': 0.7,\n",
" 'bagging_fraction': 0.7,\n",
" 'bagging_freq': 5,\n",
" # 'lambda_l1': 80,\n",
" # 'lambda_l2': 65,\n",
" 'verbosity': -1,\n",
" 'num_threads' : 16\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "beeb098799ecfa6a",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T15:06:05.520525800Z",
"start_time": "2025-02-20T16:13:09.280097Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"train data size: 1164839\n",
"categorical_feature: [3, 34, 35, 36, 37]\n",
"Training until validation scores don't improve for 50 rounds\n",
"Early stopping, best iteration is:\n",
"[82]\ttrain's average_precision: 0.534659\tvalid's average_precision: 0.281957\n",
"Evaluated only: average_precision\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"print('train data size: ', len(train_data))\n",
" \n",
"evals = {}\n",
"model = train_light_model(train_data, test_data, light_params, feature_columns_new,\n",
" [lgb.log_evaluation(period=500),\n",
" lgb.callback.record_evaluation(evals),\n",
" lgb.early_stopping(50, first_metric_only=True)\n",
" ], evals,\n",
" num_boost_round=1000, use_optuna=False,\n",
" print_feature_importance=True)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "445dff84-70b2-4fc9-a9b6-1251993324d6",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T15:06:05.522549500Z",
"start_time": "2025-02-20T16:14:20.677936Z"
}
},
"outputs": [],
"source": [
"# catboost_params = {\n",
"# 'loss_function': 'CrossEntropy', # 适用于二分类\n",
"# 'eval_metric': 'AUC', # 评估指标\n",
"# 'iterations': 1000,\n",
"# 'learning_rate': 0.01,\n",
"# 'depth': , # 控制模型复杂度\n",
"# # 'l2_leaf_reg': 3, # L2 正则化\n",
"# 'verbose': 500,\n",
"# 'early_stopping_rounds': 100,\n",
"# # 'one_hot_max_size': 50,\n",
"# # 'class_weights': [0.6, 1.2]\n",
"# # 'task_type': 'GPU'\n",
"# }\n",
"\n",
"# model = train_catboost(train_data, test_data, feature_columns_new, catboost_params, plot=True)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "751a6df9-d90b-4053-8769-c6c3b6654406",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T15:06:05.523526100Z",
"start_time": "2025-02-20T16:14:20.855152Z"
}
},
"outputs": [],
"source": [
"from tqdm import tqdm\n",
"\n",
"\n",
"def incremental_training(test_data: pd.DataFrame, model: lgb.Booster, days: int, back_days: int, feature_columns: list, params: dict):\n",
" test_data = test_data.sort_values(by='trade_date')\n",
"\n",
" scores = []\n",
"\n",
" unique_trade_dates = sorted(test_data['trade_date'].unique())\n",
" for i in tqdm(range(0, len(unique_trade_dates), days)):\n",
" # Get the current window of trade dates\n",
" current_dates = unique_trade_dates[i:i + days]\n",
" window_data = test_data[test_data['trade_date'].isin(current_dates)]\n",
" X = window_data[feature_columns]\n",
"\n",
" window_scores = model.predict(X)\n",
" scores.extend(window_scores)\n",
"\n",
" current_dates = unique_trade_dates[max(0, i - back_days):i + days]\n",
" window_data = test_data[test_data['trade_date'].isin(current_dates)]\n",
"\n",
" # Incrementally train the model with the current window data\n",
" X_train = window_data[feature_columns]\n",
" y_train = window_data['label'] # Assuming 'score' is what you're predicting\n",
" categorical_feature = [i for i, col in enumerate(feature_columns) if col.startswith('cat')]\n",
" # print(f'categorical_feature: {categorical_feature}')\n",
" train_data = lgb.Dataset(X_train, label=y_train, categorical_feature=categorical_feature)\n",
"\n",
" model = lgb.train(params,\n",
" train_set=train_data,\n",
" num_boost_round=100,\n",
" init_model=model,\n",
" keep_training_booster=True)\n",
"\n",
" # Add the scores as a new 'score' column to the test_data\n",
" test_data['score'] = scores\n",
"\n",
" return test_data\n"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "660a24f74501f98f",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T15:06:05.533542700Z",
"start_time": "2025-02-20T16:14:20.978664Z"
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|████████████████████████████████████████████████████████████████████████████████| 102/102 [02:16<00:00, 1.34s/it]\n"
]
}
],
"source": [
"predictions_test = incremental_training(test_data, model, 5, 0, feature_columns_new, light_params)\n"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "36ccaa730ab46718",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T15:06:05.535526300Z",
"start_time": "2025-02-20T16:17:08.116647Z"
}
},
"outputs": [],
"source": [
"predictions_test = predictions_test.loc[predictions_test.groupby('trade_date')['score'].idxmax()]\n",
"predictions_test[['trade_date', 'score', 'ts_code']].to_csv('predictions_test.tsv', index=False)\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.19"
}
},
"nbformat": 4,
"nbformat_minor": 5
}