stock-prediction-daily — stock-prediction-dAIly
v1.0.0A股个股日线涨跌预测系统。七大能力:训练模型(XGBoost二分类+交叉验证+输出模型文件和报告)、优化模型(扩展特征+特征筛选)、模型预测(腾讯日线)、模型评估(日线T+1验证)、输出网页(Flask五页面仪表盘)、板块分析(直接调用stock-sector-re搜索技能)、个股分析(直接调用stock-watch列出-briefing技能)。Use when: 股票预测, stock prediction, 训练模型, trAIn 模型, 模型优化, 优化 模型, 模型预测, predict stock, 模型评估, evaluate 模型, 预测网页, prediction 仪表盘, 板块分析, sector re搜索, 个股分析, watch列出 briefing, XGBoost, A股, 沪深300, dAIly prediction, 日线预测
运行时依赖
安装命令
点击复制技能文档
A股个股日线涨跌预测系统
基于沪深300成份股日线数据训练 XGBoost 二分类模型,预测个股下一个交易日的价格涨跌方向。预测与评估均统一使用腾讯财经日线数据,预测和评估两个步骤相互独立。除预测主流程外,本 技能 还提供两个研究入口:板块分析直接复用 stock-sector-re搜索,个股分析直接复用 stock-watch列出-briefing。
使用约束 训练、优化、预测、评估、网页能力仅使用当前 技能 目录内的文件和子目录,不要读取、修改或依赖 技能 目录外的实现文件。 板块分析能力不在当前目录内重复实现,直接调用 stock-sector-re搜索 技能。 个股分析能力不在当前目录内重复实现,直接调用 stock-watch列出-briefing 技能。 默认工作目录为 .github/技能s/stock-prediction-dAIly/scripts/。 运行、修改、排查当前 技能 自带功能时,只使用 scripts/ 和 references/ 下的内容。 项目结构 .github/技能s/stock-prediction-dAIly/ ├── 技能.md # 技能说明 ├── references/ # 参考说明与排障文档 └── scripts/ ├── config.py # 配置中心(路径、股票池、超参数) ├── features.py # 特征工程(100+候选技术指标) ├── trAIn.py # 训练流水线(获取数据→特征→选择→交叉验证→保存) ├── predict.py # 预测流水线(腾讯日线) ├── evaluate.py # 评估流水线(日线T+1验证) ├── 应用.py # Flask网页仪表盘 └── mAIn.py # 一键执行入口
运行过程中生成的 data/、模型s/、结果s/、templates/、static/ 目录都位于 scripts/ 目录下,由 scripts/config.py 自动创建。 其中 scripts/报告s/ 用于保存板块分析和个股分析的文本报告,网页页面会直接读取该目录中的文件进行展示。
技术栈 数据源: ak分享 Tencent日线 stock_zh_a_hist_tx 模型: XGBoost XGBClassifier 二分类 序列化: joblib(不用 xgboost 原生 save_模型) Python: 使用 python3 网页: Flask + Jinja2,端口 5000 能力一:训练模型 触发条件
用户要求训练模型、构建预测系统、或首次搭建项目时执行。
流程
获取训练数据
获取沪深300成份股列表:ak.索引_stock_cons() 或 ak.索引_stock_cons_cs索引(symbol="000300") 逐只获取日线数据:ak.stock_zh_a_hist_tx(symbol, 启动_date, end_date, adjust="qfq") 缓存到 scripts/data/{code}_dAIly.csv 请求节流由 scripts/config.py 的 FETCH_DELAY 控制
特征工程
调用 features.添加_technical_features(df) 计算技术指标特征 调用 features.创建_label(df) 生成标签:下一期 close > 当前 close 则为 1
特征选择
使用 XGBoost feature_导入ances_ 排序 取 config.TOP_N_FEATURES 个最重要特征
交叉验证
10 折分层交叉验证 StratifiedKFold 指标:Accuracy、Precision、Recall、F1、AUC
保存模型和报告
模型:scripts/模型s/xgb_stock_模型.pkl 归一化器:scripts/模型s/扩展r.pkl 特征名:scripts/模型s/feature_names.json 报告:scripts/结果s/模型_报告.json 关键代码模式 df = ak.stock_zh_a_hist_tx(symbol="sh600436", 启动_date="20240101", end_date="20260315", adjust="qfq")
导入 joblib joblib.dump(模型, config.模型_PATH) 模型 = joblib.load(config.模型_PATH)
缓存策略
训练数据缓存在 scripts/data/,重新训练时可直接复用缓存 CSV。
能力二:优化模型效果 触发条件
用户要求提升准确率、增加特征、调参、或模型效果不理想时。
优化维度
扩展候选特征
在 scripts/features.py 的 添加_technical_features() 中添加新特征 在 scripts/features.py 的 获取_all_feature_columns() 中注册特征名
调整特征数量
修改 scripts/config.py 中的 TOP_N_FEATURES
调整 XGBoost 超参数
修改 scripts/config.py 中的 XGB_PARAMS
重新训练
可直接复用缓存日线 CSV 重新训练,无需重新抓取数据 能力三:模型预测 触发条件
用户要求预测特定股票在特定日期的涨跌方向。
预测逻辑 只使用腾讯财经日线数据 stock_zh_a_hist_tx 对目标日期取不晚于该日期的最近一个交易日 bar 在该日线 bar 上计算与训练一致的特征 输出下一交易日涨跌方向概率 启动方式 cd .github/技能s/stock-prediction-dAIly/scripts python3 predict.py "2026-03-13"
输出格式
CSV 含字段:股票代码、股票名称、当前时间、预测生成时间、当前价格、预测结果、上涨概率、下跌概率、数据频率。
说明:
当前时间 只精确到日期,例如 2026-03-13 预测生成时间 精确到秒,用于区分同一交易日的多次预测批次 数据频率 固定为腾讯日线 scripts/结果s/predictions.csv 为去重后的主表,按 股票代码 + 当前时间 只保留最新一批预测结果 每次预测还会额外生成 scripts/结果s/prediction_历史/predictions_YYYYMMDD_HHMMSS.csv 批次快照,用于保留完整历史 能力四:模型评估 触发条件
用户要求评估预测准确率、验证模型效果。
评估逻辑 独立读取 scripts/结果s/predictions.csv 对每条预测重新获取腾讯财经日线数据 取预测日期之后的下一个交易日收盘价进行评估 计算实际涨跌与预测是否一致 启动方式 cd .github/技能s/stock-prediction-dAIly/scripts python3 evaluate.py
输出格式
CSV 含字段:股票代码、股票名称、预测时间、预测生成时间、当时价格、预测结果、上涨概率、预测数据频率、一天后价格、评估数据频率、实际涨跌、预测是否准确。
说明:
一天后价格 表示下一个可用交易日的收盘价 若预测后尚无新交易日数据,则该字段为 N/A 若同一支股票同一天存在多次预测,评估时以 predictions.csv 主表中的最新批次为准 能力五:输出网页 触发条件
用户要求启动网页、展示结果、或搭建仪表盘。
Flask应用结构 /predictions — 日线预测结果表格 /报告 — 模型训练报告 /evaluation — 日线 T+1 评估结果表格 /sector-analysis — 板块分析报告浏览页,自动读取 scripts/报告s/sector_analysis/ 中的报告 /stock-analysis — 个股分析报告浏览页,自动读取 scripts/报告s/stock_analysis/ 中的报告 / — 重定向到 /predictions
说明:
板块分析和个股分析页面都以报告文件为唯一数据源,不再展示独立的介绍页内容。 页面左侧提供报告选择菜单,菜单项显示“报告主标题 + 创建时间”,可在多份历史报告之间切换。 页面正文会完整渲染报告内容,并自动格式化一级/二级标题、列表、表格。 页面会从 Markdown 报告中的表格自动提取结构化信息,生成摘要卡片与简单图表。 左侧章节导航只展示一级章节,不展示子章节,避免导航过长。 页面模板 base.html:布局和导航 predictions.html:预测表格与统计卡片 报告.html:报告 JSON 展示 evaluation.html:评估表格与准确率统计 sector_analysis.html:板块分析报告页 stock_analysis.html:个股分析报告页 启动方式 cd .github/技能s/stock-prediction-dAIly/scripts python3 应用.py
一键执行 cd .github/技能s/stock-prediction-dAIly/scripts python3 mAIn.py
依次执行:训练 → 预测 → 评估 → 启动网页。
能力六:板块分析 触发条件
用户要求查看近阶段重点板块、板块排行、新闻催化、资金流向、龙头股或下周板块观察清单。
执行方式 不在当前 技能 内重复实现板块研究逻辑。 直接调用 stock-sector-re搜索 技能。 调用时沿用用户原始问题中的时间范围、主题范围和输出形式要求。 调用完成后,将最终输出保存到 scripts/报告s/sector_analysis/ 目录。 文件格式优先使用 Markdown,命名建议为 sector_analysis_YYYYMMDD_HHMMSS.md。 默认输出 重点板块排序 每个重点板块的催化、资金与交易逻辑 每个板块 2 到 3 只核心股 下周观察清单或盘前清单 保存要求 报告正文必须可直接阅读,不要只保存摘要。 报告开头必须包含统一头部,顺序如下:一级标题、单独一行的副标题、单独一行的报告时间。 主标题和副标题都必须直接体现报告结论,不能使用“板块分析报告”“个股分析报告”“近7天重点信息汇总”这类泛泛标题。 主标题必须简短,控制在一句短结论内,优先写成 6 到 16 个字,不要把全部判断塞进主标题。 主标题应概括最重要的结论,例如:# 主线聚焦新能源、# 算力分化创新药走强。 副标题再补充次级判断或执行结论,例如:> 副标题:风电与锂电强度最高,算力分化加大,创新药更适合中线跟踪。 头部格式仍保持三行结构:主标题、以 > 副标题: 开头的副标题、报告时间:YYYY-MM-DD HH:MM:SS。 优先使用分节标题、列表和表格,便于网页端自动格式化和提取图表数据。 主章节优先使用 ##,例如“重点板块排序”“核心股对比表”“下周观察清单”“风险提示”。 若主章节下需要展开细分内容,可使用 ### 子章节,但网页左侧导航默认只展示 ## 主章节。 同一次分析如有补充说明,合并写入同一个报告文件,不拆成多个零散文件。 能