ZhuLinsen/daily_stock_analysisPublic

LLM 驱动的多市场股票智能分析系统:多源行情、实时新闻、决策看板与自动推送,支持零成本定时运行。 LLM-powered multi-market stock analysis system with multi-source market data, real-time news, decision dashboard, automated notifications, and cost-free scheduled runs.

AI summary: An automated system for scraping, analyzing, and visualizing daily A-share stock market data.

Stars
65.9K
+55 today
Forks
55K
Watchers
264
Open issues
31
Open PRs
22
Contributors
~128
Commits
1K
Branches
440

PythonMITCreated Jan 10, 2026Last push 1d agoLatest release v3.32.0+237 stars this week+1.3K this month

Quick answers

What is daily_stock_analysis?
An automated system for scraping, analyzing, and visualizing daily A-share stock market data.
What does daily_stock_analysis do?
Daily Stock Analysis is a Python-based tool designed to automatically fetch and process daily trading data for the Chinese A-share market. It aggregates historical price data, volume metrics, and fundamental indicators from various financial data sources. The system then applies technical analysis algorithms to identify trends, calculate moving averages, and flag potential trading signals based on predefined strategies. By outputting the results into structured formats and visual charts, it allows investors to quickly digest market movements without manual data collection. The project serves as a foundational pipeline for quantitative analysis and algorithmic trading research.
Who is daily_stock_analysis for?
This tool is designed for individual investors, quantitative analysts, and Python developers interested in the Chinese stock market. It requires basic Python knowledge to configure and run, and an understanding of technical analysis concepts.
How do I get started with daily_stock_analysis?
git clone https://github.com/ZhuLinsen/daily_stock_analysis.git && pip install -r requirements.txt && python main.py
How popular is daily_stock_analysis on GitHub?
ZhuLinsen/daily_stock_analysis has 65,883 stars and 54,961 forks on GitHub, and gained 237 stars in the last 7 days.
What license does daily_stock_analysis use?
ZhuLinsen/daily_stock_analysis is released under the MIT license.

Star history

since Jul 28, 2026
020K40K60KJul 2026Aug 2026Sep 2026Oct 2026
65.9K stars as of Oct 4, 2026. Measured daily since Jul 28, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

