大规模多变量AutoML调参实验报告

实验日期 : 2025-12-31
实验时长: 05:23 - 07:49 (约2.5小时)


1. 实验背景与目标

1.1 研究背景

传统的股票预测模型通常仅使用收盘价单一特征,忽略了金融市场中丰富的多维信息。本实验旨在构建一个综合性的多变量特征工程系统,结合大规模超参数搜索,寻找最优的预测模型配置。

1.2 实验目标

  1. 设计并实现50+维度的多变量特征工程系统
  2. 使用Optuna贝叶斯优化进行大规模超参数搜索
  3. 评估不同模型(LSTM、MLP)在不同波动率股票上的表现
  4. 识别最优参数组合,提升策略收益和风险调整后收益

2. 实验设计

2.1 数据集

股票代码 股票名称 数据量 年化波动率 训练集 测试集 特征维度
601288.SH 农业银行 3,753天 20.5% (低) 3,377天 376天 50+
300750.SZ 宁德时代 1,836天 49.5% (高) 1,652天 184天 50+
000063.SZ 中兴通讯 4,751天 47.0% (高) 4,275天 476天 50+

数据时间范围 : 近20年历史数据
训练/测试分割: 90%/10%

2.2 多变量特征工程

共构建 50+ 个特征,分为8大类:

2.2.1 价格特征 (8个)
  • price_position: 收盘价在日内振幅中的位置
  • high_low_ratio: 最高价/最低价比率
  • close_open_ratio: 收盘价/开盘价比率
  • body_size: K线实体大小
  • upper_shadow: 上影线比例
  • lower_shadow: 下影线比例
  • high_close_diff: (最高-收盘)/收盘
  • close_low_diff: (收盘-最低)/收盘
2.2.2 收益率特征 (14个)
  • return_Nd: N日简单收益率 (N=1,2,3,5,10,20,60)
  • log_return_Nd: N日对数收益率 (N=1,2,3,5,10,20,60)
2.2.3 波动率特征 (13个)
  • volatility_Nd: N日滚动波动率 (N=5,10,20,60)
  • volatility_ratio_Nd: 波动率相对均值比率
  • atr_Nd: N日平均真实波幅
  • atr_ratio_Nd: ATR占价格比例
  • parkinson_vol: Parkinson波动率估计
2.2.4 动量特征 (13个)
  • momentum_Nd: N日动量 (N=5,10,20,60)
  • momentum_pct_Nd: N日动量百分比
  • roc_Nd: N日变化率
  • momentum_accel: 动量加速度
2.2.5 趋势特征 (19个)
  • ma_N: N日移动均线 (N=5,10,20,60,120)
  • ma_ratio_N: 价格/均线比率
  • ma_slope_N: 均线斜率
  • ema_N: N日指数均线 (N=12,26,50)
  • ema_ratio_N: 价格/EMA比率
  • ma_cross_X_Y: 均线交叉信号
  • trend_strength: 综合趋势强度
2.2.6 量价关系 (7个)
  • volume_ma_5/20: 成交量均线
  • volume_ratio: 成交量相对比率
  • volume_price_trend: 量价趋势
  • obv: 能量潮指标
  • obv_ma: OBV均线
  • obv_ratio: OBV比率
  • price_volume_corr: 价量相关性
2.2.7 技术指标 (15+个)
  • RSI: RSI_6, RSI_14, RSI_28, RSI_divergence
  • MACD: MACD, MACD_signal, MACD_hist, MACD_hist_change
  • 布林带: BB_upper, BB_lower, BB_width, BB_pct (20日/50日)
  • KDJ: K_9, D_9, J_9, K_14, D_14, J_14
  • Williams %R: WILLR_14, WILLR_28
  • CCI: CCI_14, CCI_28
  • ADX: ADX, +DI, -DI
2.2.8 统计特征 (6个)
  • skewness_N: N日收益率偏度 (N=20,60)
  • kurtosis_N: N日收益率峰度
  • zscore_N: 价格Z-Score

2.3 模型配置

