大规模多变量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

相关推荐
“AI国潮设计-小江”1 小时前
《Python实战 | SDXL大模型批量生成“英歌舞海浪”蛋糕IP,附核心Prompt控制代码与IP授权变现思路》
人工智能·python·prompt·aigc
虹科网络安全1 小时前
使用艾体宝 IOTA 10 CORE+ 监控企业网络中的 AI 流量
网络·人工智能
朝阳资本论1 小时前
群核科技:从空间设计龙头到物理AI“卖水人”的升维之战
人工智能
七夜zippoe1 小时前
为什么 2026 年每个 Java 团队都该懂 AI Agent
java·开发语言·人工智能
举个栗子。1 小时前
SwarmForge:AI 智能体协同编程框架,让多个 Agent 在隔离工作区并行协作
人工智能·开源·ai编程
AIGC小尼1 小时前
Windows 本地 AI 漫剧全自动生产线部署完整教程(零基础、全指令、带源码、模型配置、排错方案)
人工智能·windows·ai漫剧
合米AI SOP系统1 小时前
传统产线如何快速上马落地 AI 防错?合米科技 AI SOP 7天即可上线。
大数据·人工智能·科技
思录Echo1 小时前
什么决定具身智能的最终走向?多技术路线与落地现实辨析
大数据·人工智能
ShallWeL2 小时前
Orin 上多模型常驻与显存预算
人工智能·嵌入式硬件·nvidia·orin
deepdata_cn2 小时前
元学习、迁移学习、小样本学习的区别
深度学习·迁移学习