commits per day, last 52 weeks
OctNovDecJanFebMarAprMayJunJulAugSepOctMonWedFri2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 2 commits2026-01-11: 3 commits2026-01-12: 4 commits2026-01-13: 5 commits2026-01-14: 18 commits2026-01-15: 7 commits2026-01-16: 2 commits2026-01-17: 4 commits2026-01-18: 3 commits2026-01-19: 15 commits2026-01-20: 5 commits2026-01-21: 10 commits2026-01-22: 20 commits2026-01-23: 7 commits2026-01-24: 15 commits2026-01-25: 23 commits2026-01-26: 12 commits2026-01-27: 2 commits2026-01-28: 6 commits2026-01-29: 7 commits2026-01-30: 3 commits2026-01-31: 7 commits2026-02-01: 12 commits2026-02-02: 4 commits2026-02-03: 1 commit2026-02-04: 1 commit2026-02-05: 4 commits2026-02-06: 4 commits2026-02-07: 3 commits2026-02-08: 2 commits2026-02-09: 2 commits2026-02-10: 3 commits2026-02-11: 3 commits2026-02-12: 2 commits2026-02-13: 2 commits2026-02-14: 3 commits2026-02-15: 6 commits2026-02-16: 2 commits2026-02-17: 0 commits2026-02-18: 2 commits2026-02-19: 1 commit2026-02-20: 2 commits2026-02-21: 1 commit2026-02-22: 2 commits2026-02-23: 5 commits2026-02-24: 3 commits2026-02-25: 9 commits2026-02-26: 9 commits2026-02-27: 8 commits2026-02-28: 13 commits2026-03-01: 1 commit2026-03-02: 3 commits2026-03-03: 1 commit2026-03-04: 0 commits2026-03-05: 1 commit2026-03-06: 4 commits2026-03-07: 10 commits2026-03-08: 3 commits2026-03-09: 10 commits2026-03-10: 1 commit2026-03-11: 5 commits2026-03-12: 6 commits2026-03-13: 7 commits2026-03-14: 4 commits2026-03-15: 7 commits2026-03-16: 6 commits2026-03-17: 10 commits2026-03-18: 5 commits2026-03-19: 7 commits2026-03-20: 7 commits2026-03-21: 0 commits2026-03-22: 6 commits2026-03-23: 2 commits2026-03-24: 4 commits2026-03-25: 4 commits2026-03-26: 4 commits2026-03-27: 4 commits2026-03-28: 0 commits2026-03-29: 3 commits2026-03-30: 1 commit2026-03-31: 6 commits2026-04-01: 13 commits2026-04-02: 3 commits2026-04-03: 10 commits2026-04-04: 4 commits2026-04-05: 4 commits2026-04-06: 0 commits2026-04-07: 1 commit2026-04-08: 1 commit2026-04-09: 0 commits2026-04-10: 5 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 2 commits2026-04-18: 0 commits2026-04-19: 1 commit2026-04-20: 0 commits2026-04-21: 2 commits2026-04-22: 2 commits2026-04-23: 0 commits2026-04-24: 2 commits2026-04-25: 10 commits2026-04-26: 2 commits2026-04-27: 2 commits2026-04-28: 5 commits2026-04-29: 1 commit2026-04-30: 5 commits2026-05-01: 1 commit2026-05-02: 5 commits2026-05-03: 3 commits2026-05-04: 2 commits2026-05-05: 6 commits2026-05-06: 2 commits2026-05-07: 3 commits2026-05-08: 2 commits2026-05-09: 3 commits2026-05-10: 14 commits2026-05-11: 5 commits2026-05-12: 2 commits2026-05-13: 3 commits2026-05-14: 0 commits2026-05-15: 8 commits2026-05-16: 8 commits2026-05-17: 6 commits2026-05-18: 2 commits2026-05-19: 5 commits2026-05-20: 6 commits2026-05-21: 8 commits2026-05-22: 4 commits2026-05-23: 6 commits2026-05-24: 5 commits2026-05-25: 8 commits2026-05-26: 4 commits2026-05-27: 5 commits2026-05-28: 2 commits2026-05-29: 4 commits2026-05-30: 6 commits2026-05-31: 7 commits2026-06-01: 2 commits2026-06-02: 3 commits2026-06-03: 8 commits2026-06-04: 10 commits2026-06-05: 8 commits2026-06-06: 4 commits2026-06-07: 4 commits2026-06-08: 2 commits2026-06-09: 1 commit2026-06-10: 4 commits2026-06-11: 2 commits2026-06-12: 2 commits2026-06-13: 10 commits2026-06-14: 5 commits2026-06-15: 2 commits2026-06-16: 0 commits2026-06-17: 2 commits2026-06-18: 3 commits2026-06-19: 8 commits2026-06-20: 5 commits2026-06-21: 4 commits2026-06-22: 6 commits2026-06-23: 0 commits2026-06-24: 5 commits2026-06-25: 1 commit2026-06-26: 3 commits2026-06-27: 10 commits2026-06-28: 8 commits2026-06-29: 1 commit2026-06-30: 9 commits2026-07-01: 6 commits2026-07-02: 3 commits2026-07-03: 10 commits2026-07-04: 8 commits2026-07-05: 5 commits2026-07-06: 1 commit2026-07-07: 1 commit2026-07-08: 2 commits2026-07-09: 0 commits2026-07-10: 2 commits2026-07-11: 2 commits2026-07-12: 7 commits2026-07-13: 1 commit2026-07-14: 0 commits2026-07-15: 0 commits2026-07-16: 1 commit2026-07-17: 0 commits2026-07-18: 0 commits2026-07-19: 10 commits2026-07-20: 2 commits2026-07-21: 2 commits2026-07-22: 5 commits2026-07-23: 1 commit2026-07-24: 0 commits2026-07-25: 3 commits2026-07-26: 8 commits2026-07-27: 1 commit2026-07-28: 1 commit2026-07-29: 0 commits2026-07-30: 2 commits2026-07-31: 2 commits2026-08-01: 3 commits2026-08-02: 5 commits2026-08-03: 2 commits2026-08-04: 1 commit2026-08-05: 5 commits2026-08-06: 0 commits2026-08-07: 0 commits2026-08-08: 0 commits2026-08-09: 5 commits2026-08-10: 1 commit2026-08-11: 0 commits2026-08-12: 0 commits2026-08-13: 0 commits2026-08-14: 3 commits2026-08-15: 1 commit2026-08-16: 0 commits2026-08-17: 1 commit2026-08-18: 0 commits2026-08-19: 4 commits2026-08-20: 0 commits2026-08-21: 0 commits2026-08-22: 7 commits2026-08-23: 2 commits2026-08-24: 2 commits2026-08-25: 5 commits2026-08-26: 0 commits2026-08-27: 0 commits2026-08-28: 3 commits2026-08-29: 5 commits2026-08-30: 6 commits2026-08-31: 0 commits2026-09-01: 2 commits2026-09-02: 0 commits2026-09-03: 0 commits2026-09-04: 2 commits2026-09-05: 1 commit2026-09-06: 2 commits2026-09-07: 0 commits2026-09-08: 0 commits2026-09-09: 0 commits2026-09-10: 0 commits2026-09-11: 0 commits2026-09-12: 0 commits2026-09-13: 3 commits2026-09-14: 0 commits2026-09-15: 0 commits2026-09-16: 0 commits2026-09-17: 0 commits2026-09-18: 0 commits2026-09-19: 1 commit2026-09-20: 0 commits2026-09-21: 0 commits2026-09-22: 0 commits2026-09-23: 0 commits2026-09-24: 0 commits2026-09-25: 0 commits2026-09-26: 0 commits2026-09-27: 8 commits2026-09-28: 0 commits2026-09-29: 0 commits2026-09-30: 2 commits2026-10-01: 4 commits2026-10-02: 0 commits2026-10-03: 0 commits2026-10-04: 0 commits2026-10-05: 0 commits2026-10-06: 0 commits2026-10-07: 0 commits2026-10-08: 0 commits2026-10-09: 0 commits2026-10-10: 0 commits
945 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Landmark project

    65,883 stars

  • Very active

    945 commits in 52 weeks

  • Community-driven

    ~128 contributors

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

  • Repeat trending

    26 trending appearances