2.3.1 LSTNet (LSTM变体)
python 复制代码
参数搜索空间:
- in_chunk_len: [10, 80/100/120] (根据波动率动态调整)
- out_chunk_len: [1, 30]
- skip_chunk_len: [0, 30]
- rnn_num_cells: [16, 32, 64, 128, 256]
- batch_size: [8, 16, 32, 64, 128]
- learning_rate: [1e-5, 1e-2] (对数均匀)
- threshold: 根据波动率动态调整
- max_epochs: [30, 250]
- patience: [5, 25]
2.3.2 MLP (多层感知机)
python 复制代码
参数搜索空间:
- in_chunk_len: [5, 80/100/120]
- out_chunk_len: [1, 30]
- hidden_config: 11种网络结构
  - [32,16], [64,32], [128,64], [256,128], [512,256]
  - [64,32,16], [128,64,32], [256,128,64], [512,256,128]
  - [256,128,64,32], [512,256,128,64]
- batch_size: [8, 16, 32, 64, 128, 256]
- learning_rate: [1e-5, 1e-1] (对数均匀)
- dropout: [0, 0.6]
- threshold: 根据波动率动态调整
- max_epochs: [30, 300]
- patience: [5, 30]

2.4 优化策略

  • 采样器: TPE (Tree-structured Parzen Estimator)
  • 剪枝器: Hyperband
  • 试验次数: 每个模型30次
  • 目标函数: 综合评分 = 夏普×35 + 收益×0.3 + (50-回撤)×0.2 + 胜率×0.1 + min(交易次数,20)×0.5

3. 实验结果

3.1 总体结果汇总

排名 股票 模型 收益率 夏普比率 胜率 最大回撤 交易次数 期末资金
1 中兴通讯 MLP 90.0% 1.66 100% 14.5% 5 ¥189,985
2 农业银行 MLP 76.2% 2.65 88.9% 9.8% 9 ¥176,193
3 中兴通讯 LSTM 70.5% 1.70 100% 7.9% 6 ¥170,535
4 农业银行 LSTM 56.8% 2.52 100% 7.2% 4 ¥156,757
5 宁德时代 MLP 48.8% 2.17 100% 14.4% 2 ¥148,832
6 宁德时代 LSTM 20.1% 1.40 100% 14.4% 2 ¥120,127

初始资金: ¥100,000

3.2 统计汇总

指标 数值
成功率 6/6 (100%)
平均收益率 60.4%
平均夏普比率 2.02
平均胜率 98.1%
平均最大回撤 11.4%
平均交易次数 4.7次

3.3 按模型类型分析

模型 平均收益 平均夏普 最佳表现
MLP 71.7% 2.16 中兴通讯 90.0%
LSTM 49.1% 1.87 中兴通讯 70.5%

结论: MLP模型整体表现优于LSTM,平均收益高出22.6个百分点。

3.4 按波动率分析

波动率分类 股票 最佳模型 最佳收益
低波动 (20.5%) 农业银行 MLP 76.2%
高波动 (47.0%) 中兴通讯 MLP 90.0%
高波动 (49.5%) 宁德时代 MLP 48.8%

结论: MLP在所有波动率环境下均为最优选择。


4. 最优参数分析

4.1 农业银行 (低波动股票)

最佳模型 : MLP
最佳参数:

json 复制代码
{
  "in_chunk_len": 100,      // 较长的历史窗口
  "out_chunk_len": 15,      // 中等预测长度
  "hidden_config": [256, 128, 64],  // 3层递减网络
  "batch_size": 256,        // 大批量
  "learning_rate": 2.42e-05, // 小学习率
  "dropout": 0.6,           // 高dropout防过拟合
  "threshold": 0.35,        // 低阈值(低波动)
  "max_epochs": 260,        // 长训练
  "patience": 5             // 快速早停
}

关键洞察:

  • 低波动股票需要较长的历史窗口(100天)
  • 较低的交易阈值(0.35%)捕捉小波动
  • 高dropout(0.6)防止过拟合

4.2 中兴通讯 (高波动股票 - 最佳表现)

最佳模型 : MLP
最佳参数:

