原创不易,转载请注明出处。本文仅供量化学习研究,不构成任何投资建议,股市有风险,入市需谨慎。
在这里插入图片描述


一、写在前面

做量化交易的朋友大多踩过这些坑:

  • 回测收益翻倍,实盘亏得底朝天(未来函数背锅)
  • 单一模型要么只判断涨跌,不知道涨多少
  • 想加择时功能,却被复杂的回测框架劝退
  • 多股票切换时模型串用,结果完全失真

本文分享一个我最近打磨的轻量级AI炒股系统,核心特点:
✅ 无未来函数,所有预测仅用当日及之前数据
✅ 分类+回归双模型:既判断涨跌,又预测涨幅
✅ 多Agent架构:选股、风控、择时、复盘模块解耦
✅ Streamlit交互界面:不用写前端,点点按钮就能跑
✅ 支持单票深度择时,自动生成周度复盘报告
普通笔记本就能运行,适合量化入门者和Python爱好者二次开发。


二、系统架构总览

整体采用分层设计,逻辑清晰,方便扩展:

┌─────────────┐
│  UI层(Streamlit) │ ← 4个Tab:今日预测/验证/复盘/择时
└──────┬──────┘
       ↓
┌─────────────┐
│ Agent层      │ ← 选股Agent/风控Agent/择时Agent/复盘Agent
└──────┬──────┘
       ↓
┌─────────────┐
│ 模型层       │ ← 双模型:LGBM分类(涨跌)+ LGBM回归(涨幅)
└──────┬──────┘
       ↓
┌─────────────┐
│ 特征工程层   │ ← 技术指标+自定义特征,全局统一特征列表
└──────┬──────┘
       ↓
┌─────────────┐
│ 数据源层     │ ← Tushare(真实行情)/ 模拟数据(兜底)
└─────────────┘

核心设计亮点:

  1. 模型按股票隔离:不同股票的模型单独存储,避免用银行模型预测白酒
  2. 双模型校验:分类模型判断上涨概率,回归模型预测5日涨幅,双重过滤提高胜率
  3. 回溯校验机制:所有信号都和历史实际收益对比,避免过拟合

三、核心功能拆解

1. 单票自由切换

侧边栏内置常用股票池,支持自定义输入A股代码,切换后自动加载对应股票的数据、模型和交易记录,完全隔离不串数据。
【此处配图:侧边栏股票选择界面】

2. 双模型训练

点击「训练当前股票模型」,自动训练分类+回归两个模型:

  • 分类模型:预测未来5日上涨概率,输出0-1之间的概率值
  • 回归模型:预测未来5日实际收益率,输出百分比数值
    训练完成后自动保存为model_股票代码_clf.pklmodel_股票代码_reg.pkl
    【此处配图:模型训练完成提示界面】

3. 今日操作建议

自动输出当日AI上涨概率、预测涨幅、操作建议(买入/观望/跳过)、止损位和仓位建议,同时自动保存交易记录。
【此处配图:Tab1今日预测界面,含K线图和指标卡片】

4. 预测验证(无未来函数)

持仓期满5天后,点击「验证历史预测」,自动对比预测收益和实际收益,计算命中率和平均收益,避免回测造假。
【此处配图:Tab2预测验证界面,含收益对比曲线】

5. 周度复盘报告

自动生成本周交易统计:总建议数、买入命中率、平均收益、错误案例分析,帮你快速迭代模型。
【此处配图:Tab3周度复盘界面,含错误案例明细】

6. 择时分析(核心功能)

  • 回溯120日模型打分vs实际收益散点图,直观判断阈值有效性
  • 输出未来5日观察窗口:明确回踩点位、MACD信号、成交量要求
  • 四重过滤:AI概率+预测收益+RSI+MACD,避免单一信号误判
    【此处配图:Tab4择时分析界面,含回溯散点图和买入信号提示】

四、环境搭建与部署

1. 依赖安装

先创建虚拟环境,再安装依赖:

pip install pandas numpy scikit-learn lightgbm ta streamlit plotly tushare

如果需要表格背景渐变效果,额外安装matplotlib:

pip install matplotlib

2. 申请Tushare Token