What daily_stock_analysis does

Daily Stock Analysis is a Python-based tool designed to automatically fetch and process daily trading data for the Chinese A-share market. It aggregates historical price data, volume metrics, and fundamental indicators from various financial data sources. The system then applies technical analysis algorithms to identify trends, calculate moving averages, and flag potential trading signals based on predefined strategies. By outputting the results into structured formats and visual charts, it allows investors to quickly digest market movements without manual data collection. The project serves as a foundational pipeline for quantitative analysis and algorithmic trading research.

This tool is designed for individual investors, quantitative analysts, and Python developers interested in the Chinese stock market. It requires basic Python knowledge to configure and run, and an understanding of technical analysis concepts.

  • Automated data collection: Scripts to fetch daily A-share market data from public APIs.
  • Technical indicator calculation: Built-in formulas for MACD, RSI, moving averages, and other common metrics.
  • Strategy backtesting: Basic framework for evaluating trading rules against historical data.
  • Data visualization: Generates charts and graphs to visualize stock performance and indicators.
  • Scheduled execution: Can be configured to run daily after market close to generate fresh reports.
  • Data export: Saves processed analysis into CSV or Excel formats for further review.

Where teams use it

Daily market screening

Retail investors run the script after market close to identify stocks meeting specific technical criteria.

Quantitative research

Analysts use the collected data and indicator calculations as a starting point for developing more complex trading algorithms.

Portfolio monitoring

Traders track the technical health of their current holdings by generating daily indicator reports.

Learning algorithmic trading

Python beginners study the codebase to understand how financial data is fetched, processed, and analyzed programmatically.

Getting started: git clone https://github.com/ZhuLinsen/daily_stock_analysis.git && pip install -r requirements.txt && python main.py

README

main branch

📈 股票智能分析系统

GitHub stars arXiv CI License: MIT Python 3.10+ GitHub Actions Docker

#1 Python Repository Of The Day | Trendshift Featured|HelloGitHub

🤖 基于 AI 大模型的 A股/港股/美股/日股/韩股/台股自选股智能分析系统,每日自动分析并推送「决策仪表盘」到企业微信/飞书/Telegram/Discord/Slack/邮箱

产品预览 · 功能特性 · 快速开始 · 推送效果 · 文档中心 · 完整指南

简体中文 | English | 繁體中文

💖 赞助商 (Sponsors)

Anspire Open 一站式模型和搜索服务 轻松抓取搜索引擎上的实时金融新闻数据 - SerpApi

🖥️ 产品预览

DSA Web 工作台演示

✨ 功能特性

能力 覆盖内容
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 规则见 数据源配置。