json 复制代码
{
  "in_chunk_len": 45,       // 中等历史窗口
  "out_chunk_len": 13,      // 短预测长度
  "hidden_config": [128, 64, 32],  // 3层递减
  "batch_size": 64,         // 中等批量
  "learning_rate": 0.0306,  // 较高学习率
  "dropout": 0.5,           // 中等dropout
  "threshold": 0.7,         // 较高阈值(高波动)
  "max_epochs": 270,        // 长训练
  "patience": 20            // 耐心早停
}

关键洞察:

  • 高波动股票可用较短窗口(45天)
  • 较高学习率(0.03)快速收敛
  • 较高阈值(0.7%)过滤噪音

4.3 宁德时代 (高波动股票 - 数据较少)

最佳模型 : MLP
最佳参数:

json 复制代码
{
  "in_chunk_len": 5,        // 极短历史窗口
  "out_chunk_len": 25,      // 较长预测
  "hidden_config": [128, 64, 32],
  "batch_size": 64,
  "learning_rate": 0.00713,
  "dropout": 0.45,
  "threshold": 1.55,        // 高阈值
  "max_epochs": 240,
  "patience": 15
}

关键洞察:

  • 数据量少时使用极短窗口(5天)减少过拟合
  • 高阈值(1.55%)仅捕捉大波动

5. 模型对比分析

5.1 LSTM vs MLP 性能对比

指标 LSTM MLP 差异
平均收益 49.1% 71.7% MLP +22.6%
平均夏普 1.87 2.16 MLP +0.29
训练时间 MLP更快
参数复杂度 MLP更简单

5.2 为什么MLP优于LSTM?

  1. 多变量特征已编码时序信息: 50+特征包含多周期动量、趋势等,LSTM的时序建模优势被削弱
  2. MLP更易优化: 梯度流动更顺畅,收敛更快更稳定
  3. 过拟合风险更低: MLP参数量相对可控
  4. 训练效率高: 允许更多超参数试验

6. 风险分析

6.1 回撤分析

股票 模型 最大回撤 风险等级
农业银行 LSTM 7.2%
中兴通讯 LSTM 7.9%
农业银行 MLP 9.8%
宁德时代 MLP/LSTM 14.4% 中高
中兴通讯 MLP 14.5% 中高

6.2 收益/回撤比

股票 模型 收益率 最大回撤 收益/回撤比
农业银行 LSTM 56.8% 7.2% 7.89
农业银行 MLP 76.2% 9.8% 7.78
中兴通讯 LSTM 70.5% 7.9% 8.92
中兴通讯 MLP 90.0% 14.5% 6.21
宁德时代 MLP 48.8% 14.4% 3.39
宁德时代 LSTM 20.1% 14.4% 1.40

结论: LSTM虽然收益较低,但收益/回撤比更优,风险控制更好。


7. 结论与建议

7.1 主要结论

  1. 多变量特征工程有效: 50+特征显著提升模型性能,平均收益达60.4%
  2. MLP优于LSTM: 在多变量特征条件下,MLP表现全面超越LSTM
  3. 参数需因股制宜: 不同波动率股票需要不同的参数配置
  4. 阈值与波动率相关: 低波动用低阈值(0.1-0.4),高波动用高阈值(0.7-1.5)

7.2 最佳实践建议

股票类型 推荐模型 推荐in_chunk 推荐threshold 推荐hidden
低波动银行股 MLP 80-120 0.2-0.5 [256,128,64]
高波动科技股 MLP 30-60 0.7-1.5 [128,64,32]
数据量少 MLP 5-20 1.0-2.0 [128,64,32]

7.3 未来改进方向

  1. 增加样本: 测试更多股票验证结论泛化性
  2. 集成学习: 尝试MLP+LSTM集成
  3. 动态阈值: 根据市场状态动态调整交易阈值
  4. 特征选择: 使用特征重要性分析精简特征
  5. 滑动窗口回测: 实现更真实的在线学习场景

8. 附录

8.1 实验环境

  • 硬件: NVIDIA RTX GPU (Compute Capability 8.9)
  • 框架: PaddleTS 1.x, Optuna 3.x
  • Python: 3.x
  • CUDA: 12.8

