StockPredictionRNN
StockPredictionRNN 是一个专注于高频交易场景的开源项目,旨在利用长短期记忆(LSTM)递归神经网络预测股票价格波动。它主要解决了在毫秒级高频交易环境中,如何从复杂的限价订单簿历史数据中挖掘规律并精准预判价格走势的难题。
该项目基于纽约证券交易所(NYSE)的 OpenBook 历史数据构建,能够还原任意时刻的市场订单状态,从而为量化策略提供数据支撑。其核心技术亮点在于将深度学习中的 LSTM 架构应用于金融时间序列分析,有效捕捉了传统模型难以识别的长期依赖关系和非线性特征。代码基于 Python 2.7 和 Keras 框架开发,并支持通过 CUDA 和 OpenBlas 进行 GPU 加速,显著提升了训练与推理效率。
StockPredictionRNN 非常适合对量化金融、算法交易感兴趣的研究人员及开发者使用。对于希望深入探索人工智能在商业应用中落地,或需要复现高频交易预测模型的学术团队而言,这是一个极具参考价值的实践案例。需要注意的是,由于项目依赖特定的历史数据格式和较早期的技术栈,使用者需具备一定的编程基础和数据预处理能力。
使用场景
某高频量化交易团队在开发美股做市策略时,急需从纽约证券交易所(NYSE)的海量逐笔订单数据中挖掘短期价格波动规律。
没有 StockPredictionRNN 时
- 分析师只能依赖传统统计模型或简单均线,难以捕捉毫秒级订单簿中复杂的非线性时序特征。
- 面对 NYSE OpenBook 的 TB 级历史数据,缺乏自动化预处理流程,人工清洗和重构限价订单簿耗时数天且易出错。
- 预测模型无法有效利用长短期记忆,导致对突发市场波动的反应滞后,回测胜率长期低于 55%。
- 代码架构分散,缺乏基于 Keras 和 LSTM 的标准化深度学习框架,新策略迭代周期长达数周。
使用 StockPredictionRNN 后
- 利用内置的 LSTM 递归神经网络,成功提取了订单簿深层的时序依赖关系,显著提升了微秒级价格趋势的识别精度。
- 通过集成的
nyse.py脚本自动解析原始数据并重建任意时刻的限价订单簿,将数据准备时间从数天缩短至几小时。 - 模型在高频回测中将预测准确率提升至 62% 以上,并能结合 CUDA 加速实现近实时的交易信号生成。
- 基于成熟的 Python/Keras 架构,团队可快速调整网络参数或接入 MongoDB 存储结果,新策略研发周期压缩至 3 天内。
StockPredictionRNN 通过将前沿的深度学习算法与专业的金融数据工程相结合,为高频交易团队提供了从数据清洗到精准预测的一站式解决方案。
运行环境要求
- Linux
可选(用于加速),需 NVIDIA GPU 支持 CUDA,具体型号和显存未说明,需安装 cuDNN
未说明