🚀 快速开始

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;已登记指数显式代码(如 sh000016、930606.CSI)经一次性 --stocks 或 GitHub Actions 入口支持,规则见 指数自选股配置 ✅

新闻源配置(推荐)

新闻源会显著影响舆情、公告、事件和催化因素质量,建议至少配置一个搜索服务。

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

Docker 部署、定时任务、云服务器访问请参考 完整指南;桌面客户端打包请参考 桌面端打包说明。

📱 推送效果

决策仪表盘

🎯 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 编排(实验性)

Agent 具体参数、skill 命名兼容、多 Agent 模式和预算护栏见 完整指南 与 LLM 配置指南。

🧩 相关项目 (Related Projects)

DSA 聚焦日常分析报告;选股实现参考 AlphaSift,AlphaEvo 用于策略验证与进化。

项目 定位
AlphaSift DSA 选股实现的参考项目
AlphaEvo 策略回测与自我进化,用于验证策略规则,并通过迭代探索策略参数与组合

📬 联系与合作

合作邮箱 [email protected]
项目咨询、部署支持与功能扩展
小红书二维码
扫码关注小红书
小红书 欢迎关注小红书
问题反馈 提交 Issue

📄 License

MIT License © 2026 ZhuLinsen

欢迎在二次开发或引用时注明本仓库来源,感谢支持项目持续维护。

⚠️ 免责声明

本项目仅供学习和研究使用,不构成任何投资建议。股市有风险,投资需谨慎。作者不对使用本项目产生的任何损失负责。


View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Releases and announcements

