ZhuLinsen/daily_stock_analysis
GitHub: ZhuLinsen/daily_stock_analysis
LLM驱动的跨市场股票智能分析系统,整合多源行情、实时新闻和AI决策,支持零成本定时运行和多渠道消息推送。
Stars: 18116 | Forks: 18557
# 📈 股票智能分析系统
[](https://github.com/ZhuLinsen/daily_stock_analysis/stargazers)
[](https://github.com/ZhuLinsen/daily_stock_analysis/actions/workflows/ci.yml)
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
[](https://github.com/features/actions)
[](https://hub.docker.com/)
[**功能特性**](#-功能特性) · [**快速开始**](#-快速开始) · [**推送效果**](#-推送效果) · [**完整指南**](docs/full-guide.md) · [**常见问题**](docs/FAQ.md) · [**更新日志**](docs/CHANGELOG.md)
简体中文 | [English](docs/README_EN.md) | [繁體中文](docs/README_CHT.md)
## ✨ 功能特性
| 模块 | 功能 | 说明 |
|------|------|------|
| AI | 决策仪表盘 | 一句话核心结论 + 精确买卖点位 + 操作检查清单 |
| 分析 | 多维度分析 | 技术面(盘中实时 MA/多头排列)+ 筹码分布 + 舆情情报 + 实时行情 |
| 市场 | 全球市场 | 支持 A股、港股、美股及美股指数(SPX、DJI、IXIC 等) |
| 策略 | 市场策略系统 | 内置 A股「三段式复盘策略」与美股「Regime Strategy」,输出进攻/均衡/防守或 risk-on/neutral/risk-off 计划,并附“仅供参考,不构成投资建议”提示 |
| 复盘 | 大盘复盘 | 每日市场概览、板块涨跌;支持 cn(A股)/us(美股)/both(两者) 切换 |
| 智能导入 | 多源导入 | 支持图片、CSV/Excel 文件、剪贴板粘贴;Vision LLM 提取代码+名称;置信度分层确认;名称→代码解析(本地+拼音+AkShare) |
| 回测 | AI 回测验证 | 自动评估历史分析准确率,方向胜率、止盈止损命中率 |
| **Agent 问股** | **策略对话** | **多轮策略问答,支持均线金叉/缠论/波浪等 11 种内置策略,Web/Bot/API 全链路** |
| 推送 | 多渠道通知 | 企业微信、飞书、Telegram、钉钉、邮件、Pushover |
| 自动化 | 定时运行 | GitHub Actions 定时执行,无需服务器 |
### 技术栈与数据来源
| 类型 | 支持 |
|------|------|
| AI 模型 | [AIHubMix](https://aihubmix.com/?aff=CfMq)、Gemini、OpenAI 兼容、DeepSeek、通义千问、Claude 等(统一通过 [LiteLLM](https://github.com/BerriAI/litellm) 调用,支持多 Key 负载均衡)|
| 行情数据 | AkShare、Tushare、Pytdx、Baostock、YFinance |
| 新闻搜索 | Tavily、SerpAPI、Bocha、Brave、MiniMax |
### 内置交易纪律
| 规则 | 说明 |
|------|------|
| 严禁追高 | 乖离率超阈值(默认 5%,可配置)自动提示风险;强势趋势股自动放宽 |
| 趋势交易 | MA5 > MA10 > MA20 多头排列 |
| 精确点位 | 买入价、止损价、目标价 |
| 检查清单 | 每项条件以「满足 / 注意 / 不满足」标记 |
| 新闻时效 | 可配置新闻最大时效(默认 3 天),避免使用过时信息 |
## 🚀 快速开始
### 方式一:GitHub Actions(推荐)
#### 1. Fork 本仓库
点击右上角 `Fork` 按钮(顺便点个 Star⭐ 支持一下)
#### 2. 配置 Secrets
`Settings` → `Secrets and variables` → `Actions` → `New repository secret`
**AI 模型配置(至少配置一个)**
| Secret 名称 | 说明 | 必填 |
|------------|------|:----:|
| `AIHUBMIX_KEY` | [AIHubMix](https://aihubmix.com/?aff=CfMq) API Key,一 Key 切换使用全系模型,免费模型可用 | 可选 |
| `GEMINI_API_KEY` | [Google AI Studio](https://aistudio.google.com/) 获取免费 Key(需科学上网) | 可选 |
| `ANTHROPIC_API_KEY` | [Anthropic Claude](https://console.anthropic.com/) API Key | 可选 |
| `ANTHROPIC_MODEL` | Claude 模型(如 `claude-3-5-sonnet-20241022`) | 可选 |
| `OPENAI_API_KEY` | OpenAI 兼容 API Key(支持 DeepSeek、通义千问等) | 可选 |
| `OPENAI_BASE_URL` | OpenAI 兼容 API 地址(如 `https://api.deepseek.com/v1`) | 可选 |
| `OPENAI_MODEL` | 模型名称(如 `gemini-3.1-pro-preview`、`gemini-3-flash-preview`、`gpt-5.2`) | 可选 |
| `OPENAI_VISION_MODEL` | 图片识别专用模型(部分第三方模型不支持图像;不填则用 `OPENAI_MODEL`) | 可选 |
通知渠道配置(点击展开,至少配置一个)
| Secret 名称 | 说明 | 必填 | |------------|------|:----:| | `WECHAT_WEBHOOK_URL` | 企业微信 Webhook URL | 可选 | | `FEISHU_WEBHOOK_URL` | 飞书 Webhook URL | 可选 | | `TELEGRAM_BOT_TOKEN` | Telegram Bot Token(@BotFather 获取) | 可选 | | `TELEGRAM_CHAT_ID` | Telegram Chat ID | 可选 | | `TELEGRAM_MESSAGE_THREAD_ID` | Telegram Topic ID (用于发送到子话题) | 可选 | | `EMAIL_SENDER` | 发件人邮箱(如 `xxx@qq.com`) | 可选 | | `EMAIL_PASSWORD` | 邮箱授权码(非登录密码) | 可选 | | `EMAIL_RECEIVERS` | 收件人邮箱(多个用逗号分隔,留空则发给自己) | 可选 | | `EMAIL_SENDER_NAME` | 邮件发件人显示名称(默认:daily_stock_analysis股票分析助手) | 可选 | | `STOCK_GROUP_N` / `EMAIL_GROUP_N` | 股票分组发往不同邮箱(如 `STOCK_GROUP_1=600519,300750` `EMAIL_GROUP_1=user1@example.com`) | 可选 | | `PUSHPLUS_TOKEN` | PushPlus Token([获取地址](https://www.pushplus.plus),国内推送服务) | 可选 | | `PUSHPLUS_TOPIC` | PushPlus 群组编码(一对多推送,配置后消息推送给群组所有订阅用户) | 可选 | | `SERVERCHAN3_SENDKEY` | Server酱³ Sendkey([获取地址](https://sc3.ft07.com/),手机APP推送服务) | 可选 | | `CUSTOM_WEBHOOK_URLS` | 自定义 Webhook(支持钉钉等,多个用逗号分隔) | 可选 | | `CUSTOM_WEBHOOK_BEARER_TOKEN` | 自定义 Webhook 的 Bearer Token(用于需要认证的 Webhook) | 可选 | | `WEBHOOK_VERIFY_SSL` | Webhook HTTPS 证书校验(默认 true)。设为 false 可支持自签名证书。警告:关闭有严重安全风险,仅限可信内网 | 可选 | | `SINGLE_STOCK_NOTIFY` | 单股推送模式:设为 `true` 则每分析完一只股票立即推送 | 可选 | | `REPORT_TYPE` | 报告类型:`simple`(精简)、`full`(完整)、`brief`(3-5句概括),Docker环境推荐设为 `full` | 可选 | | `REPORT_SUMMARY_ONLY` | 仅分析结果摘要:设为 `true` 时只推送汇总,不含个股详情 | 可选 | | `REPORT_TEMPLATES_DIR` | Jinja2 模板目录(相对项目根,默认 `templates`) | 可选 | | `REPORT_RENDERER_ENABLED` | 启用 Jinja2 模板渲染(默认 `false`,保证零回归) | 可选 | | `REPORT_INTEGRITY_ENABLED` | 启用报告完整性校验,缺失必填字段时重试或占位补全(默认 `true`) | 可选 | | `REPORT_INTEGRITY_RETRY` | 完整性校验重试次数(默认 `1`,`0` 表示仅占位不重试) | 可选 | | `REPORT_HISTORY_COMPARE_N` | 历史信号对比条数,`0` 关闭(默认),`>0` 启用 | 可选 | | `ANALYSIS_DELAY` | 个股分析和大盘分析之间的延迟(秒),避免API限流,如 `10` | 可选 | | `MERGE_EMAIL_NOTIFICATION` | 个股与大盘复盘合并推送(默认 false),减少邮件数量 | 可选 | | `MARKDOWN_TO_IMAGE_CHANNELS` | 将 Markdown 转为图片发送的渠道(逗号分隔):`telegram,wechat,custom,email` | 可选 | | `MARKDOWN_TO_IMAGE_MAX_CHARS` | 超过此长度不转图片,避免超大图片(默认 `15000`) | 可选 | | `MD2IMG_ENGINE` | 转图引擎:`wkhtmltoimage`(默认)或 `markdown-to-file`(emoji 更好) | 可选 | [strategy]` 命令触发策略分析
- **自定义策略**:在 `strategies/` 目录下新建 YAML 文件即可添加策略,无需写代码
### 启动方式
1. **启动服务**(默认会自动编译前端)
python main.py --webui # 启动 Web 界面 + 执行定时分析
python main.py --webui-only # 仅启动 Web 界面
启动时会在 `apps/dsa-web` 自动执行 `npm install && npm run build`。
如需关闭自动构建,设置 `WEBUI_AUTO_BUILD=false`,并改为手动执行:
cd ./apps/dsa-web
npm install && npm run build
cd ../..
访问 `http://127.0.0.1:8000` 即可使用。
## 🗺️ Roadmap
查看已支持的功能和未来规划:[更新日志](docs/CHANGELOG.md)
### 本地门禁(建议先跑)
pip install -r requirements.txt
pip install flake8 pytest
./scripts/ci_gate.sh
如修改前端(`apps/dsa-web`):
cd apps/dsa-web
npm ci
npm run lint
npm run build
## 📄 License
[MIT License](LICENSE) © 2026 ZhuLinsen
如果你在项目中使用或基于本项目进行二次开发,
非常欢迎在 README 或文档中注明来源并附上本仓库链接。
这将有助于项目的持续维护和社区发展。
## 📬 联系与合作
- GitHub Issues:[提交 Issue](https://github.com/ZhuLinsen/daily_stock_analysis/issues)
- 合作邮箱:zhuls345@gmail.com
## ⚠️ 免责声明
本项目仅供学习和研究使用,不构成任何投资建议。股市有风险,投资需谨慎。作者不对使用本项目产生的任何损失负责。
标签:A股, Docker, FinTech, Gemini, GitHub Actions, LLM, Python, Unmanaged PE, 决策仪表盘, 多渠道推送, 安全防御评估, 实时行情, 开源, 技术分析, 投资助手, 无后门, 智能投顾, 港股, 策略回测, 美股, 股票分析, 自动复盘, 自动笔记, 舆情分析, 请求拦截, 财经新闻, 逆向工具, 量化交易, 金融科技, 零成本