快速开始
StockPredictionRNN
基于 LSTM 递归神经网络的高频交易价格预测
在本项目中,我们尝试使用具有长短期记忆功能的循环神经网络来预测高频股票市场的价格。该程序基于 NYSE OpenBook 历史数据实现这一解决方案,从而可以重现任意时间点的限价订单簿。详细内容请参阅我们的论文:project.pdf
本项目为华沙理工大学数学与计算机科学系“商业应用中的计算智能”课程作业
数据
要使用本程序,首先需要获取数据。我们需要来自 NYSE 的文件 openbookultraAA_N20130403_1_of_1。该文件可通过 FTP 从 ftp://ftp.nyxdata.com/Historical%20Data%20Samples/TAQ%20NYSE%20OpenBook/ 下载。解压后将其复制到 src/nyse-rnn 文件夹中。
安装与使用
本程序使用 Python 2.7 编写,并依赖 Keras 库——安装说明。安装时可能还需要安装 Theano、numpy、scipy、pyyaml、HDF5、h5py 和 cuDNN(并非全部都必需)。此外,建议同时安装 OpenBlas。
sudo pip install git+git://github.com/Theano/Theano.git
sudo pip install keras
本项目还使用了 numpy、scipy、matplotlib 和 pymongo,因此建议一并安装:
sudo pip install numpy scipy matplotlib pymongo
运行程序时,首先执行 nyse.py 创建符号数据,然后再运行 main.py(需先创建 symbols 文件夹):
cd StockPredictionRNN
cd src/nyse-rnn
mkdir symbols
python nyse.py
python main.py
若需将数据保存至 MongoDB,需先安装 MongoDB——MongoDB 安装指南。
请仔细查看代码,必要时可取消注释部分代码以启用不同功能。
性能优化
若要使用 CUDA 和 OpenBlas,请创建文件 ~/.theanorc,并填入以下内容:
[global]
floatX = float32
device = gpu1
[blas]
ldflags = −L/usr/local/lib −lopenblas
[nvcc]
fastmath = True
许可证
MIT 许可证 (MIT)
版权所有 © 2016 卡罗尔·季特科夫斯基
根据本许可证,任何人无需付费即可获得本软件及其相关文档文件(以下简称“软件”)的副本,并有权对软件进行处理,包括但不限于使用、复制、修改、合并、发布、分发、再许可和出售软件副本等行为。同时,允许向任何接收方提供本软件,但须遵守以下条件:
上述版权声明及本许可声明应包含在所有软件副本或其重要组成部分中。
本软件按“原样”提供,不提供任何形式的担保,无论是明示还是暗示,包括但不限于适销性、特定用途适用性和非侵权性。在任何情况下,作者或版权所有者均不对因使用本软件而产生的任何索赔、损害或其他责任负责,无论此类责任是基于合同、侵权行为或其他原因产生,亦不承担与本软件或其使用相关的任何其他责任。
常见问题
相似工具推荐
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。
PaddleOCR
PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。
awesome-machine-learning
awesome-machine-learning 是一份精心整理的机器学习资源清单,汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点,这份清单按编程语言(如 Python、C++、Go 等)和应用场景(如计算机视觉、自然语言处理、深度学习等)进行了系统化分类,帮助使用者快速定位高质量项目。 它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库,还是资深工程师对比不同语言的技术选型,都能从中获得极具价值的参考。此外,清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源,构建了从学习到实践的全链路支持体系。 其独特亮点在于严格的维护标准:明确标记已停止维护或长期未更新的项目,确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”,awesome-machine-learning 以开源协作的方式持续更新,旨在降低技术探索门槛,让每一位从业者都能高效地站在巨人的肩膀上创新。
scikit-learn
scikit-learn 是一个基于 Python 构建的开源机器学习库,依托于 SciPy、NumPy 等科学计算生态,旨在让机器学习变得简单高效。它提供了一套统一且简洁的接口,涵盖了从数据预处理、特征工程到模型训练、评估及选择的全流程工具,内置了包括线性回归、支持向量机、随机森林、聚类等在内的丰富经典算法。 对于希望快速验证想法或构建原型的数据科学家、研究人员以及 Python 开发者而言,scikit-learn 是不可或缺的基础设施。它有效解决了机器学习入门门槛高、算法实现复杂以及不同模型间调用方式不统一的痛点,让用户无需重复造轮子,只需几行代码即可调用成熟的算法解决分类、回归、聚类等实际问题。 其核心技术亮点在于高度一致的 API 设计风格,所有估算器(Estimator)均遵循相同的调用逻辑,极大地降低了学习成本并提升了代码的可读性与可维护性。此外,它还提供了强大的模型选择与评估工具,如交叉验证和网格搜索,帮助用户系统地优化模型性能。作为一个由全球志愿者共同维护的成熟项目,scikit-learn 以其稳定性、详尽的文档和活跃的社区支持,成为连接理论学习与工业级应用的最
keras
Keras 是一个专为人类设计的深度学习框架,旨在让构建和训练神经网络变得简单直观。它解决了开发者在不同深度学习后端之间切换困难、模型开发效率低以及难以兼顾调试便捷性与运行性能的痛点。 无论是刚入门的学生、专注算法的研究人员,还是需要快速落地产品的工程师,都能通过 Keras 轻松上手。它支持计算机视觉、自然语言处理、音频分析及时间序列预测等多种任务。 Keras 3 的核心亮点在于其独特的“多后端”架构。用户只需编写一套代码,即可灵活选择 TensorFlow、JAX、PyTorch 或 OpenVINO 作为底层运行引擎。这一特性不仅保留了 Keras 一贯的高层易用性,还允许开发者根据需求自由选择:利用 JAX 或 PyTorch 的即时执行模式进行高效调试,或切换至速度最快的后端以获得最高 350% 的性能提升。此外,Keras 具备强大的扩展能力,能无缝从本地笔记本电脑扩展至大规模 GPU 或 TPU 集群,是连接原型开发与生产部署的理想桥梁。