36 total
  1. v3.32.0v3.32.0Sep 6, 20268.7K downloads

    ## v3.32.0 ### Highlights - 已登记 A 股指数贯通 Web/API、Bot、CLI 与 GitHub Actions 分析入口,注册表扩展至 33 项,并统一指数身份、任务去重、历史与 Chat 上下文。 - 新增个股研究聚合 API、ResearchArtifact 结构化研究产物,以及数据源能力与数据集质量只读接口。 - 完善 Futu OpenD 港股数据源接入,新增 Web Chat 分词基础模块与 Agent 轨迹评估入口。 - 自建 SearXNG 搜索超时可配置,Tavily 改用 basic 搜索以降低 credit 消耗。 - 定时分析采用独立进程与硬超时保护,选股结果支持历史恢复,桌面端增加全局更新入口,并修复 Linux/Docker 分享图中韩文字体缺失。 - 收敛 LiteLLM 兼容版本窗口,更新 Web/桌面依赖,并修复美股数据源优先级与股票名称归一问题。 ### Contributors @Gach-Coder, @SPEC, @ZhuLinsen, @anupamme, @ariesy, @daladada666-a11y, @elvisw, @subaoyan16, @sunkai174634, @tzlwn1, @wvyan, @zhanghao56666-svg, @zhulinsen ### Full changelog https://github.com/ZhuLinsen/daily_stock_analysis/compare/v3.31.0...v3.32.0

  2. v3.31.0v3.31.0Aug 23, 20266.9K downloads

    ## v3.31.0 ## 发布亮点 - feat: Agent 工具调用新增按类别和单工具配置的超时契约,并补齐防重试、协作取消、并发预算、线程安全与热重载一致性。 - feat: 股票名称解析、`StockDaily.canonical_id` 双写和 A 股指数多数据源 fallback 路由共同完善股票身份与行情降级链路。 - improve: 新闻检索为空时在报告中如实披露证据边界;Anspire 默认覆盖全球区域,公共 SearXNG 实例改为显式启用。 - fix: 修复服务重启后的定时任务恢复、分析无报告时的失败反馈、钉钉通知识别,以及大盘复盘历史摘要和实际生成后端诊断。 - security: 桌面端升级 `builder-util-runtime` 至 9.7.0,修复 CVE-2026-54673 涉及的 HTTP 重定向凭据头信息泄露风险。 - docs: 增加 xAI Grok 的 LiteLLM 配置示例、Grok Bot 集成说明与可复用异步分析 Skill,并更新 AIHubMix 中国大陆直连入口。 ## What's Changed - Added category-level and per-tool Agent timeout policies with first-wins resolution, non-retriable timeout results, cooperative cancellation, bounded parallel execution, cache synchronization, and runtime reload support, by @lmx-2077. - Expanded stock identity handling with cross-market name candidates, deterministic `canonical_id` persistence, and dedicated multi-source fallback routes for registered A-share indices, by @Gach-Coder and @elvisw. - Made missing news evidence explicit across reports and localized surfaces, switched Anspire to global-region search, and changed unreliable public SearXNG discovery to opt-in, by @Mach-Chan and @yddcy. - Restored persisted schedules after service res

  3. v3.30.0v3.30.0Aug 9, 20269K downloads

    ## v3.30.0 ## 发布亮点 - feat: LLM 渠道新增显式 Chat Completions / Responses API Surface,统一连接测试、主分析、选股、图片识别与状态诊断的协议路由和校验契约。 - feat: Agent Chat 按会话持久化 Skill 选择,支持刷新和会话切换恢复,并完整保留省略、显式空列表与非空选择三态。 - feat: Electron 桌面端恢复历史报告、市场复盘和完整报告分享图;未配置自定义品牌时使用随包二维码与默认“小红书@霸天土小豆”账号文案。 - feat: 新增单条分析目标解析契约,收紧交易所后缀、指数别名、美股前缀及 `.US` 代码的规范化边界。 - fix: 修复移动端侧栏触摸滚动、自选股详情状态、长通知标题分片、Lark 国际域名和 macOS 安装排障等用户可见问题。 - improve: 后端 CI 按测试文件分成三个 runner 并行执行,并收紧纯 Web、共享资产与跨层运行契约的门禁范围。 ## What's Changed - Added explicit Chat Completions and Responses API surfaces across connection tests, main analysis, screening, image recognition, and runtime diagnostics, with shared routing and validation contracts, by @ZhuLinsen. - Persisted Agent Chat Skill selection per session while preserving omitted, explicitly empty, and non-empty selection states across refreshes and session switches, by @lyl2104626211. - Restored desktop share images for stock reports, market reviews, and full reports, and stabilized the Xiaohongshu caption format with a bundled default QR/handle while preserving custom branding, by @ZhuLinsen. - Added the single-target `parse_analysis_target()` contract and hardened explicit exchange suffixes, malformed aliase

  4. v3.29.0v3.29.0Aug 2, 20265.2K downloads

    ## v3.29.0 ## 发布亮点 - feat: 将参考 AlphaSift 实现的选股核心与策略正式纳入 DSA,统一选股服务与 API,并新增运行历史、数据源历史和候选深度分析链路。 - feat: 新增 1080px 个股决策卡与高密度市场复盘分享图,支持中英韩模板、Web 原生分享、下载回退和可配置品牌元素。 - feat: 新增 Skill Opinion Outcome 计算、表现统计及基于真实样本的有界运行时权重,让策略后验评估形成可追踪闭环。 - improve: 优化选股快照复用、热点按需加载、多源并发、候选轮换和运行阶段展示,缩短长流程等待并提升结果稳定性与多样性。 - fix: 加固关闭认证二次确认、短凭证诊断脱敏、CI 超时取证和 PyInstaller/NLTK 桌面启动链路。 - fix: 修复 Longbridge 量比参数、回测股票身份与日线窗口、选股后置重排,以及分享图用户激活时序等正确性问题。 ## What's Changed - Integrated the AlphaSift-inspired screening core and strategies into DSA, with a unified `ScreeningService`, `/api/v1/screening`, persisted run/source history, announcement context, and candidate-to-deep-analysis handoff, by @ZhuLinsen. - Added dedicated 1080px stock decision cards and dense market-review share images, with structured-payload rendering, multilingual templates, native Web Share support, download fallback, and configurable branding, by @ZhuLinsen. - Added versioned Skill Opinion Outcome evaluation, read-only performance statistics, and bounded Bayesian runtime weights after the independent 30-evaluated-sample threshold, by @ObVious55. - Hardened screening ranking and post-analysis ordering, bounded near-score candidate rotation,

  5. v3.28.0v3.28.0Jul 26, 20265.1K downloads

    ## v3.28.0 ## 发布亮点 - feat: Multi-Agent 多策略综合支持分层 deliberation、mediator/self-review、revision projection 与 multi-round,并统一最终动作、分歧解释和 DecisionSignal 契约。 - feat: AI 建议页新增按决策风格分组的历史表现,specialist opinion 样本可版本化持久保存,并以独立的 30 个已完成样本门槛支持后验评估。 - feat: 新增 `--portfolio futu`,可只读导入 Futu OpenD 真实账户中的沪深 A 股、港股和美股 LONG 正股持仓。 - feat: Web 首页与 API 支持按请求临时选择单个或多个大盘复盘市场,贯通任务状态、SSE、结果与历史记录且不修改全局配置。 - feat: Tushare 支持通过 `TUSHARE_HTTP_URL` 接入自建网关或兼容镜像,留空时继续使用官方默认地址。 - fix: 改进港股行情路由与缓存、外股英文新闻匹配、A 股数据源兜底顺序、Windows 冷启动、Web/Agent 配置及 macOS 桌面包稳定性。 ## What's Changed - Added layered multi-strategy deliberation, mediator/self-review, revision projection, multi-round scheduling, and a canonical final-action and disagreement-explanation contract, by @xushengasd and @ObVious55. - Added persistent, versioned specialist opinion samples and decision-profile historical performance, with an independent 30-completed-sample threshold for each profile, by @ObVious55 and @massif-01. - Added read-only Futu OpenD portfolio import for mainland China, Hong Kong, and US long equity positions through `--portfolio futu`, by @JaxonHu1024. - Added per-request single- or multi-market review selection across the Web UI, API, task