8.2 代码位置

  • 主脚本: /root/stock_trading_tool/scripts/large_scale_multivar_automl.py
  • 结果文件: /root/stock_trading_tool/reports/multivar_automl_result.json
  • 日志文件: /root/stock_trading_tool/logs/full_multivar.log

8.3 完整特征列表

点击展开50+特征完整列表

价格特征: price_position, high_low_ratio, close_open_ratio, high_close_diff, close_low_diff, body_size, upper_shadow, lower_shadow

收益率特征: return_1d, return_2d, return_3d, return_5d, return_10d, return_20d, return_60d, log_return_1d, log_return_2d, log_return_3d, log_return_5d, log_return_10d, log_return_20d, log_return_60d

波动率特征: volatility_5d, volatility_10d, volatility_20d, volatility_60d, volatility_ratio_5d, volatility_ratio_10d, volatility_ratio_20d, volatility_ratio_60d, atr_5d, atr_10d, atr_20d, atr_60d, atr_ratio_5d, atr_ratio_10d, atr_ratio_20d, atr_ratio_60d, parkinson_vol

动量特征: momentum_5d, momentum_10d, momentum_20d, momentum_60d, momentum_pct_5d, momentum_pct_10d, momentum_pct_20d, momentum_pct_60d, roc_5d, roc_10d, roc_20d, roc_60d, momentum_accel

趋势特征: ma_5, ma_10, ma_20, ma_60, ma_120, ma_ratio_5, ma_ratio_10, ma_ratio_20, ma_ratio_60, ma_ratio_120, ma_slope_5, ma_slope_10, ma_slope_20, ma_slope_60, ma_slope_120, ema_12, ema_26, ema_50, ema_ratio_12, ema_ratio_26, ema_ratio_50, ma_cross_5_10, ma_cross_10_20, ma_cross_20_60, trend_strength

量价关系: volume_ma_5, volume_ma_20, volume_ratio, volume_price_trend, obv, obv_ma, obv_ratio, price_volume_corr

RSI系列: rsi_6, rsi_14, rsi_28, rsi_divergence

MACD系列: macd, macd_signal, macd_hist, macd_hist_change

布林带: bb_upper_20, bb_lower_20, bb_width_20, bb_pct_20, bb_upper_50, bb_lower_50, bb_width_50, bb_pct_50

KDJ: k_9, d_9, j_9, k_14, d_14, j_14

其他指标: willr_14, willr_28, cci_14, cci_28, adx, plus_di, minus_di

统计特征: skewness_20, skewness_60, kurtosis_20, kurtosis_60, zscore_20, zscore_60


报告时间 : 2025-12-31 07:50
报告版本: v1.0

相关推荐
MoonBit月兔2 小时前
生态影响力持续提升,MoonBit 登 2025 中国技术品牌影响力榜单
大数据·人工智能·ai编程·moonbit
2501_945292172 小时前
AI证书的十字路口:政策变动后,国际通行证正在贬值吗?
人工智能
夏日白云2 小时前
《PDF解析工程实录》第 12 章|别让模型贴着墙走:为什么加一圈空白,效果反而更好?
图像处理·机器学习·pdf·llm·大语言模型·rag·文档解析
城市直通车3 小时前
聚焦产业落地与生态共建小拼AI携手火山引擎共推AIGC电商智能化升级
人工智能·aigc·火山引擎
傻啦嘿哟3 小时前
深度学习破解复杂验证码:CNN实战指南
人工智能·深度学习·cnn
生信碱移3 小时前
单细胞空转CNV分析工具:比 inferCNV 快10倍?!兼容单细胞与空转的 CNV 分析与聚类,竟然还支持肿瘤的亚克隆树构建!
算法·机器学习·数据挖掘·数据分析·聚类
WHS-_-20223 小时前
Monostatic Sensing With OFDM Under Phase Noise: From Mitigation to Exploitation
5g·机器学习
人工智能培训3 小时前
深度学习—卷积神经网络(4)
人工智能·深度学习·神经网络·机器学习·cnn·dnn
小糖豆巴拉巴拉3 小时前
AI应用(1)-基础概念的理解
人工智能