Files
NewStock/code/train/V1.2.ipynb
liaozhaorun 49fa31ac63 2.15
2025-02-15 23:33:34 +08:00

1105 lines
174 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "code",
"id": "79a7758178bafdd3",
"metadata": {
"jupyter": {
"source_hidden": true
},
"ExecuteTime": {
"end_time": "2025-02-14T17:33:40.203900Z",
"start_time": "2025-02-14T17:33:40.121936Z"
}
},
"source": [
"%load_ext autoreload\n",
"%autoreload 2\n",
"\n",
"import pandas as pd\n",
"def read_and_merge_h5_data(h5_filename, key, columns, df=None, join='left'):\n",
" \"\"\"\n",
" 读取 HDF5 文件中的数据,根据指定的 columns 筛选数据,\n",
" 如果传入 df 参数,则将其与读取的数据根据 ts_code 和 trade_date 合并。\n",
"\n",
" 参数:\n",
" - h5_filename: HDF5 文件名\n",
" - key: 数据存储在 HDF5 文件中的 key\n",
" - columns: 要读取的列名列表\n",
" - df: 需要合并的 DataFrame如果为空则不进行合并\n",
"\n",
" 返回:\n",
" - 合并后的 DataFrame\n",
" \"\"\"\n",
" # 处理 _ 开头的列名\n",
" processed_columns = []\n",
" for col in columns:\n",
" if col.startswith('_'):\n",
" processed_columns.append(col[1:]) # 去掉下划线\n",
" else:\n",
" processed_columns.append(col)\n",
"\n",
" # 从 HDF5 文件读取数据,选择需要的列\n",
" data = pd.read_hdf(h5_filename, key=key, columns=processed_columns)\n",
"\n",
" # 修改列名,如果列名以前有 _加上 _\n",
" for col in data.columns:\n",
" if col not in columns: # 只有不在 columns 中的列才需要加下划线\n",
" new_col = f'_{col}'\n",
" data.rename(columns={col: new_col}, inplace=True)\n",
"\n",
" # 如果传入的 df 不为空,则进行合并\n",
" if df is not None and not df.empty:\n",
" # 确保两个 DataFrame 都有 ts_code 和 trade_date 列\n",
" df['trade_date'] = pd.to_datetime(df['trade_date'], format='%Y%m%d')\n",
" data['trade_date'] = pd.to_datetime(data['trade_date'], format='%Y%m%d')\n",
"\n",
" # 根据 ts_code 和 trade_date 合并\n",
" merged_df = pd.merge(df, data, on=['ts_code', 'trade_date'], how=join)\n",
" else:\n",
" # 如果 df 为空,则直接返回读取的数据\n",
" merged_df = data\n",
"\n",
" return merged_df\n",
"\n"
],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The autoreload extension is already loaded. To reload it, use:\n",
" %reload_ext autoreload\n"
]
}
],
"execution_count": 32
},
{
"cell_type": "code",
"id": "a79cafb06a7e0e43",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-14T17:34:23.845554Z",
"start_time": "2025-02-14T17:33:40.211865Z"
}
},
"source": [
"print('daily data')\n",
"df = read_and_merge_h5_data('../../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('../../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('../../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('../../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",
"stk limit\n",
"money flow\n"
]
}
],
"execution_count": 33
},
{
"cell_type": "code",
"id": "c4e9e1d31da6dba6",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-14T17:34:23.956070Z",
"start_time": "2025-02-14T17:34:23.878555Z"
}
},
"source": [
"origin_columns = df.columns.tolist()\n",
"origin_columns = [col for col in origin_columns if col not in ['turnover_rate', 'pe_ttm', 'volume_ratio']]"
],
"outputs": [],
"execution_count": 34
},
{
"cell_type": "code",
"id": "a735bc02ceb4d872",
"metadata": {
"jupyter": {
"source_hidden": true
},
"ExecuteTime": {
"end_time": "2025-02-14T17:34:24.082032Z",
"start_time": "2025-02-14T17:34:23.990152Z"
}
},
"source": [
"import numpy as np\n",
"import talib\n",
"\n",
"def get_technical_factor(df):\n",
" # 按股票和日期排序\n",
" df = df.sort_values(by=['ts_code', 'trade_date'])\n",
" grouped = df.groupby('ts_code', group_keys=False)\n",
"\n",
" # 计算 up 和 down\n",
" df['up'] = (df['high'] - df[['close', 'open']].max(axis=1)) / df['close']\n",
" df['down'] = (df[['close', 'open']].min(axis=1) - df['low']) / df['close']\n",
"\n",
" # 计算 ATR\n",
" df['atr_14'] = grouped.apply(\n",
" lambda x: pd.Series(talib.ATR(x['high'].values, x['low'].values, x['close'].values, timeperiod=14), index=x.index)\n",
" )\n",
" df['atr_6'] = grouped.apply(\n",
" lambda x: pd.Series(talib.ATR(x['high'].values, x['low'].values, x['close'].values, timeperiod=6), index=x.index)\n",
" )\n",
"\n",
" # 计算 OBV 及其均线\n",
" df['obv'] = grouped.apply(\n",
" lambda x: pd.Series(talib.OBV(x['close'].values, x['vol'].values), index=x.index)\n",
" )\n",
" df['maobv_6'] = grouped.apply(\n",
" lambda x: pd.Series(talib.SMA(x['obv'].values, timeperiod=6), index=x.index)\n",
" )\n",
" df['obv-maobv_6'] = df['obv'] - df['maobv_6']\n",
"\n",
" # 计算 RSI\n",
" df['rsi_3'] = grouped.apply(\n",
" lambda x: pd.Series(talib.RSI(x['close'].values, timeperiod=3), index=x.index)\n",
" )\n",
" df['rsi_6'] = grouped.apply(\n",
" lambda x: pd.Series(talib.RSI(x['close'].values, timeperiod=6), index=x.index)\n",
" )\n",
" df['rsi_9'] = grouped.apply(\n",
" lambda x: pd.Series(talib.RSI(x['close'].values, timeperiod=9), index=x.index)\n",
" )\n",
"\n",
" # 计算 return_10 和 return_20\n",
" df['return_10'] = grouped['close'].apply(lambda x: x / x.shift(10) - 1)\n",
" df['return_20'] = grouped['close'].apply(lambda x: x / x.shift(20) - 1)\n",
"\n",
" # 计算 avg_close_5\n",
" df['avg_close_5'] = grouped['close'].apply(lambda x: x.rolling(window=5).mean() / x)\n",
"\n",
" # 计算标准差指标\n",
" df['std_return_5'] = grouped['close'].apply(lambda x: x.pct_change().rolling(window=5).std())\n",
" df['std_return_15'] = grouped['close'].apply(lambda x: x.pct_change().rolling(window=15).std())\n",
" df['std_return_25'] = grouped['close'].apply(lambda x: x.pct_change().rolling(window=25).std())\n",
" df['std_return_90'] = grouped['close'].apply(lambda x: x.pct_change().rolling(window=90).std())\n",
" df['std_return_90_2'] = grouped['close'].apply(lambda x: x.shift(10).pct_change().rolling(window=90).std())\n",
"\n",
" # 计算比值指标\n",
" df['std_return_5 / std_return_90'] = df['std_return_5'] / df['std_return_90']\n",
" df['std_return_5 / std_return_25'] = df['std_return_5'] / df['std_return_25']\n",
"\n",
" # 计算标准差差值\n",
" df['std_return_90 - std_return_90_2'] = df['std_return_90'] - df['std_return_90_2']\n",
"\n",
" return df\n",
"\n",
"\n",
"def get_act_factor(df):\n",
" # 按股票和日期排序\n",
" df = df.sort_values(by=['ts_code', 'trade_date'])\n",
" grouped = df.groupby('ts_code', group_keys=False)\n",
" # 计算 EMA 指标\n",
" df['ema_5'] = grouped['close'].apply(\n",
" lambda x: pd.Series(talib.EMA(x.values, timeperiod=5), index=x.index)\n",
" )\n",
" df['ema_13'] = grouped['close'].apply(\n",
" lambda x: pd.Series(talib.EMA(x.values, timeperiod=13), index=x.index)\n",
" )\n",
" df['ema_20'] = grouped['close'].apply(\n",
" lambda x: pd.Series(talib.EMA(x.values, timeperiod=20), index=x.index)\n",
" )\n",
" df['ema_60'] = grouped['close'].apply(\n",
" lambda x: pd.Series(talib.EMA(x.values, timeperiod=60), index=x.index)\n",
" )\n",
"\n",
" # 计算 act_factor1, act_factor2, act_factor3, act_factor4\n",
" df['act_factor1'] = grouped['ema_5'].apply(\n",
" lambda x: np.arctan((x / x.shift(1) - 1) * 100) * 57.3 / 50\n",
" )\n",
" df['act_factor2'] = grouped['ema_13'].apply(\n",
" lambda x: np.arctan((x / x.shift(1) - 1) * 100) * 57.3 / 40\n",
" )\n",
" df['act_factor3'] = grouped['ema_20'].apply(\n",
" lambda x: np.arctan((x / x.shift(1) - 1) * 100) * 57.3 / 21\n",
" )\n",
" df['act_factor4'] = grouped['ema_60'].apply(\n",
" lambda x: np.arctan((x / x.shift(1) - 1) * 100) * 57.3 / 10\n",
" )\n",
"\n",
" # 计算 act_factor5 和 act_factor6\n",
" df['act_factor5'] = df['act_factor1'] + df['act_factor2'] + df['act_factor3'] + df['act_factor4']\n",
" df['act_factor6'] = (df['act_factor1'] - df['act_factor2']) / np.sqrt(df['act_factor1']**2 + df['act_factor2']**2)\n",
"\n",
" # 根据 trade_date 截面计算排名\n",
" df['rank_act_factor1'] = df.groupby('trade_date', group_keys=False)['act_factor1'].rank(ascending=False, pct=True)\n",
" df['rank_act_factor2'] = df.groupby('trade_date', group_keys=False)['act_factor2'].rank(ascending=False, pct=True)\n",
" df['rank_act_factor3'] = df.groupby('trade_date', group_keys=False)['act_factor3'].rank(ascending=False, pct=True)\n",
"\n",
" return df\n",
"\n",
"\n",
"def get_money_flow_factor(df):\n",
" # 计算资金流相关因子(字段名称见 tushare 数据说明)\n",
" df['active_buy_volume_large'] = df['buy_lg_vol'] / df['net_mf_vol']\n",
" df['active_buy_volume_big'] = df['buy_elg_vol'] / df['net_mf_vol']\n",
" df['active_buy_volume_small'] = df['buy_sm_vol'] / df['net_mf_vol']\n",
"\n",
" df['buy_lg_vol_minus_sell_lg_vol'] = (df['buy_lg_vol'] - df['sell_lg_vol']) / df['net_mf_vol']\n",
" df['buy_elg_vol_minus_sell_elg_vol'] = (df['buy_elg_vol'] - df['sell_elg_vol']) / df['net_mf_vol']\n",
"\n",
" df['log(circ_mv)'] = np.log(df['circ_mv'])\n",
" return df\n",
"\n",
"\n",
"def get_alpha_factor(df):\n",
" df = df.sort_values(by=['ts_code', 'trade_date'])\n",
" grouped = df.groupby('ts_code')\n",
"\n",
" # alpha_022: 当前 close 与 5 日前 close 差值\n",
" df['alpha_022'] = grouped['close'].transform(lambda x: x - x.shift(5))\n",
"\n",
" # alpha_003: (close - open) / (high - low)\n",
" df['alpha_003'] = np.where(df['high'] != df['low'],\n",
" (df['close'] - df['open']) / (df['high'] - df['low']),\n",
" 0)\n",
"\n",
" # alpha_007: 计算过去5日 close 与 vol 的相关性,并按 trade_date 排名\n",
" df['alpha_007'] = grouped.apply(lambda x: x['close'].rolling(5).corr(x['vol'])).reset_index(level=0, drop=True)\n",
" df['alpha_007'] = df.groupby('trade_date', group_keys=False)['alpha_007'].rank(ascending=True, pct=True)\n",
"\n",
" # alpha_013: 计算过去5日 close 之和 - 20日 close 之和,并按 trade_date 排名\n",
" df['alpha_013'] = grouped['close'].transform(lambda x: x.rolling(5).sum() - x.rolling(20).sum())\n",
" df['alpha_013'] = df.groupby('trade_date', group_keys=False)['alpha_013'].rank(ascending=True, pct=True)\n",
"\n",
" return df\n",
"\n",
"\n",
"def get_future_data(df):\n",
" df = df.sort_values(by=['ts_code', 'trade_date'])\n",
" # 预先对 ts_code 分组,使用 transform 保持原 DataFrame 形状\n",
" grouped = df.groupby('ts_code')\n",
"\n",
" df['future_return1'] = (grouped['close'].transform(lambda x: x.shift(-1)) - df['close']) / df['close']\n",
" df['future_return2'] = (grouped['open'].transform(lambda x: x.shift(-2)) - grouped['open'].transform(lambda x: x.shift(-1))) / grouped['open'].transform(lambda x: x.shift(-1))\n",
" df['future_return3'] = (grouped['close'].transform(lambda x: x.shift(-2)) - grouped['close'].transform(lambda x: x.shift(-1))) / grouped['close'].transform(lambda x: x.shift(-1))\n",
" df['future_return4'] = (grouped['close'].transform(lambda x: x.shift(-2)) - grouped['open'].transform(lambda x: x.shift(-1))) / grouped['open'].transform(lambda x: x.shift(-1))\n",
" df['future_return5'] = (grouped['close'].transform(lambda x: x.shift(-5)) - grouped['open'].transform(lambda x: x.shift(-1))) / grouped['open'].transform(lambda x: x.shift(-1))\n",
" df['future_return6'] = (grouped['close'].transform(lambda x: x.shift(-10)) - grouped['open'].transform(lambda x: x.shift(-1))) / grouped['open'].transform(lambda x: x.shift(-1))\n",
" df['future_return7'] = (grouped['close'].transform(lambda x: x.shift(-20)) - grouped['open'].transform(lambda x: x.shift(-1))) / grouped['open'].transform(lambda x: x.shift(-1))\n",
"\n",
" df['future_close1'] = (grouped['close'].transform(lambda x: x.shift(-1)) - df['close']) / df['close']\n",
" df['future_close2'] = (grouped['close'].transform(lambda x: x.shift(-2)) - df['close']) / df['close']\n",
" df['future_close3'] = (grouped['close'].transform(lambda x: x.shift(-3)) - df['close']) / df['close']\n",
" df['future_close4'] = (grouped['close'].transform(lambda x: x.shift(-4)) - df['close']) / df['close']\n",
" df['future_close5'] = (grouped['close'].transform(lambda x: x.shift(-5)) - df['close']) / df['close']\n",
"\n",
" df['future_af11'] = grouped['act_factor1'].transform(lambda x: x.shift(-1))\n",
" df['future_af12'] = grouped['act_factor1'].transform(lambda x: x.shift(-2))\n",
" df['future_af13'] = grouped['act_factor1'].transform(lambda x: x.shift(-3))\n",
" df['future_af14'] = grouped['act_factor1'].transform(lambda x: x.shift(-4))\n",
" df['future_af15'] = grouped['act_factor1'].transform(lambda x: x.shift(-5))\n",
"\n",
" df['future_af21'] = grouped['act_factor2'].transform(lambda x: x.shift(-1))\n",
" df['future_af22'] = grouped['act_factor2'].transform(lambda x: x.shift(-2))\n",
" df['future_af23'] = grouped['act_factor2'].transform(lambda x: x.shift(-3))\n",
" df['future_af24'] = grouped['act_factor2'].transform(lambda x: x.shift(-4))\n",
" df['future_af25'] = grouped['act_factor2'].transform(lambda x: x.shift(-5))\n",
"\n",
" df['future_af31'] = grouped['act_factor3'].transform(lambda x: x.shift(-1))\n",
" df['future_af32'] = grouped['act_factor3'].transform(lambda x: x.shift(-2))\n",
" df['future_af33'] = grouped['act_factor3'].transform(lambda x: x.shift(-3))\n",
" df['future_af34'] = grouped['act_factor3'].transform(lambda x: x.shift(-4))\n",
" df['future_af35'] = grouped['act_factor3'].transform(lambda x: x.shift(-5))\n",
"\n",
" return df\n"
],
"outputs": [],
"execution_count": 35
},
{
"cell_type": "code",
"id": "53f86ddc0677a6d7",
"metadata": {
"scrolled": true,
"ExecuteTime": {
"end_time": "2025-02-14T17:36:10.108321Z",
"start_time": "2025-02-14T17:34:24.118116Z"
}
},
"source": [
"df = get_technical_factor(df)\n",
"df = get_act_factor(df)\n",
"df = get_money_flow_factor(df)\n",
"df = get_alpha_factor(df)\n",
"# df = get_future_data(df)\n",
"# df = df.drop(columns=origin_columns)\n",
"\n",
"print(df.info())"
],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Index: 8296325 entries, 1962 to 8296323\n",
"Data columns (total 65 columns):\n",
" # Column Dtype \n",
"--- ------ ----- \n",
" 0 ts_code object \n",
" 1 trade_date datetime64[ns]\n",
" 2 open float64 \n",
" 3 close float64 \n",
" 4 high float64 \n",
" 5 low float64 \n",
" 6 vol float64 \n",
" 7 turnover_rate float64 \n",
" 8 pe_ttm float64 \n",
" 9 circ_mv float64 \n",
" 10 volume_ratio float64 \n",
" 11 is_st bool \n",
" 12 up_limit float64 \n",
" 13 down_limit float64 \n",
" 14 buy_sm_vol float64 \n",
" 15 sell_sm_vol float64 \n",
" 16 buy_lg_vol float64 \n",
" 17 sell_lg_vol float64 \n",
" 18 buy_elg_vol float64 \n",
" 19 sell_elg_vol float64 \n",
" 20 net_mf_vol float64 \n",
" 21 up float64 \n",
" 22 down float64 \n",
" 23 atr_14 float64 \n",
" 24 atr_6 float64 \n",
" 25 obv float64 \n",
" 26 maobv_6 float64 \n",
" 27 obv-maobv_6 float64 \n",
" 28 rsi_3 float64 \n",
" 29 rsi_6 float64 \n",
" 30 rsi_9 float64 \n",
" 31 return_10 float64 \n",
" 32 return_20 float64 \n",
" 33 avg_close_5 float64 \n",
" 34 std_return_5 float64 \n",
" 35 std_return_15 float64 \n",
" 36 std_return_25 float64 \n",
" 37 std_return_90 float64 \n",
" 38 std_return_90_2 float64 \n",
" 39 std_return_5 / std_return_90 float64 \n",
" 40 std_return_5 / std_return_25 float64 \n",
" 41 std_return_90 - std_return_90_2 float64 \n",
" 42 ema_5 float64 \n",
" 43 ema_13 float64 \n",
" 44 ema_20 float64 \n",
" 45 ema_60 float64 \n",
" 46 act_factor1 float64 \n",
" 47 act_factor2 float64 \n",
" 48 act_factor3 float64 \n",
" 49 act_factor4 float64 \n",
" 50 act_factor5 float64 \n",
" 51 act_factor6 float64 \n",
" 52 rank_act_factor1 float64 \n",
" 53 rank_act_factor2 float64 \n",
" 54 rank_act_factor3 float64 \n",
" 55 active_buy_volume_large float64 \n",
" 56 active_buy_volume_big float64 \n",
" 57 active_buy_volume_small float64 \n",
" 58 buy_lg_vol_minus_sell_lg_vol float64 \n",
" 59 buy_elg_vol_minus_sell_elg_vol float64 \n",
" 60 log(circ_mv) float64 \n",
" 61 alpha_022 float64 \n",
" 62 alpha_003 float64 \n",
" 63 alpha_007 float64 \n",
" 64 alpha_013 float64 \n",
"dtypes: bool(1), datetime64[ns](1), float64(62), object(1)\n",
"memory usage: 4.0+ GB\n",
"None\n"
]
}
],
"execution_count": 36
},
{
"cell_type": "code",
"id": "dbe2fd8021b9417f",
"metadata": {
"jupyter": {
"source_hidden": true
},
"scrolled": true,
"ExecuteTime": {
"end_time": "2025-02-14T17:36:52.088380Z",
"start_time": "2025-02-14T17:36:10.512236Z"
}
},
"source": [
"def filter_data(df):\n",
" # df = df.groupby('trade_date').apply(lambda x: x.nlargest(1000, 'act_factor1'))\n",
" df = df[~df['is_st']]\n",
" df = df[~df['ts_code'].str.endswith('BJ')]\n",
" df = df[~df['ts_code'].str.startswith('30')]\n",
" df = df[~df['ts_code'].str.startswith('68')]\n",
" df = df[~df['ts_code'].str.startswith('8')]\n",
" df = df.reset_index(drop=True)\n",
" return df\n",
"\n",
"\n",
"df = filter_data(df)\n",
"print(df.info())"
],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 5453316 entries, 0 to 5453315\n",
"Data columns (total 65 columns):\n",
" # Column Dtype \n",
"--- ------ ----- \n",
" 0 ts_code object \n",
" 1 trade_date datetime64[ns]\n",
" 2 open float64 \n",
" 3 close float64 \n",
" 4 high float64 \n",
" 5 low float64 \n",
" 6 vol float64 \n",
" 7 turnover_rate float64 \n",
" 8 pe_ttm float64 \n",
" 9 circ_mv float64 \n",
" 10 volume_ratio float64 \n",
" 11 is_st bool \n",
" 12 up_limit float64 \n",
" 13 down_limit float64 \n",
" 14 buy_sm_vol float64 \n",
" 15 sell_sm_vol float64 \n",
" 16 buy_lg_vol float64 \n",
" 17 sell_lg_vol float64 \n",
" 18 buy_elg_vol float64 \n",
" 19 sell_elg_vol float64 \n",
" 20 net_mf_vol float64 \n",
" 21 up float64 \n",
" 22 down float64 \n",
" 23 atr_14 float64 \n",
" 24 atr_6 float64 \n",
" 25 obv float64 \n",
" 26 maobv_6 float64 \n",
" 27 obv-maobv_6 float64 \n",
" 28 rsi_3 float64 \n",
" 29 rsi_6 float64 \n",
" 30 rsi_9 float64 \n",
" 31 return_10 float64 \n",
" 32 return_20 float64 \n",
" 33 avg_close_5 float64 \n",
" 34 std_return_5 float64 \n",
" 35 std_return_15 float64 \n",
" 36 std_return_25 float64 \n",
" 37 std_return_90 float64 \n",
" 38 std_return_90_2 float64 \n",
" 39 std_return_5 / std_return_90 float64 \n",
" 40 std_return_5 / std_return_25 float64 \n",
" 41 std_return_90 - std_return_90_2 float64 \n",
" 42 ema_5 float64 \n",
" 43 ema_13 float64 \n",
" 44 ema_20 float64 \n",
" 45 ema_60 float64 \n",
" 46 act_factor1 float64 \n",
" 47 act_factor2 float64 \n",
" 48 act_factor3 float64 \n",
" 49 act_factor4 float64 \n",
" 50 act_factor5 float64 \n",
" 51 act_factor6 float64 \n",
" 52 rank_act_factor1 float64 \n",
" 53 rank_act_factor2 float64 \n",
" 54 rank_act_factor3 float64 \n",
" 55 active_buy_volume_large float64 \n",
" 56 active_buy_volume_big float64 \n",
" 57 active_buy_volume_small float64 \n",
" 58 buy_lg_vol_minus_sell_lg_vol float64 \n",
" 59 buy_elg_vol_minus_sell_elg_vol float64 \n",
" 60 log(circ_mv) float64 \n",
" 61 alpha_022 float64 \n",
" 62 alpha_003 float64 \n",
" 63 alpha_007 float64 \n",
" 64 alpha_013 float64 \n",
"dtypes: bool(1), datetime64[ns](1), float64(62), object(1)\n",
"memory usage: 2.6+ GB\n",
"None\n"
]
}
],
"execution_count": 37
},
{
"cell_type": "code",
"id": "5f3d9aece75318cd",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-14T17:37:16.249760Z",
"start_time": "2025-02-14T17:36:52.387540Z"
}
},
"source": [
"train_data = df[df['trade_date'] <= '2023-01-01']\n",
"test_data = df[df['trade_date'] >= '2023-01-01']\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",
"feature_columns = [col for col in df.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",
"\n",
"# for column in [column for column in train_data.columns if 'future' in column]:\n",
"# label_index = neutralize_labels(train_data[column], train_data, feature_columns, z_threshold=3, method='regression')\n",
"# train_data = train_data[label_index]\n",
"# label_index = neutralize_labels(test_data[column], test_data, feature_columns, z_threshold=3, method='regression')\n",
"# test_data = test_data[label_index]\n",
"\n",
"df = df[['ts_code', 'trade_date', 'open', 'close']]\n",
"print(feature_columns)\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')}\")"
],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['turnover_rate', 'pe_ttm', 'volume_ratio', 'up', 'down', 'atr_14', 'atr_6', 'obv', 'maobv_6', 'obv-maobv_6', 'rsi_3', 'rsi_6', 'rsi_9', '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', 'ema_5', 'ema_13', 'ema_20', 'ema_60', 'act_factor1', 'act_factor2', 'act_factor3', 'act_factor4', 'act_factor5', 'act_factor6', 'rank_act_factor1', 'rank_act_factor2', 'rank_act_factor3', 'active_buy_volume_large', 'active_buy_volume_big', 'active_buy_volume_small', 'buy_lg_vol_minus_sell_lg_vol', 'buy_elg_vol_minus_sell_elg_vol', 'log(circ_mv)', 'alpha_022', 'alpha_003', 'alpha_007', 'alpha_013']\n",
"最小日期: 2017-01-03\n",
"最大日期: 2022-12-30\n",
"507000\n",
"最小日期: 2023-01-03\n",
"最大日期: 2025-02-12\n"
]
}
],
"execution_count": 38
},
{
"cell_type": "code",
"id": "f4f16d63ad18d1bc",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-14T19:01:09.964760Z",
"start_time": "2025-02-14T19:01:05.892897Z"
}
},
"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['past_close'] = df.groupby('ts_code')['close'].shift(days)\n",
" df['future_return'] = (df['future_close'] - df['past_close']) / df['past_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",
"\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",
"\n",
"\n",
"def get_label(df):\n",
" # labels = df['future_af13'] - df['act_factor1']\n",
" # labels = df['future_close5']\n",
" # labels = df['future_af11']\n",
" # labels = df['ema_5'].shift(-1) - df['close']\n",
" # labels = df['future_af15']\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",
"train_data, test_data = train_data.replace([np.inf, -np.inf], np.nan), test_data.replace([np.inf, -np.inf], np.nan)\n",
"# train_data = train_data.dropna(subset=feature_columns)\n",
"train_data = train_data.dropna(subset=feature_columns)\n",
"\n",
"train_data['label'] = get_label(train_data)\n",
"# test_data['label'] = get_label(test_data)\n",
"\n",
"# train_data = train_data.dropna(subset=['label'])\n",
"# test_data = test_data.dropna(subset=['label'])\n",
"# train_data = train_data.replace([np.inf, -np.inf], np.nan).dropna()\n",
"# test_data = test_data.replace([np.inf, -np.inf], np.nan).dropna()\n",
"\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)\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')}\")\n"
],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1067937\n",
"最小日期: 2017-06-20\n",
"最大日期: 2022-11-29\n",
"403686\n",
"最小日期: 2023-01-03\n",
"最大日期: 2025-02-12\n"
]
}
],
"execution_count": 92
},
{
"cell_type": "code",
"id": "8f134d435f71e9e2",
"metadata": {
"jupyter": {
"source_hidden": true
},
"ExecuteTime": {
"end_time": "2025-02-14T19:01:10.101871Z",
"start_time": "2025-02-14T19:01:10.011761Z"
}
},
"source": [
"import lightgbm as lgb\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import optuna\n",
"from sklearn.model_selection import KFold\n",
"from sklearn.metrics import mean_absolute_error\n",
"import os\n",
"import json\n",
"import pickle\n",
"import hashlib\n",
"\n",
"\n",
"def objective(trial, X, y, num_boost_round, params):\n",
" # 参数网格\n",
" X, y = X.reset_index(drop=True), y.reset_index(drop=True)\n",
" param_grid = {\n",
" \"n_estimators\": trial.suggest_categorical(\"n_estimators\", [10000]),\n",
" \"learning_rate\": trial.suggest_float(\"learning_rate\", 0.01, 0.3),\n",
" \"num_leaves\": trial.suggest_int(\"num_leaves\", 20, 3000, step=25),\n",
" \"max_depth\": trial.suggest_int(\"max_depth\", 3, 16),\n",
" \"min_data_in_leaf\": trial.suggest_int(\"min_data_in_leaf\", 200, 10000, step=100),\n",
" \"lambda_l1\": trial.suggest_int(\"lambda_l1\", 0, 100, step=5),\n",
" \"lambda_l2\": trial.suggest_int(\"lambda_l2\", 0, 100, step=5),\n",
" \"min_gain_to_split\": trial.suggest_float(\"min_gain_to_split\", 0, 15),\n",
" \"bagging_fraction\": trial.suggest_float(\"bagging_fraction\", 0.2, 0.95, step=0.1),\n",
" \"bagging_freq\": trial.suggest_categorical(\"bagging_freq\", [1]),\n",
" \"feature_fraction\": trial.suggest_float(\"feature_fraction\", 0.2, 0.95, step=0.1),\n",
" \"random_state\": 1,\n",
" \"objective\": 'regression',\n",
" 'verbosity': -1\n",
" }\n",
" # 5折交叉验证\n",
" cv = KFold(n_splits=5, shuffle=False)\n",
"\n",
" cv_scores = np.empty(5)\n",
" for idx, (train_idx, test_idx) in enumerate(cv.split(X, y)):\n",
" X_train, X_test = X.iloc[train_idx], X.iloc[test_idx]\n",
" y_train, y_test = y[train_idx], y[test_idx]\n",
"\n",
" # LGBM建模\n",
" model = lgb.LGBMRegressor(**param_grid, num_boost_round=num_boost_round)\n",
" model.fit(\n",
" X_train,\n",
" y_train,\n",
" eval_set=[(X_test, y_test)],\n",
" eval_metric=\"l2\",\n",
" callbacks=[\n",
" # LightGBMPruningCallback(trial, \"l2\"),\n",
" lgb.early_stopping(50, first_metric_only=True),\n",
" lgb.log_evaluation(period=-1)\n",
" ],\n",
" )\n",
" # 模型预测\n",
" preds = model.predict(X_test)\n",
" # 优化指标logloss最小\n",
" cv_scores[idx] = mean_absolute_error(y_test, preds)\n",
"\n",
" return np.mean(cv_scores)\n",
"\n",
"def generate_key(params, feature_columns, num_boost_round):\n",
" key_data = {\n",
" \"params\": params,\n",
" \"feature_columns\": feature_columns,\n",
" \"num_boost_round\": num_boost_round\n",
" }\n",
" # 转换成排序后的 JSON 字符串,再生成 md5 hash\n",
" key_str = json.dumps(key_data, sort_keys=True)\n",
" return hashlib.md5(key_str.encode('utf-8')).hexdigest()\n",
"\n",
"def train_light_model(df, params, feature_columns, callbacks, evals,\n",
" print_feature_importance=True, num_boost_round=100,\n",
" use_optuna=False):\n",
"\n",
" df_sorted = df.sort_values(by=['trade_date', 'label'], ascending=[True, False]) # 按日期升序、标签降序排序\n",
" df_sorted = df_sorted.sort_values(by='trade_date')\n",
" unique_dates = df_sorted['trade_date'].unique()\n",
" val_date_count = int(len(unique_dates) * 0.1)\n",
" val_dates = unique_dates[-val_date_count:]\n",
" val_indices = df_sorted[df_sorted['trade_date'].isin(val_dates)].index\n",
" train_indices = df_sorted[~df_sorted['trade_date'].isin(val_dates)].index\n",
"\n",
" # 获取训练集和验证集的样本\n",
" train_df = df_sorted.iloc[train_indices]\n",
" val_df = df_sorted.iloc[val_indices]\n",
"\n",
" X_train = train_df[feature_columns]\n",
" y_train = train_df['label']\n",
"\n",
" X_val = val_df[feature_columns]\n",
" y_val = val_df['label']\n",
"\n",
" train_data = lgb.Dataset(X_train, label=y_train)\n",
" val_data = lgb.Dataset(X_val, label=y_val)\n",
" if use_optuna:\n",
" # study = optuna.create_study(direction='minimize' if classify else 'maximize')\n",
" study = optuna.create_study(direction='minimize')\n",
" study.optimize(lambda trial: objective(trial, X_train, y_train, num_boost_round, params), n_trials=20)\n",
"\n",
" print(f\"Best parameters: {study.best_trial.params}\")\n",
" print(f\"Best score: {study.best_trial.value}\")\n",
"\n",
" params.update(study.best_trial.params)\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",
" # 打印特征重要性(如果需要)\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",
" # with open(cache_file, 'wb') as f:\n",
" # pickle.dump({'key': cache_key,\n",
" # 'model': model,\n",
" # 'feature_columns': feature_columns}, f)\n",
" # print(\"模型训练完成并已保存缓存。\")\n",
" return model\n",
"\n",
"\n",
"from catboost import CatBoostRegressor\n",
"import pandas as pd\n",
"\n",
"\n",
"def train_catboost(df, feature_columns, params=None):\n",
" \"\"\"\n",
" 训练 CatBoost 排序模型\n",
" - df: 包含因子、date、instrument 和 label 的 DataFrame\n",
" - num_boost_round: 训练的轮数\n",
" - print_feature_importance: 是否打印特征重要性\n",
" - plot: 是否绘制特征重要性图\n",
" - split_date: 用于划分训练集和验证集的日期(比如 '2020-01-01'\n",
"\n",
" 返回训练好的模型\n",
" \"\"\"\n",
" df_sorted = df.sort_values(by=['trade_date', 'label'], ascending=[True, False])\n",
"\n",
" df_sorted = df_sorted.sort_values(by='trade_date')\n",
" unique_dates = df_sorted['trade_date'].unique()\n",
" val_date_count = int(len(unique_dates) * 0.1)\n",
" val_dates = unique_dates[-val_date_count:]\n",
" val_indices = df_sorted[df_sorted['trade_date'].isin(val_dates)].index\n",
" train_indices = df_sorted[~df_sorted['trade_date'].isin(val_dates)].index\n",
"\n",
" # 获取训练集和验证集的样本\n",
" train_df = df_sorted.iloc[train_indices].sort_values(by=['trade_date', 'label'], ascending=[True, False])\n",
" val_df = df_sorted.iloc[val_indices].sort_values(by=['trade_date', 'label'], ascending=[True, False])\n",
"\n",
" X_train = train_df[feature_columns]\n",
" y_train = train_df['label']\n",
"\n",
" X_val = val_df[feature_columns]\n",
" y_val = val_df['label']\n",
"\n",
" model = CatBoostRegressor(**params)\n",
" model.fit(X_train,\n",
" y_train,\n",
" eval_set=(X_val, y_val))\n",
"\n",
" return model"
],
"outputs": [],
"execution_count": 93
},
{
"cell_type": "code",
"id": "4a4542e1ed6afe7d",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-14T19:02:42.420508Z",
"start_time": "2025-02-14T19:02:42.341401Z"
}
},
"source": [
"def max_drawdown_loss(y_true, y_pred):\n",
" # y_true和y_pred表示资产的实际和预测回报序列\n",
" cumulative_return = np.cumsum(y_pred) # 计算累积回报\n",
" peak = np.maximum.accumulate(cumulative_return)\n",
" drawdown = (cumulative_return - peak) / peak # 计算回撤\n",
" max_drawdown = np.min(drawdown) # 最大回撤\n",
"\n",
" loss = -max_drawdown # 最大回撤越大,损失越小,取负数使得回撤最小化\n",
" return loss, np.zeros_like(loss) # 返回损失和零梯度\n",
"\n",
"\n",
"\n",
"light_params = {\n",
" # 'objective': 'regression',\n",
" # 'metric': 'l2',\n",
" 'objective': 'quantile', # 分位回归\n",
" 'metric': 'quantile', # 使用 quantile 作为评估指标\n",
" 'alpha': 0.75, # 90% 分位数\n",
" 'learning_rate': 0.05,\n",
" 'is_unbalance': True,\n",
" 'num_leaves': 64,\n",
" 'min_data_in_leaf': 128,\n",
" 'max_depth': 6,\n",
" 'max_bin': 1024,\n",
" 'feature_fraction': 0.7,\n",
" 'bagging_fraction': 0.7,\n",
" 'bagging_freq': 5,\n",
" 'lambda_l1': 1,\n",
" 'lambda_l2': 1,\n",
" # 'boosting_type': 'dart',\n",
" 'verbosity': -1\n",
"}"
],
"outputs": [],
"execution_count": 96
},
{
"cell_type": "code",
"id": "beeb098799ecfa6a",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-14T19:05:21.315576Z",
"start_time": "2025-02-14T19:02:42.469389Z"
}
},
"source": [
"print('train data size: ', len(train_data))\n",
"\n",
"evals = {}\n",
"light_model = train_light_model(train_data, light_params, feature_columns,\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=10000, use_optuna=False,\n",
" print_feature_importance=True)"
],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"train data size: 1067937\n",
"Training until validation scores don't improve for 50 rounds\n",
"[500]\ttrain's quantile: 0.766393\tvalid's quantile: 0.783404\n",
"[1000]\ttrain's quantile: 0.749886\tvalid's quantile: 0.775331\n",
"[1500]\ttrain's quantile: 0.739319\tvalid's quantile: 0.771256\n",
"[2000]\ttrain's quantile: 0.731186\tvalid's quantile: 0.768522\n",
"[2500]\ttrain's quantile: 0.724016\tvalid's quantile: 0.766611\n",
"[3000]\ttrain's quantile: 0.717949\tvalid's quantile: 0.765331\n",
"[3500]\ttrain's quantile: 0.712718\tvalid's quantile: 0.76426\n",
"[4000]\ttrain's quantile: 0.708171\tvalid's quantile: 0.763329\n",
"[4500]\ttrain's quantile: 0.703619\tvalid's quantile: 0.762479\n",
"[5000]\ttrain's quantile: 0.699455\tvalid's quantile: 0.761843\n",
"[5500]\ttrain's quantile: 0.695762\tvalid's quantile: 0.761218\n",
"[6000]\ttrain's quantile: 0.692351\tvalid's quantile: 0.760606\n",
"[6500]\ttrain's quantile: 0.689176\tvalid's quantile: 0.760173\n",
"[7000]\ttrain's quantile: 0.686318\tvalid's quantile: 0.759704\n",
"Early stopping, best iteration is:\n",
"[7090]\ttrain's quantile: 0.685745\tvalid's quantile: 0.759607\n",
"Evaluated only: quantile\n"
]
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "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tUwul9dq2+ZQFyJ7Y0AiauamT5+ON954A59++inefffdKtv5+PjA29sbv//+u831dbktQG3uq+Pr6wvAOFG3rry9vZGWlma13NYyhUJhNTkYMAY+Hx8fq+X1vSdQVby9vXHkyBGr5bb6Wh+2+rtr1y6kpqZiz549plEjAMjNzW2Q72wIjV0XInvjKTaiZq5169Z46aWXMHbsWDz++ONVthszZgyysrKg1+vRp08fq1enTp1MbWs7klCdjh07mk7/2Qow1Rk2bBjOnDmDkydPmi3/5ptvrNqGhobi77//Nlt24cIFnD9/vu6drochQ4YgPz8fv/32m9nyjRs31mp7uVwOAHWqd0Voqti2wmeffVbrfTS2260LUXPHESSiO8CSJUtqbPOPf/wDGzZswOjRozF37lz069cPUqkU169fx+7duzFu3DiMHz8eABAREYGNGzdi06ZNaNu2LRQKBSIiIurcr08++QRjx47FgAED8Pzzz6NNmzZISUnB9u3bsWHDhiq3mzdvHtauXYv7778fixYtgp+fHzZs2IBz585ZtZ06dSoee+wxzJkzBw8//DCuXr2K999/3zSC1dgef/xxLF++HI899hgWLVqE9u3b47fffsP27dsBAGJx9f+fGR4eDgD4/PPP4ebmBoVCgbCwMJunwCpER0fD09MTs2fPxptvvgmpVIoNGzZYBUp7ut26EDV3/A0maiEkEgl++ukn/Oc//8GWLVswfvx4PPjgg1iyZIlVAFq4cCGGDBmCJ598Ev369av1peOWRo4cib179yIgIADPPfcc7rvvPrz99ts1zkPx9/dHfHw8unbtin/961947LHHoFAo8PHHH1u1nTx5Mt5//31s374dY8aMwerVq7F69Wp07NixXn2uKxcXF+zatQtDhw7Fyy+/jIcffhgpKSlYtWoVAMDDw6Pa7cPCwhATE4OTJ09i6NCh6Nu3L37++edqt/H29savv/4KpVKJxx57DE888QRcXV2xadOmhjqs23a7dSFq7kSCIAj27gQR0Z3mvffew2uvvYaUlJR6TVRvqVgXail4io2IqAYVI1udO3eGTqfDrl27sHLlSjz22GMOHQJYF2rJGJCIiGqgVCqxfPlyJCcnQ6vVok2bNvj3v/+N1157zd5dsyvWhVoynmIjIiIissBJ2kREREQWGJCIiIiILDAgEREREVngJG0b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ycnBsmXLcPr0aXz99demfc6dOxeDBw/G0qVLMW7cOPz444/YuXMn9u/fX+f+iQUGJCIiIkdk14A0adIkZGVl4e2334ZarUZ4eDi2bduGkJAQAIBarTa7J5Jer8eHH36I8+fPQyqVYtiwYThw4ABCQ0NNbaKjo7Fx40a89tpreP3119GuXTts2rQJ/fv3r3P/eB8kIiIix2T3Sdpz5szBnDlzbK6LjY01+9ylSxecOHGixn1OmDABEyZMuO2+iXmKjYiIyCHZ/VEjzZmYI0hEREQOiQGpGmLeSZuIiMghMSBVgyNIREREjokBqRqcg0REROSYGJCqIeEpNiIiIofEgFQN3iiSiIjIMTEgVYMjSERERI6JAakavIqNiIjIMTEgVYMBiYiIyDExIFVDwjlIREREDokBqRpiCPbuAhEREdkBA1I1pBxBIiIickgMSDUxcB4SERGRo2FAqonAUSQiIiJHw4BUE0OZvXtARERETYwBqQYCAxIREZHDYUCqgUHPgERERORoGJBqoC/jHCQiIiJHw4BUA32Zzt5dICIioibGgFQDA+cgERERORwGpBrwFBsREZHjYUCqgUHPU2xERESOhgGpBnpexUZERORwGJBqwMv8iYiIHA8DUg04SZuIiMjxMCDVwMBJ2kRERA6HAakGnKRNRETkeBiQasA5SERERI6HAakGBj1PsRERETkaBqQaCPpSe3eBiIiImhgDUg0MZQxIREREjoYBqQYCJ2kTERE5HAakGghlWnt3gYiIiJoYA1IN9GUcQSIiInI0DEg1EDgHiYiIyOEwINWAk7SJiIgcDwNSDThJm4iIyPHYPSCtWrUKYWFhUCgU6N27N/bt21dt+w0bNqB79+5QKpUICAjAjBkzkJWVZVofGxsLkUhk9SopKalX/wycpE1ERORw7BqQNm3ahHnz5uHVV1/FiRMnMGjQIIwaNQopKSk22+/fvx/Tpk3DzJkzcebMGXz33Xc4evQoZs2aZdbO3d0darXa7KVQKOrVR44gEREROR67BqRly5Zh5syZmDVrFrp06YKYmBgEBwdj9erVNtsfOnQIoaGheO655xAWFoa77roLTz31FP766y+zdiKRCP7+/mav+hJ4FRsREZHDsVtAKi0txbFjxzBixAiz5SNGjMCBAwdsbhMdHY3r169j27ZtEAQB6enp+P7773H//febtSso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"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "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"
},
"metadata": {},
"output_type": "display_data"
}
],
"execution_count": 97
},
{
"cell_type": "code",
"id": "63235069-dc59-48fb-961a-e80373e41a61",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-14T19:05:21.442954Z",
"start_time": "2025-02-14T19:05:21.364837Z"
}
},
"source": [
"print('train data size: ', len(train_data))\n",
"\n",
"catboost_params = {\n",
" 'loss_function': 'MAE', # 90% 分位回归\n",
" 'iterations': 5000, # 训练轮数\n",
" 'learning_rate': 0.05, # 学习率,较低以防止过拟合\n",
" 'depth': 16, # 树的深度,防止过拟合\n",
" 'l2_leaf_reg': 10.0, # L2 正则化,提高泛化能力\n",
" 'bagging_temperature': 1, # 降低过拟合\n",
" # 'subsample': 0.8, # 每轮随机 80% 的样本,减少过拟合\n",
" 'colsample_bylevel': 0.8, # 每层 80% 特征子集,防止过拟合\n",
" 'random_seed': 42, # 固定随机种子,保证可复现\n",
" 'verbose': 500, # 每 100 轮打印一次信息\n",
" 'early_stopping_rounds': 100, # 早停,防止过拟合\n",
" # 'task_type': 'GPU'\n",
"}\n",
"\n",
"# catboost_model = train_catboost(train_data, feature_columns, catboost_params)"
],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"train data size: 1067937\n"
]
}
],
"execution_count": 98
},
{
"cell_type": "code",
"id": "5bb96ca8492e74d",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-14T19:05:44.296879Z",
"start_time": "2025-02-14T19:05:21.450842Z"
}
},
"source": [
"score_df = test_data\n",
"score_df['score'] = light_model.predict(score_df[feature_columns])\n",
"# train_data['score'] = catboost_model.predict(train_data[feature_columns])\n",
"predictions_test = score_df.loc[score_df.groupby('trade_date')['score'].idxmax()]\n",
"predictions_test = predictions_test[predictions_test['score'] > 0]\n",
"predictions_test[['trade_date', 'score', 'ts_code']].to_csv('predictions_test.tsv', index=False)"
],
"outputs": [],
"execution_count": 99
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-14T19:06:45.153554Z",
"start_time": "2025-02-14T19:05:44.329062Z"
}
},
"cell_type": "code",
"source": [
"score_df = train_data\n",
"score_df['score'] = light_model.predict(score_df[feature_columns])\n",
"# train_data['score'] = catboost_model.predict(train_data[feature_columns])\n",
"predictions_test = score_df.loc[score_df.groupby('trade_date')['score'].idxmax()]\n",
"predictions_test = predictions_test[predictions_test['score'] > 0]\n",
"predictions_test[['trade_date', 'score', 'ts_code']].to_csv('predictions_train.tsv', index=False)"
],
"id": "7359f89064a124d2",
"outputs": [],
"execution_count": 100
},
{
"cell_type": "code",
"id": "b427ce41-9739-4e9e-bea8-5f2551fec5d7",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-14T19:06:45.232334Z",
"start_time": "2025-02-14T19:06:45.218159Z"
}
},
"source": [],
"outputs": [],
"execution_count": null
}
],
"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
}