Skip to content

Repository files navigation

StockAdvisor - 短线 AI 选股推荐系统

项目愿景

构建一个纯监控、不下单的短线股票推荐系统,每日盘后结合板块、题材、情绪、连板梯队等数据,利用深度学习模型与**大语言模型(DeepSeek)**共同产生次日买入建议及详细理由,辅助人工决策。

核心目标

  • 不下单,只推荐:每日盘后输出 3~5 只潜力股 + 逻辑 + 风险提示。
  • 数据闭环:从数据采集、特征工程、模型推理到结果跟踪,全流程自动可回测。
  • AI 深度参与:传统 ML 提供量化概率;大模型负责整合多源信息生成人类可读理由。
  • 实战可检验:所有信号严格无未来信息,支持历史回测与滚动评估。

整体数据流与架构

[外部金融数据源]
        │
        ▼
[数据采集层] ──── AKShare 拉取盘后涨停、情绪、板块数据
        │
        ▼
[存储层] ─────── MySQL(开发环境)/ SQLite(快速试跑) + SQLAlchemy
        │
        ▼
[特征工程] ───── 从原始数据计算封板强度、换手率、连板高度、情绪分数等因子
        │
        ├─→ [传统 ML 模型] LightGBM 分类器 → 次日涨停概率(量化分数)
        │
        └─→ [市场状态文本化] + 候选股特征 + 概率分数
                        │
                        ▼
                [DeepSeek API] ──── 生成最终推荐股票及自然语言理由
                        │
                        ▼
                [推荐结果存储] ──── 存入推荐表,记录模型评分与大模型理由
                        │
                        ▼
                [模拟跟踪引擎] ──── 次日计算推荐股的最高/收盘收益,自动入库
                        │
                        ▼
                [Streamlit 看板] ── 展示当日推荐、历史表现、数据监控

关键原则:

  • 所有数据在当日 15:00 后采集,绝不使用次日信息。
  • 大模型仅用于“推理 + 解释”,不直接获取金融数据。
  • 系统可划分独立模块,每个模块均可单独测试、调度。

MVP 策略

先跑通全流程闭环,再迭代精度。详见 docs/mvp.md

MVP 不做:实时行情、复杂深度学习(GNN/Transformer)、高频分钟级特征、爬虫文本(龙虎榜/舆情)、多年历史回测。

MVP 要做:盘后涨停数据 → 日级特征 → LightGBM 评分 → DeepSeek 推荐 3~5 只 → 次日收益跟踪 → Streamlit 看板。


技术栈选择

层级 技术 说明
开发语言 Python 3.11+ 量化/AI 生态无可替代
数据获取 AKShare 开源、免费、覆盖涨停/情绪/板块
数据库 ORM SQLAlchemy 支持 MySQL / SQLite 无缝切换
数据库(MVP 默认) SQLite 零配置,个人开发直接跑
数据库(进阶) MySQL 8.0 数据量大时切换
数据处理 Pandas, NumPy 特征计算与清洗
传统机器学习 LightGBM, scikit-learn 强基线模型,特征重要性分析
深度学习(进阶) PyTorch 可选,用于序列/图等高级建模
大模型 API DeepSeek (Chat) 生成推荐逻辑与理由
前端展示 Streamlit 轻量看板,快速验证
任务调度 APScheduler 定时触发每日流程
版本控制 Git + DVC(后续引入) 代码与模型权重管理
日志与监控 Python logging 关键步骤记录,异常报警

MVP 功能模块(V1.0)

每个模块的详细实现方案见 docs/mvp.md

  1. data_fetcher.py – 获取涨停板池、昨日涨停表现、涨跌家数、板块涨停统计。
  2. data_saver.py – 数据清洗、去重、存入数据库。
  3. db.py – 数据库模型定义与初始化。
  4. features.py – 计算个股特征(封板时间、封单占比、换手率、连板高度、板块强度)。
  5. label_builder.py – 依据次日涨停表生成标签(涨停/非涨停)。
  6. train_model.py – 滚动窗口训练 LightGBM 分类器,保存模型及特征重要性。
  7. predict_model.py – 对今日涨停池进行概率预测,写入数据库。
  8. prompt_builder.py – 将市场概况、候选股(Top 20)特征及概率组合成自然语言 Prompt。
  9. llm_recommend.py – 调用 DeepSeek API,解析结构化推荐结果存储。
  10. tracker.py – 盘后计算前一日推荐股的最高收益、收盘收益并入库。
  11. streamlit_app.py – 可视化看板:今日推荐、历史胜率与收益曲线。
  12. scheduler.py – 每天 15:45 自动执行上述流程(交易日下午)。
  13. config.py – 统一管理数据库连接、API Key、调度时间等配置。

