* fix(web): 选股历史结果持久化恢复(方案A) - 选股页新增历史记录区块:加载时展示最近 10 次选股运行,点击条目 通过 history API 加载并展示该次完整结果 - 任务完成后将 runId 持久化到 sessionStorage(不再清空),刷新后 优先从 history API 按 run_id 恢复结果,避免依赖内存态 task 队列 - task 恢复失败(服务重启/任务过期)时回退到原有 task 轮询逻辑 - 失败/未知状态任务仍清理持久化记录 * docs: 记录选股结果持久化恢复修复到 CHANGELOG * fix(web): 闭合选股恢复状态清理的两个正确性 blocker - 不可恢复任务分支补 clearPersistedScreenTask(),避免刷新后反复恢复同一失效任务 - clearScreeningResults() 同步清理持久化的 runId/taskId,切换筛选条件后刷新不再恢复旧结果 - 新增两条回归测试覆盖上述场景 * fix(web): 选股历史条目展示筛选条件,切换筛选条件不清除恢复状态 - 撤销场景2错误修复:clearScreeningResults() 不再清除持久化 runId/taskId, 切换筛选条件后历史与刷新恢复能力完整保留 - 历史条目展示筛选条件:策略中文名(formatHistoryStrategyName)、 市场标签(formatHistoryMarketLabel)、返回数量(该次 run 实际候选数 candidateCount) - 重写对应回归测试 + 新增历史条件展示测试 * fix(web): 历史记录区块移到选股结果下方,符合先看结果再看历史的浏览顺序 * fix(web): 历史 run 恢复时同步策略与市场上下文;changelog 条目移入 Unreleased - handleHistoryRunSelect 与挂载时 runId 恢复分支现在会从 history detail 同步 strategy/market 到页面 state,结果区文案和后续深度分析的 analysisSkills 使用该历史 run 对应的策略,而非当前表单选择 (关闭 Codex P2 + OR-COR-6c1e5d27) - CHANGELOG 选股持久化恢复条目从 [3.30.0] 文档小节移至 [Unreleased] 段 - 新增回归测试:点击历史条目后结果区展示同步后的策略/市场上下文 * fix(web): 忽略过期历史详情响应,修复快速切换历史条目的竞态 - handleHistoryRunSelect 用 historyRunRequestIdRef 追踪最新请求, 响应返回时校验仍是最新请求才应用结果/错误/loading 状态, 避免 run A 晚到覆盖 run B 的结果(关闭 Codex P2) - 新增回归测试:先点 run-a 再点 run-b,run-a 迟到返回不覆盖 run-b 的结果与策略上下文 * fix(web): 历史恢复与手动选择互斥,自动恢复接入竞态保护 - handleHistoryRunSelect 选择历史记录时取消运行中的选股任务轮询(setActiveTaskId(null)),避免任务完成后把当前任务候选回写到历史上下文 - 页面初始自动恢复 effect 接入 historyRunRequestIdRef 竞态保护:若自动恢复返回前用户已手动选择历史记录,则放弃自动恢复响应,避免较晚返回的旧 run 覆盖用户最新选择 - 自动恢复失败回退 task 轮询时也校验用户未手动选择历史记录 - 补充两条回归测试:晚到自动恢复不覆盖手动选择、选择历史时取消进行中的任务 * fix(web): 修复历史恢复链路三处竞态(OpenReview 2026-08-24 复审反馈) - OR-COR-9b1f8c4e: 过期自动恢复请求的 finally 不再无条件清共享 loading;setLoading(false) 复用 request-id 守卫,setRestoreResolved(true) 保持无条件执行,避免提前放开"运行选股"入口 - OR-COR-2c71d8af: handleSubmit 递增 historyRunRequestIdRef 作废飞行中 的历史/恢复响应并解除 restoreResolved 门闩,新任务轮询立即启动, 迟到响应不再覆盖新任务状态 - 策略列表竞态: 新增 historyContextStrategyRef,历史选择/自动恢复写入 的策略跳过 loadStrategies 的归一化回退,迟到的 /strategies 响应不再把 历史自定义策略改写回默认策略 验证: StockScreeningPage 测试 35 passed(新增 3 条回归)、screening API 测试 13 passed、tsc -b && vite build 通过 * fix(web): 手动选中历史记录后同步持久化恢复指针(OR-COR-4d1a7e90) handleHistoryRunSelect 成功加载历史详情时调用 persistScreenTask 记录当前 选中的 runId/strategy/market,刷新后自动恢复用户刚查看的历史 run, 而不是停留在更早的 task/run。历史详情不携带 taskId,以 runId 作为占位: 正常路径刷新走 getRun(runId) 恢复、不会触发轮询;若该 run 恢复失败, 占位轮询会命中不可恢复错误并清理过期指针。useCallback 依赖同步补全, 确保持久化使用当前表单值。 验证: StockScreeningPage 测试 36 passed(新增 1 条回归:选中历史后刷新 仍恢复该 run)、screening API 测试 13 passed、tsc -b && vite build 通过 --------- Co-authored-by: ariesy <ariesy.bleiben@gmail.com>
📈 股票智能分析系统
🤖 基于 AI 大模型的 A股/港股/美股/日股/韩股/台股自选股智能分析系统,每日自动分析并推送「决策仪表盘」到企业微信/飞书/Telegram/Discord/Slack/邮箱
💖 赞助商 (Sponsors)
🖥️ 产品预览
✨ 功能特性
| 能力 | 覆盖内容 |
|---|---|
| AI 决策报告 | 核心结论、评分、趋势、买卖点位、风险警报、催化因素、操作检查清单 |
| 多市场数据聚合 | 覆盖 A股、港股、美股、日股、韩股、台股和 ETF,支持行情、K 线、技术指标、新闻、公告、基本面与报告辅助数据;不同市场的数据源和能力边界见 市场支持边界 |
| Web / 桌面工作台 | 手动分析、任务进度、历史报告、完整 Markdown、回测、持仓、配置管理、浅色 / 深色主题 |
| Agent 策略问股 | 多轮追问,支持均线、缠论、波浪、趋势、热点、事件、成长、预期等 15 种内置策略,覆盖 Web/Bot/API |
| 智能导入与补全 | 图片、CSV/Excel、剪贴板导入;股票代码/名称/拼音/别名补全 |
| 自动化与推送 | GitHub Actions、Docker、本地定时任务、FastAPI 服务和企业微信/飞书/Telegram/Discord/Slack/邮件推送 |
功能细节、字段契约、基本面 P0 超时语义、交易纪律、数据源优先级、Web/API 行为请看 完整配置与部署指南。
技术栈与数据来源
| 类型 | 支持 |
|---|---|
| AI 模型 | Anspire、AIHubMix、Gemini、OpenAI 兼容、DeepSeek、通义千问、Claude、Ollama 本地模型等 |
| 行情数据 | TickFlow、AkShare、Tushare、Pytdx、Baostock、YFinance、Longbridge |
| 新闻搜索 | Anspire、SerpAPI、Tavily、Bocha、Brave、MiniMax、SearXNG |
| 社交舆情 | Stock Sentiment API(Reddit / X / Polymarket,仅美股,可选) |
项目默认内置 AkShare、Baostock、YFinance 等免费行情源,可零配置运行;免费源受上游限流、接口变动和网络波动影响,稳定性不保证。长期定时、批量分析或更稳定行情建议配置 TickFlow、Tushare、Longbridge 等 token 型数据源,适用市场、Actions 映射和 fallback 规则见 数据源配置。
🚀 快速开始
方式一:GitHub Actions(推荐)
5 分钟完成部署,零成本,无需服务器。
1. Fork 本仓库
点击右上角 Fork 按钮(顺便点个 Star⭐ 支持一下)
2. 配置 Secrets
Settings → Secrets and variables → Actions → New repository secret
AI 模型配置(至少配置一个)
默认先选一个模型服务商并填写 API Key;需要多模型、图片识别、本地模型或高级路由时,再参考 LLM 配置指南。
| Secret 名称 | 说明 | 必填 |
|---|---|---|
ANSPIRE_API_KEYS |
Anspire API Key,一Key同时启用全球热门大模型和联网搜索,本项目新用户提供30元等额的免费额度(GLM5.2、GPT等模型特惠中) | 推荐 |
AIHUBMIX_KEY |
AIHubMix API Key,一Key切换使用全系模型,无需科学上网,本项目可享 10% 优惠 | 推荐 |
GEMINI_API_KEY |
Google Gemini API Key | 可选 |
ANTHROPIC_API_KEY |
Anthropic Claude API Key | 可选 |
OPENAI_API_KEY |
OpenAI 兼容 API Key(支持 DeepSeek、通义千问等) | 可选 |
OPENAI_BASE_URL / OPENAI_MODEL |
使用 OpenAI 兼容服务时填写 | 可选 |
Ollama 更适合本地 / Docker 部署,GitHub Actions 推荐使用云端 API。
通知渠道配置(至少配置一个)
| Secret 名称 | 说明 |
|---|---|
WECHAT_WEBHOOK_URL |
企业微信机器人 |
FEISHU_WEBHOOK_URL |
飞书机器人 |
TELEGRAM_BOT_TOKEN + TELEGRAM_CHAT_ID |
Telegram |
DISCORD_WEBHOOK_URL |
Discord Webhook |
SLACK_BOT_TOKEN + SLACK_CHANNEL_ID |
Slack Bot |
EMAIL_SENDER + EMAIL_PASSWORD |
邮件推送 |
更多渠道、签名校验、分组邮件、Markdown 转图片等配置见 通知渠道详细配置。
自选股配置(必填)
| Secret 名称 | 说明 | 必填 |
|---|---|---|
STOCK_LIST |
自选股代码,如 600519,hk00700,AAPL,7203.T,005930.KS,2330.TW |
✅ |
新闻源配置(推荐)
新闻源会显著影响舆情、公告、事件和催化因素质量,建议至少配置一个搜索服务。
| Secret 名称 | 说明 | 必填 |
|---|---|---|
ANSPIRE_API_KEYS |
Anspire AI Search:汇聚全球舆情信息,适配A股、美股、港股等新闻和舆情检索;同一Key可复用大模型服务,本项目新用户提供免费30元等额的免费点数 | 推荐 |
SERPAPI_API_KEYS |
SerpAPI:搜索引擎结果补强,适合实时金融新闻 | 推荐 |
TAVILY_API_KEYS |
Tavily:通用新闻搜索 API | 可选 |
BOCHA_API_KEYS |
博查搜索:中文搜索优化,支持 AI 摘要 | 可选 |
BRAVE_API_KEYS |
Brave Search:隐私优先,美股资讯补强 | 可选 |
MINIMAX_API_KEYS |
MiniMax:结构化搜索结果 | 可选 |
SEARXNG_BASE_URLS |
SearXNG 自建实例:无配额兜底,适合私有部署 | 可选 |
更多搜索源、社交舆情和降级规则见 搜索服务配置。
行情数据源配置(可选)
默认使用 AkShare、Baostock、YFinance 等免费数据源,日志中"未配置"的提示不影响运行。 如需更稳定的行情,可按市场配置以下 Secret:
| Secret 名称 | 适用市场 | 说明 |
|---|---|---|
TUSHARE_TOKEN |
A 股 | 提升历史行情稳定性 |
LONGBRIDGE_OAUTH_CLIENT_ID + LONGBRIDGE_OAUTH_TOKEN_CACHE_B64 |
港股/美股 | 补齐量比、换手率、PE 等字段 |
详见 数据源配置。
3. 启用 Actions
Actions 标签 → I understand my workflows, go ahead and enable them
4. 手动测试
Actions → 每日股票分析 → Run workflow → Run workflow
完成
默认每个**工作日 18:00(北京时间)**自动执行,也可手动触发。默认非交易日(含 A/H/US 节假日)不执行;强制运行、交易日检查、断点续传等规则见 完整指南。
方式二:客户端配置教程 / 本地运行 / Docker 部署
# 克隆项目
git clone https://github.com/ZhuLinsen/daily_stock_analysis.git && cd daily_stock_analysis
# 安装依赖
pip install -r requirements.txt
# 配置环境变量
cp .env.example .env && vim .env
# 运行分析
python main.py
常用命令:
python main.py --debug
python main.py --dry-run
python main.py --stocks 600519,hk00700,AAPL,2330.TW
python main.py --market-review
python main.py --schedule
python main.py --serve-only
📱 推送效果
决策仪表盘
🎯 2026-02-08 决策仪表盘
共分析3只股票 | 🟢买入:0 🟡观望:2 🔴卖出:1
📊 分析结果摘要
⚪ 中钨高新(000657): 观望 | 评分 65 | 看多
⚪ 永鼎股份(600105): 观望 | 评分 48 | 震荡
🟡 新莱应材(300260): 卖出 | 评分 35 | 看空
⚪ 中钨高新 (000657)
📰 重要信息速览
💭 舆情情绪: 市场关注其AI属性与业绩高增长,情绪偏积极,但需消化短期获利盘和主力流出压力。
📊 业绩预期: 基于舆情信息,公司2025年前三季度业绩同比大幅增长,基本面强劲,为股价提供支撑。
🚨 风险警报:
风险点1:2月5日主力资金大幅净卖出3.63亿元,需警惕短期抛压。
风险点2:筹码集中度高达35.15%,表明筹码分散,拉升阻力可能较大。
风险点3:舆情中提及公司历史违规记录及重组相关风险提示,需保持关注。
✨ 利好催化:
利好1:公司被市场定位为AI服务器HDI核心供应商,受益于AI产业发展。
利好2:2025年前三季度扣非净利润同比暴涨407.52%,业绩表现强劲。
📢 最新动态: 【最新消息】舆情显示公司是AI PCB微钻领域龙头,深度绑定全球头部PCB/载板厂。2月5日主力资金净卖出3.63亿元,需关注后续资金流向。
---
生成时间: 18:00
大盘复盘
🎯 2026-01-10 大盘复盘
📊 主要指数
- 上证指数: 3250.12 (🟢+0.85%)
- 深证成指: 10521.36 (🟢+1.02%)
- 创业板指: 2156.78 (🟢+1.35%)
📈 市场概况
上涨: 3920 | 下跌: 1349 | 涨停: 155 | 跌停: 3
🔥 板块表现
领涨: 互联网服务、文化传媒、小金属
领跌: 保险、航空机场、光伏设备
⚙️ 配置说明
完整环境变量、模型渠道、通知渠道、数据源优先级、交易纪律、基本面 P0 语义和部署说明请参考 完整配置指南。
🖥️ Web 界面
Web 工作台提供配置管理、任务监控、手动分析、历史报告、完整 Markdown 报告、Agent 问股、回测、持仓管理、智能导入和浅色 / 深色主题。启动方式:
python main.py --webui
python main.py --webui-only
访问 http://127.0.0.1:8000 即可使用。认证、智能导入、搜索补全、历史报告复制、云服务器访问等细节见 本地 WebUI 管理界面。
🤖 Agent 策略问股
配置任意可用 AI API Key 后,Web /chat 页面即可使用策略问股;如需显式关闭可设置 AGENT_MODE=false。
- 支持均线金叉、缠论、波浪理论、多头趋势、热点题材、事件驱动、成长质量、预期重估等内置策略
- 支持实时行情、K 线、技术指标、新闻和风险信息调用
- 支持多轮追问、会话导出、发送到通知渠道和后台执行
- 支持自定义策略文件与多 Agent 编排(实验性)
🧩 相关项目 (Related Projects)
DSA 聚焦日常分析报告;选股实现参考 AlphaSift,AlphaEvo 用于策略验证与进化。
| 项目 | 定位 |
|---|---|
| AlphaSift | DSA 选股实现的参考项目 |
| AlphaEvo | 策略回测与自我进化,用于验证策略规则,并通过迭代探索策略参数与组合 |
📬 联系与合作
| 合作邮箱 |
zhuls345@gmail.com 项目咨询、部署支持与功能扩展 |
![]() 扫码关注小红书 |
| 小红书 | 欢迎关注小红书 | |
| 问题反馈 | 提交 Issue |
📄 License
MIT License © 2026 ZhuLinsen
欢迎在二次开发或引用时注明本仓库来源,感谢支持项目持续维护。
⚠️ 免责声明
本项目仅供学习和研究使用,不构成任何投资建议。股市有风险,投资需谨慎。作者不对使用本项目产生的任何损失负责。



