5分钟快速上手stock-trading-ml:从克隆代码到训练第一个股价预测模型的完整指南
5分钟快速上手stock-trading-ml:从克隆代码到训练第一个股价预测模型的完整指南
【免费下载链接】stock-trading-mlA stock trading bot that uses machine learning to make price predictions.项目地址: https://gitcode.com/gh_mirrors/st/stock-trading-ml
stock-trading-ml 是一个基于机器学习与 LSTM 深度神经网络的开源股票交易机器人项目,核心功能是利用 Keras + TensorFlow 构建股价预测模型,并根据预测结果自动生成买入、卖出信号。本文面向零基础新手,手把手带你完成从克隆代码、配置环境、下载历史行情数据,到 5 分钟内训练出第一个股价预测模型的完整流程,全程无需编写任何代码。
stock-trading-ml 是什么?为什么要用机器学习预测股价?
传统技术分析依赖人的经验,而 stock-trading-ml 的思路很直接:让神经网络"读"过去 50 个交易日的开盘价、最高价、最低价、收盘价和成交量(OHLCV),去预测下一个交易日的开盘价。模型学到的规律越多,预测就越接近真实走势。
项目结构非常精简,核心只有 4 个 Python 文件,各司其职:
save_data_to_csv.py:下载股票历史价格并保存为 CSVutil.py:数据预处理、归一化与技术指标计算basic_model.py:训练基础 LSTM 股价预测模型tech_ind_model.py:训练融合技术指标的增强版模型trading_algo.py:用训练好的模型模拟买卖交易
第一步:克隆代码与安装依赖(最快环境配置方法)
先克隆仓库到本地,并安装所有依赖包。项目要求 Python 3.5+ 环境,建议使用虚拟环境隔离:
git clone https://gitcode.com/gh_mirrors/st/stock-trading-ml cd stock-trading-ml pip install -r requirements.txtrequirements.txt中列出的核心依赖包括:alpha_vantage(获取行情数据)、pandas/numpy(数据处理)、sklearn(数据归一化)、keras+tensorflow(神经网络训练)以及matplotlib(可视化)。安装完成后,项目就已经可以运行了,整个环境准备通常只需 3 分钟。
第二步:获取免费的 Alpha Vantage API Key
save_data_to_csv.py依赖 Alpha Vantage 提供的免费股票行情接口,你需要先到 Alpha Vantage 官网注册并获取一个免费 API Key。然后在项目根目录创建creds.json文件,把 Key 填进去:
{"av_api_key": "你的API_KEY"}这一步是数据来源的关键,没有 Key 就无法下载历史行情数据。
第三步:下载股票历史数据到 CSV
准备好 Key 后,一条命令即可下载指定股票的历史数据:
python save_data_to_csv.py MSFT dailysave_data_to_csv.py接收两个参数:股票代码(如 MSFT、AAPL)和时间窗口(支持intraday分钟线、daily日线、daily_adj复权日线)。执行后会在当前目录生成类似MSFT_daily.csv的行情文件,包含日期、开高低收和成交量等字段。
💡 小提示:命令行中的参数定义都在
save_data_to_csv.py的 argparse 部分,想换股票只需改第一个参数,想换时间周期改第二个参数。
第四步:理解数据预处理(关键长尾知识点)
训练之前,数据要先经过util.py中的csv_to_dataset()函数处理,它完成三件事:
- 滑窗切片:以
history_points = 50为窗口,把连续 50 天的 OHLCV 数据打包成一个样本 - 归一化:用 sklearn 的
MinMaxScaler把价格缩放到 0~1 区间,加速模型收敛 - 计算技术指标:在归一化数据上计算 SMA、EMA、MACD 等技术指标,作为模型的额外输入特征
如果你想调整"看多少天历史"或增加技术指标种类,修改util.py顶部的history_points变量即可。
第五步:训练你的第一个股价预测模型
环境就绪、数据就绪后,训练模型只需一行命令:
python basic_model.pybasic_model.py构建了一个 LSTM 神经网络:输入层接收 50 天的行情序列,中间是 50 个单元的 LSTM 层加 Dropout 防过拟合,最后通过全连接层输出预测价格,优化器使用 Adam(学习率 0.0005),损失函数为均方误差 MSE,训练 50 个 epoch。
训练结束后,模型会自动保存为basic_model.h5,并弹出 matplotlib 绘制的"真实价格 vs 预测价格"对比图,同时输出归一化的 MSE 误差指标。
如果你想要更高精度的预测,可以改用融合技术指标的增强版模型:
python tech_ind_model.pytech_ind_model.py采用双分支网络结构:一条分支处理 LSTM 行情序列,另一条分支处理技术指标特征,最后通过concatenate拼接两个分支的输出再做预测。它保存的模型文件为technical_model.h5,精度通常优于基础版。
第六步:用训练好的模型模拟交易回测
训练只是第一步,检验模型价值的是回测。运行:
python trading_algo.pytrading_algo.py会加载technical_model.h5,逐日比较"今日开盘价"与"模型预测的明日开盘价",当预测涨幅超过阈值thresh = 0.1时生成买入信号,跌幅超过阈值时生成卖出信号,最后通过compute_earnings()模拟以每次 10 美元买入、信号触发时清仓的策略,输出模拟收益,并在图中用绿色/红色散点标出买卖点。
常见问题与下一步优化建议
Q1:报错找不到 creds.json?检查是否已在项目根目录创建该文件,且 JSON 格式正确。
Q2:想预测其他股票?模型文件中硬编码了MSFT_daily.csv,把basic_model.py或tech_ind_model.py中的数据文件名改为你下载的 CSV 即可,同时建议同步修改trading_algo.py中加载的模型路径。
Q3:如何提升预测精度?可从三方面入手:在util.py中增加 MACD 等技术指标特征、在tech_ind_model.py中调整 LSTM 单元数与 Dropout 比例、用multiple_csv_to_dataset()融合多只股票数据一起训练。
至此,你已经完整走通了 stock-trading-ml 的"数据下载 → 数据预处理 → 模型训练 → 回测模拟"全流程。这套基于机器学习与 LSTM 神经网络的股价预测流水线,正是你入门量化交易与深度学习实践的最佳起点。接下来,试着换一只股票、调一调参数,看看你的第一个股价预测模型表现如何吧!
【免费下载链接】stock-trading-mlA stock trading bot that uses machine learning to make price predictions.项目地址: https://gitcode.com/gh_mirrors/st/stock-trading-ml
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考