每个模块均可独立运行,支持通过 if __name__ == "__main__": 进行本地测试。


环境配置

必需环境变量(放在 .env 文件中)

MVP 阶段默认使用 SQLite,零配置即可运行:

# 数据库 - MVP 默认 SQLite(零配置)
SQLITE_PATH=stock_data.db

# 或切换 MySQL(可选)
# MYSQL_URL=mysql+pymysql://root:password@localhost:3306/stock_db?charset=utf8mb4

# DeepSeek API Key
DEEPSEEK_API_KEY=sk-xxxxx

# 其他可选
SCHEDULE_TIME=15:45
AKSHARE_RETRY_COUNT=3
LOG_LEVEL=INFO

安装依赖

pip install -r requirements.txt

requirements.txt 内容(示例):

pandas
numpy
akshare
sqlalchemy
pymysql
lightgbm
scikit-learn
streamlit
python-dotenv
requests
apscheduler
seaborn
matplotlib

项目目录结构(建议)

stock_advisor/
├── README.md
├── docs/
│   └── mvp.md              # MVP 开发详细文档
├── requirements.txt
├── .env.example
├── config.py
├── db.py
├── data_fetcher.py
├── data_saver.py
├── features.py
├── label_builder.py
├── train_model.py
├── predict_model.py
├── prompt_builder.py
├── llm_recommend.py
├── tracker.py
├── scheduler.py
├── streamlit_app.py
├── tests/                  # 单元测试(Pytest)
├── models/                 # 训练好的 LightGBM / PyTorch 模型
├── logs/                   # 日志文件
├── notebooks/              # Jupyter 探索性分析
└── utils/                  # 公共工具函数

开发与协作原则(面向 AI 助手)

本项目的代码生成工作将大量依靠 AI 工具(Superpowers 等)。以下是协作准则,所有输出代码必须遵守:

  • 模块单一职责:每个 .py 文件仅负责一个明确功能。
  • 清晰接口:所有公共函数/类包含完整 type hints 和 docstring。
  • 可独立执行:每个模块下方都有 if __name__ == "__main__": 测试片段。
  • 显式异常处理:所有网络请求、数据库操作用 try-except 包裹,记录日志。
  • 无未来信息:特征计算时严禁使用当日收盘后才可确定的数据。
  • 配置集中:所有可变参数通过 config.py 或环境变量读取,不硬编码。
  • 格式规范:遵循 PEP8,股票代码统一为 6 位字符串(例如 '000001')。
  • 数据库交互:统一使用 SQLAlchemy ORM,支持一键切换 MySQL/SQLite。
  • 单元测试:每一个新模块需附 tests/test_xxx.py,使用 pytest 框架。

每次开发新模块时,AI 应:

  1. 阅读现有的 db.pyconfig.py,确保接口兼容。
  2. 输出模块代码 + 独立测试片段 + 简要使用说明。
  3. 如果涉及数据格式变化,同步更新相关模块。

下一步开发路线

详细分解见 docs/mvp.md 第六节。

  1. 环境搭建 -> 编写 config.py, db.py,初始化数据库。
  2. 数据管道 -> data_fetcher.py, data_saver.py,跑通第一份涨停数据入库。
  3. 特征与标签 -> features.py, label_builder.py,构建训练数据集。
  4. 基础模型 -> train_model.py, predict_model.py,得到第一版概率分数。
  5. LLM 集成 -> prompt_builder.py, llm_recommend.py,获得带理由的推荐。
  6. 跟踪展示 -> tracker.py, streamlit_app.py,可视化闭环。
  7. 自动化 -> scheduler.py,每日无人值守运行。

这七个阶段可以顺序推进,也可以根据 AI 能力并行开发独立模块。每个阶段的验证标准参考 MVP 文档。


许可证

MIT License — 仅供学习与研究使用,不构成投资建议。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages