❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
- 架构:基于多层感知器(MLP),通过指标、时间和股票混合处理股票数据。
- 功能:捕捉股票指标、时间和股票间的复杂相关性,预测下一个交易日的收盘价。
- 应用:适用于量化投资、风险管理、算法交易和投资组合优化等场景。
正文(附运行示例)
StockMixer 是什么
StockMixer 是上海交通大学推出的用于股票价格预测的多层感知器(MLP)架构,具备简单且强大的预测能力。该架构通过指标混合、时间混合和股票混合三个步骤处理和预测股票数据,有效捕捉股票指标、时间和股票间的复杂相关性。
时间混合利用多尺度时间片段信息,股票混合基于市场状态影响个股,从而实现更准确的预测。StockMixer 在减少内存使用和计算成本的同时,在多个股票市场基准测试中表现优异,超越多种先进的预测方法。
StockMixer 的主要功能
- 指标混合:通过矩阵乘法和激活函数模拟每只股票-时间对内部指标之间的相互作用,提取对未来股票趋势有信息量的高级别潜在特征。
- 时间混合:基于多尺度时间片段的信息交换来捕捉股票价格运动中的时间趋势和模式,支持模型从不同时间尺度提取特征。
- 股票混合:学习从整个市场到个股再回到整个市场的股票状态,模拟股票之间的复杂相关性,更稳健地建模股票相关性。
- 预测股票价格:结合上述混合得到的特征表示,预测下一个交易日的收盘价。
StockMixer 的技术原理
- 多层感知器(MLP)架构:基于 MLP,通过线性计算复杂度和简单的架构处理股票数据。
- 信息交换:基于 MLP 结构在不同维度(指标、时间和股票)之间交换信息,增强模型的表现力。
- 残差连接和层归一化:用残差连接保持输入和混合特征之间的平衡,层归一化减少数据偏移的影响。
- 多尺度时间片段:将时间序列分割成不同大小的片段,捕获不同时间尺度上的特征。
- 股票到市场和市场到股票的影响:基于两个 MLP 结构学习潜在的股票状态,用这些状态影响个股,模拟股票之间的相关性。
- 损失函数设计:结合点回归和成对排名感知损失,优化模型用最小化预测和实际回报率之间的均方误差,保持高预期回报股票的相对顺序。
如何运行 StockMixer
1. 环境配置
确保已安装以下依赖:
- Python 3.7
- torch~=1.10.1
- numpy~=1.21.5
- PyYAML, pandas, tqdm, matplotlib
2. 数据集准备
原始数据集(NASDAQ、NYSE 和 S&P500)可从以下链接获取:
- NASDAQ/NYSE: https://github.com/fulifeng/Temporal_Relational_Stock_Ranking
- S&P500: https://github.com/thanhtrunghuynh93/estimate
3. 运行代码
编辑 train.py
中的配置,然后运行以下命令:
python src/train.py
资源
- GitHub 仓库:https://github.com/SJTU-DMTai/StockMixer
- 技术论文:https://ojs.aaai.org/index.php/AAAI/article/view/28681
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