Code frequency

additions and deletions
+47.4K-47.4KWeek of 2026-01-04: +9,134 linesWeek of 2026-01-04: -34 linesWeek of 2026-01-11: +5,305 linesWeek of 2026-01-11: -686 linesWeek of 2026-01-18: +17,396 linesWeek of 2026-01-18: -5,488 linesWeek of 2026-01-25: +15,125 linesWeek of 2026-01-25: -13,547 linesWeek of 2026-02-01: +19,547 linesWeek of 2026-02-01: -3,314 linesWeek of 2026-02-08: +8,876 linesWeek of 2026-02-08: -560 linesWeek of 2026-02-15: +5,646 linesWeek of 2026-02-15: -1,029 linesWeek of 2026-02-22: +16,314 linesWeek of 2026-02-22: -4,328 linesWeek of 2026-03-01: +5,511 linesWeek of 2026-03-01: -1,216 linesWeek of 2026-03-08: +23,245 linesWeek of 2026-03-08: -2,874 linesWeek of 2026-03-15: +41,752 linesWeek of 2026-03-15: -6,871 linesWeek of 2026-03-22: +47,442 linesWeek of 2026-03-22: -2,168 linesWeek of 2026-03-29: +13,145 linesWeek of 2026-03-29: -1,388 linesWeek of 2026-04-05: +3,137 linesWeek of 2026-04-05: -212 linesWeek of 2026-04-12: +213 linesWeek of 2026-04-12: -9 linesWeek of 2026-04-19: +5,202 linesWeek of 2026-04-19: -1,403 linesWeek of 2026-04-26: +6,456 linesWeek of 2026-04-26: -779 linesWeek of 2026-05-03: +9,464 linesWeek of 2026-05-03: -2,046 linesWeek of 2026-05-10: +22,609 linesWeek of 2026-05-10: -2,377 linesWeek of 2026-05-17: +20,894 linesWeek of 2026-05-17: -2,003 linesWeek of 2026-05-24: +22,635 linesWeek of 2026-05-24: -994 linesWeek of 2026-05-31: +27,777 linesWeek of 2026-05-31: -3,635 linesWeek of 2026-06-07: +33,716 linesWeek of 2026-06-07: -2,547 linesWeek of 2026-06-14: +31,869 linesWeek of 2026-06-14: -3,448 linesWeek of 2026-06-21: +20,829 linesWeek of 2026-06-21: -1,861 linesWeek of 2026-06-28: +24,792 linesWeek of 2026-06-28: -1,819 linesWeek of 2026-07-05: +9,192 linesWeek of 2026-07-05: -677 linesWeek of 2026-07-12: +7,805 linesWeek of 2026-07-12: -360 linesWeek of 2026-07-19: +26,740 linesWeek of 2026-07-19: -1,425 linesWeek of 2026-07-26: +32,809 linesWeek of 2026-07-26: -9,562 linesWeek of 2026-08-02: +18,854 linesWeek of 2026-08-02: -1,969 linesWeek of 2026-08-09: +1,751 linesWeek of 2026-08-09: -257 linesWeek of 2026-08-16: +7,567 linesWeek of 2026-08-16: -299 linesWeek of 2026-08-23: +18,337 linesWeek of 2026-08-23: -840 linesWeek of 2026-08-30: +13,301 linesWeek of 2026-08-30: -413 linesWeek of 2026-09-06: +32 linesWeek of 2026-09-06: -8 linesWeek of 2026-09-13: +1,092 linesWeek of 2026-09-13: -18 linesWeek of 2026-09-20: +0 linesWeek of 2026-09-20: -0 linesWeek of 2026-09-27: +4,252 linesWeek of 2026-09-27: -298 linesWeek of 2026-10-04: +0 linesWeek of 2026-10-04: -0 linesJan 4, 2026Oct 4, 2026
+599.8K lines added, -82.8K removed over the last year.