系统默认用Tushare获取真实行情,需要申请Token:

  1. 注册Tushare账号:https://tushare.pro/
  2. 实名认证后获得120积分(免费档足够用)
  3. 个人中心复制Token,填入utils.pyTS_TOKEN字段

如果不想用真实数据,系统会自动生成模拟数据,功能完全不受影响。

3. 源码结构

StockAI_Full/
├── app.py          # Streamlit主界面
├── train.py        # 双模型训练脚本
├── utils.py        # 工具函数(数据加载、特征工程、路径管理)
├── requirements.txt # 依赖列表
└── trades.csv      # 自动生成的交易记录

4. 启动步骤

# 1. 清除旧缓存(避免路径问题)
streamlit cache clear

# 2. 启动系统
streamlit run app.py

# 3. 侧边栏选择股票,点击「训练当前股票模型」
# 4. 训练完成后点击「执行今日预测」

五、踩坑实录(避坑指南)

开发过程中踩了大量新手常见的坑,整理出来帮大家节省时间:

坑1:模型路径找不到

现象:训练后生成了pkl文件,但加载时提示FileNotFoundError
原因utils.py中重复定义了get_model_path函数,旧版本函数覆盖了新版本,导致路径拼接错误
解决:确保utils.py中只有一个get_model_path定义,使用绝对路径拼接:

BASE_DIR = os.path.dirname(os.path.abspath(__file__))
def get_model_path(ts_code: str, kind="clf"):
    filename = f"model_{ts_code}_{kind}.pkl"
    return os.path.join(BASE_DIR, filename)

坑2:numpy数组用iloc索引

现象:择时分析报错'numpy.ndarray' object has no attribute 'iloc'
原因clf.predict_proba()reg.predict()返回的是numpy数组,不是pandas Series,不支持iloc索引
解决:转换为Series后再用iloc,或直接用[-1]索引:

prob_series = pd.Series(prob_all, index=df.index)
latest_prob = prob_series.iloc[-1]
# 或
latest_prob = prob_all[-1]

坑3:表格背景渐变报错

现象background_gradient requires matplotlib
原因:Streamlit的style.background_gradient依赖matplotlib
解决:要么安装matplotlib,要么加try-except降级为普通表格:

try:
    st.dataframe(df.style.background_gradient(...))
except ImportError:
    st.dataframe(df.reset_index(drop=True))

坑4:未来函数陷阱

现象:回测准确率90%,实盘完全不准
原因:特征计算中用了未来数据,比如用当日收盘价计算标签,再反过来预测当日涨跌
解决:本系统严格保证所有特征仅用当日及之前数据,标签用未来5日收益,验证时也用滞后数据,完全无未来函数。


六、效果演示

以华能水电(600025.SH)为例,跑出来的效果:

  1. 分类模型准确率:56.3%(股票数据噪声大,超过50%就有参考价值)
  2. 回归模型R²:0.072(符合A股量化模型的正常水平)
  3. 近120日买入信号命中率:58.1%,平均实际收益2.4%
  4. 择时信号明确:当AI概率>65%、预测收益>2%、RSI<75、MACD柱向上时,发出买入信号,止损位设为当前价-5%

注意:这个结果仅为历史回测表现,不代表未来收益,实盘需严格控制仓位。


七、合规声明与后续规划

合规声明

⚠️ 本文及本系统仅供量化学习研究,不构成任何投资建议。股票市场风险极高,切勿直接用于实盘交易,由此产生的任何损失,作者概不负责。

后续优化方向

  1. 加入情绪因子:爬取股吧、新闻情绪,提升模型准确率
  2. 多周期共振:同时训练5日、10日、20日回归模型,三重信号确认
  3. 仓位动态调整:根据市场波动率自动调整仓位,而非固定10%
  4. 实盘对接:对接券商模拟盘API,实现自动信号推送

源码获取

完整源码已上传GitHub,地址:https://github.com/yourusername/StockAI-System(替换为你的实际仓库地址)
如果访问不便,也可以在评论区留下邮箱,我打包发给你。


如果觉得本文对你有帮助,欢迎点赞、收藏、关注,有任何问题欢迎在评论区交流~

需要调整内容或者补充某部分的细节,随时告诉我~ 😊

完整源码下载地址:轻量AI炒股系统

如果觉得本文对你有帮助,欢迎点赞、收藏、关注,有任何问题欢迎在评论区交流~

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