Commits per week

last 52 weeks
750Week of 2025-10-11: 0 commitsWeek of 2025-10-18: 0 commitsWeek of 2025-10-25: 0 commitsWeek of 2025-11-01: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 2 commitsWeek of 2026-01-11: 43 commitsWeek of 2026-01-18: 75 commitsWeek of 2026-01-25: 60 commitsWeek of 2026-02-01: 29 commitsWeek of 2026-02-08: 17 commitsWeek of 2026-02-15: 14 commitsWeek of 2026-02-22: 49 commitsWeek of 2026-03-01: 20 commitsWeek of 2026-03-08: 36 commitsWeek of 2026-03-15: 42 commitsWeek of 2026-03-22: 24 commitsWeek of 2026-03-29: 40 commitsWeek of 2026-04-05: 11 commitsWeek of 2026-04-12: 2 commitsWeek of 2026-04-19: 17 commitsWeek of 2026-04-26: 21 commitsWeek of 2026-05-03: 21 commitsWeek of 2026-05-10: 40 commitsWeek of 2026-05-17: 37 commitsWeek of 2026-05-24: 34 commitsWeek of 2026-05-31: 42 commitsWeek of 2026-06-07: 25 commitsWeek of 2026-06-14: 25 commitsWeek of 2026-06-21: 29 commitsWeek of 2026-06-28: 45 commitsWeek of 2026-07-05: 13 commitsWeek of 2026-07-12: 9 commitsWeek of 2026-07-19: 23 commitsWeek of 2026-07-26: 17 commitsWeek of 2026-08-02: 13 commitsWeek of 2026-08-09: 10 commitsWeek of 2026-08-16: 12 commitsWeek of 2026-08-23: 17 commitsWeek of 2026-08-30: 11 commitsWeek of 2026-09-06: 2 commitsWeek of 2026-09-13: 4 commitsWeek of 2026-09-20: 0 commitsWeek of 2026-09-27: 14 commitsWeek of 2026-10-04: 0 commitsOct 11, 2025Oct 4, 2026
945 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 4 commitsSun 1:00 — 2 commitsSun 2:00 — 0 commitsSun 3:00 — 0 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 1 commitsSun 8:00 — 1 commitsSun 9:00 — 4 commitsSun 10:00 — 10 commitsSun 11:00 — 6 commitsSun 12:00 — 4 commitsSun 13:00 — 10 commitsSun 14:00 — 5 commitsSun 15:00 — 10 commitsSun 16:00 — 16 commitsSun 17:00 — 11 commitsSun 18:00 — 21 commitsSun 19:00 — 28 commitsSun 20:00 — 24 commitsSun 21:00 — 24 commitsSun 22:00 — 18 commitsSun 23:00 — 7 commitsMon 0:00 — 1 commitsMon 1:00 — 0 commitsMon 2:00 — 0 commitsMon 3:00 — 0 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 3 commitsMon 7:00 — 4 commitsMon 8:00 — 0 commitsMon 9:00 — 0 commitsMon 10:00 — 4 commitsMon 11:00 — 8 commitsMon 12:00 — 5 commitsMon 13:00 — 8 commitsMon 14:00 — 2 commitsMon 15:00 — 3 commitsMon 16:00 — 1 commitsMon 17:00 — 2 commitsMon 18:00 — 2 commitsMon 19:00 — 2 commitsMon 20:00 — 18 commitsMon 21:00 — 22 commitsMon 22:00 — 17 commitsMon 23:00 — 7 commitsTue 0:00 — 1 commitsTue 1:00 — 1 commitsTue 2:00 — 0 commitsTue 3:00 — 0 commitsTue 4:00 — 0 commitsTue 5:00 — 0 commitsTue 6:00 — 0 commitsTue 7:00 — 0 commitsTue 8:00 — 2 commitsTue 9:00 — 0 commitsTue 10:00 — 0 commitsTue 11:00 — 0 commitsTue 12:00 — 2 commitsTue 13:00 — 0 commitsTue 14:00 — 1 commitsTue 15:00 — 1 commitsTue 16:00 — 1 commitsTue 17:00 — 3 commitsTue 18:00 — 5 commitsTue 19:00 — 13 commitsTue 20:00 — 10 commitsTue 21:00 — 16 commitsTue 22:00 — 25 commitsTue 23:00 — 11 commitsWed 0:00 — 1 commitsWed 1:00 — 1 commitsWed 2:00 — 0 commitsWed 3:00 — 2 commitsWed 4:00 — 0 commitsWed 5:00 — 0 commitsWed 6:00 — 0 commitsWed 7:00 — 0 commitsWed 8:00 — 1 commitsWed 9:00 — 2 commitsWed 10:00 — 2 commitsWed 11:00 — 12 commitsWed 12:00 — 3 commitsWed 13:00 — 3 commitsWed 14:00 — 1 commitsWed 15:00 — 4 commitsWed 16:00 — 2 commitsWed 17:00 — 2 commitsWed 18:00 — 12 commitsWed 19:00 — 13 commitsWed 20:00 — 17 commitsWed 21:00 — 12 commitsWed 22:00 — 29 commitsWed 23:00 — 20 commitsThu 0:00 — 3 commitsThu 1:00 — 5 commitsThu 2:00 — 2 commitsThu 3:00 — 0 commitsThu 4:00 — 0 commitsThu 5:00 — 0 commitsThu 6:00 — 0 commitsThu 7:00 — 0 commitsThu 8:00 — 0 commitsThu 9:00 — 7 commitsThu 10:00 — 1 commitsThu 11:00 — 2 commitsThu 12:00 — 13 commitsThu 13:00 — 6 commitsThu 14:00 — 1 commitsThu 15:00 — 3 commitsThu 16:00 — 3 commitsThu 17:00 — 0 commitsThu 18:00 — 3 commitsThu 19:00 — 7 commitsThu 20:00 — 18 commitsThu 21:00 — 13 commitsThu 22:00 — 22 commitsThu 23:00 — 8 commitsFri 0:00 — 0 commitsFri 1:00 — 0 commitsFri 2:00 — 0 commitsFri 3:00 — 0 commitsFri 4:00 — 0 commitsFri 5:00 — 0 commitsFri 6:00 — 0 commitsFri 7:00 — 1 commitsFri 8:00 — 4 commitsFri 9:00 — 4 commitsFri 10:00 — 0 commitsFri 11:00 — 4 commitsFri 12:00 — 3 commitsFri 13:00 — 8 commitsFri 14:00 — 3 commitsFri 15:00 — 5 commitsFri 16:00 — 4 commitsFri 17:00 — 1 commitsFri 18:00 — 7 commitsFri 19:00 — 10 commitsFri 20:00 — 19 commitsFri 21:00 — 16 commitsFri 22:00 — 34 commitsFri 23:00 — 8 commitsSat 0:00 — 1 commitsSat 1:00 — 0 commitsSat 2:00 — 0 commitsSat 3:00 — 1 commitsSat 4:00 — 0 commitsSat 5:00 — 0 commitsSat 6:00 — 1 commitsSat 7:00 — 0 commitsSat 8:00 — 1 commitsSat 9:00 — 4 commitsSat 10:00 — 15 commitsSat 11:00 — 3 commitsSat 12:00 — 4 commitsSat 13:00 — 7 commitsSat 14:00 — 9 commitsSat 15:00 — 10 commitsSat 16:00 — 13 commitsSat 17:00 — 11 commitsSat 18:00 — 12 commitsSat 19:00 — 14 commitsSat 20:00 — 12 commitsSat 21:00 — 22 commitsSat 22:00 — 18 commitsSat 23:00 — 6 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits472 (47%)
Community commits541 (53%)

1,013 commits in total over the last year.

DateListRankStars gained
Aug 13, 2026daily#4+243
Aug 12, 2026daily#4+243
Aug 11, 2026daily#4+306
Aug 10, 2026daily#4+306
Jul 5, 2026daily#23+17
Jun 30, 2026daily#16+18
Jun 29, 2026daily#23+11
Jun 28, 2026daily#21+24
Jun 26, 2026daily#16+18
Jun 25, 2026daily#7+31
Jun 24, 2026daily#9+23
Jun 23, 2026daily#10+10
Jun 22, 2026daily#6+26
Jun 21, 2026daily#14+37
May 19, 2026daily#20+36