999 Commits

Author SHA1 Message Date
birdxs
0104fd7d78 Update Docker Hub image name to use secret username 2026-01-26 11:15:00 +08:00
birdxs
e407dff3f9 Delete .github/workflows/ghcr.yml 2026-01-26 11:03:06 +08:00
birdxs
8a033c2df7 Update ghcr.yml 2026-01-26 10:37:27 +08:00
birdxs
5cb5614eef Add workflow to build and push Docker images
This workflow builds and pushes multi-architecture Docker images to both GitHub Container Registry and Docker Hub.
2026-01-26 10:36:51 +08:00
birdxs
24cbfc00c5 Merge branch 'ZhuLinsen:main' into main 2026-01-26 10:05:21 +08:00
mumu
138488e55e Merge pull request #144 from adminlove520/feat/discord-bot
Feat/discord bot
2026-01-25 21:30:07 +08:00
adminlove520
78275a3685 fix: resolve merge conflict in src/notification.py 2026-01-25 20:42:49 +08:00
adminlove520
12a9e41672 fix: update .gitignore file 2026-01-25 20:38:11 +08:00
zhulinsen
bc1c00d5a8 fix: correct docker workflow syntax and optimize triggers 2026-01-25 20:25:10 +08:00
mumu
163398a0c0 Merge pull request #143 from adminlove520/feat/docker-deployment
Feat/docker deployment
2026-01-25 20:12:00 +08:00
adminlove520
5e2b5ce934 优化 Docker 发布工作流,单次构建生成多个标签 2026-01-25 20:00:13 +08:00
adminlove520
1a8c8a687d fix: 优化docker-publish.yml配置,移除冗余构建步骤 2026-01-25 19:43:12 +08:00
adminlove520
460d186468 fix: 修复ruff检查发现的所有问题 2026-01-25 19:34:41 +08:00
adminlove520
7a92bcae2d fix: 清理所有文件中未使用的导入和变量 2026-01-25 19:27:40 +08:00
adminlove520
f94edc905f fix: 清理notification.py中未使用的Discord导入 2026-01-25 19:22:24 +08:00
mumu
1bf82a0d65 Merge pull request #142 from mrhaoji/feature/temperature-config
feat: 添加 AI 温度参数可配置支持
close #140
2026-01-25 19:06:57 +08:00
mumu
a8af4b8bda Merge pull request #125 from adminlove520/feat/discord-bot
feat: add Discord bot support
2026-01-25 19:04:13 +08:00
adminlove520
f04e56fa0c docs: 添加Zeabur部署详细文档 2026-01-25 19:04:04 +08:00
adminlove520
3ceb90867a feat: 添加Zeabur镜像部署工作流,使用commit hash和latest双标签 2026-01-25 18:58:35 +08:00
adminlove520
84d79756de feat: update docker-publish.yml to use docker/Dockerfile and retain dual tags 2026-01-25 18:54:56 +08:00
adminlove520
f98cf0f845 feat: 添加Zeabur镜像部署工作流 2026-01-25 18:50:27 +08:00
adminlove520
ffee8d9176 fix: 完成Discord机器人相关修复和优化 2026-01-25 18:41:03 +08:00
陈浩
a4e728a4aa feat: 添加 AI 温度参数可配置支持
支持通过环境变量配置 Gemini 和 OpenAI 的温度参数,替代硬编码值。

## 改进内容

### 1. 配置层 (src/config.py)
- 新增 `gemini_temperature` 字段(默认 0.7)
- 新增 `openai_temperature` 字段(默认 0.7)
- 从环境变量读取 `GEMINI_TEMPERATURE` 和 `OPENAI_TEMPERATURE`

### 2. 分析器层 (src/analyzer.py)
- 替换 Gemini API 硬编码温度 0.7 为 `config.gemini_temperature`
- 替换 OpenAI API 硬编码温度 0.7 为 `config.openai_temperature`
- 保持日志输出显示实际使用的温度值

### 3. 配置模板 (.env.example)
- 添加 `GEMINI_TEMPERATURE` 配置项和详细说明
- 添加 `OPENAI_TEMPERATURE` 配置项
- 说明温度范围和使用建议(0.0-0.3 保守,0.4-0.7 平衡,0.8+ 创意)

## 使用方式

在 .env 文件中配置:
```bash
# Gemini 温度参数(可选,默认 0.7)
GEMINI_TEMPERATURE=0.7

# OpenAI 温度参数(可选,默认 0.7)
OPENAI_TEMPERATURE=0.7
```

## 温度参数说明

- **0.0-0.3**: 更保守、确定性强(适合技术分析)
- **0.4-0.7**: 平衡模式(推荐,默认)
- **0.8-1.2**: 更有创意、多样性强
- **1.3-2.0**: 非常随机(不推荐用于股票分析)

## 兼容性

- 向后兼容:未配置时使用默认值 0.7
- 不影响现有功能,仅增加配置灵活性

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-25 18:13:39 +08:00
adminlove520
e03ca23ef7 fix: remove merge conflict markers from main.py 2026-01-25 18:10:41 +08:00
adminlove520
f8984864d0 Merge remote-tracking branch 'upstream/main' into feat/discord-bot 2026-01-25 18:06:18 +08:00
zhulinsen
07e1a4bfaa docs: update documentation for v2.1.0 features
- Add Discord notification channel to README, full-guide, and README_EN
  - Add MACD/RSI technical indicators to trading philosophy section
  - Simplify README config table, move advanced options to full-guide
  - Rewrite CHANGELOG v2.1.0 with complete feature list:
    - US stock support
    - MACD/RSI indicators
    - Discord push support
    - DingTalk bot command interaction
    - Data source failover mechanism
  - Add Discord configuration guide (Webhook + Bot API)
  - Add push behavior settings (SINGLE_STOCK_NOTIFY, REPORT_TYPE, ANALYSIS_DELAY)
2026-01-25 18:05:02 +08:00
adminlove520
6273ca0b6e Merge upstream/main into feat/discord-bot 2026-01-25 17:34:05 +08:00
adminlove520
b9f52f1550 fix: remove merge conflict marker from notification.py 2026-01-25 17:26:35 +08:00
zhulinsen
35526a2183 fix(notification): fix incomplete market review push issue
- Add support for ## headings and ** bold text in message chunking logic
  - Increase batch send interval to 2.5s to avoid rate limiting
2026-01-25 17:15:26 +08:00
zhulinsen
0541c6f408 fix: update CI paths and bump version to v2.1.0
- 🐛 CI: Fix python-m py_compile paths in workflow and test.sh
- 📝 Docs: Update Roadmap order in READMEs
- 🔖 Version: Update CHANGELOG to v2.1.0
v2.1.0
2026-01-25 16:45:25 +08:00
zhulinsen
9f0871a774 refactor: project structure optimization and network stability (v1.7.0)
- 📦 Structure: Move core modules to src/, docs to docs/, docker configs to docker/
- 🔧 Config: Fix .env loading path and remove hardcoded proxy settings
- 🌐 Network: Implement smart proxy routing (auto NO_PROXY for domestic apis)
- 🛡️ Stability: Enhance EfinanceFetcher with robust retry logic for ProtocolErrors
- 📝 Docs: Update relative links in READMEs and update CHANGELOG to v1.7.0
2026-01-25 16:35:32 +08:00
mumu
2f11157958 Merge pull request #136 from kaikee-snow-star/main
增加MACD RSI  指标,修复数据库不关闭bug,修改分值为100
2026-01-25 15:03:28 +08:00
adminlove520
d2582ed336 Merge upstream/main into feat/discord-bot
Resolve conflicts in config.py and notification.py:
- config.py: Merge realtime quote configuration and Discord bot status
- notification.py: Add markdown2 import and enhance single stock report with risk alerts, catalysts, and operation points
2026-01-25 14:00:22 +08:00
adminlove520
8be81c4d46 Refactor Discord bot to platform adapter architecture
- Created analyzer_service.py to decouple core analysis logic
- Removed Discord bot initialization from notification.py
- Updated main.py to use analyzer_service
- Integrated Discord support into unified bot framework
- Fixed circular import issues
- Added Discord to NotificationChannel enum
- Updated ChannelDetector to support Discord
2026-01-25 13:49:51 +08:00
kaikee
29bc0c667c feat: 添加 MACD 和 RSI 技术指标优化交易策略
- 新增 MACD 指标:零轴上金叉、金叉死叉、零轴穿越检测
- 新增 RSI 指标:超买超卖判断 (6/12/24周期)
- 优化评分系统:调整为 100分制
  - 趋势(30分) + 乖离率(20分) + 量能(15分)
  - 支撑(10分) + MACD(15分) + RSI(10分)
- 修复数据库连接未关闭问题:添加 atexit 钩子清理引擎
- 扩展 TrendAnalysisResult 数据模型包含 MACD/RSI 字段

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-25 11:46:57 +08:00
zhulinsen
c9272c55ea fix(notification): 修复邮件中表格不渲染及排版松散问题 (fixes #134)
- 引入 markdown2 库替代简单的正则替换,支持 Markdown 表格渲染
  - 重构邮件 HTML 生成逻辑,添加完整的 CSS 样式支持
  - 优化邮件排版,调整间距使内容更加紧凑易读
  - 增加表格边框、隔行变色等样式,提升数据展示效果
2026-01-25 11:44:47 +08:00
kaikee
6d81005d49 新增功能概述
┌──────┬────────────────────┬─────────────────────────────────────────────────┐
  │ 指标 │        功能        │                    信号类型                     │
  ├──────┼────────────────────┼─────────────────────────────────────────────────┤
  │ MACD │ 趋势确认和金叉死叉 │ 零轴上金叉、金叉、上穿零轴、多头✓、死叉 │
  ├──────┼────────────────────┼─────────────────────────────────────────────────┤
  │ RSI  │ 超买超卖判断       │ 超卖、强势、中性、弱势、超买⚠️            │
  └──────┴────────────────────┴─────────────────────────────────────────────────┘
  更新后的评分系统

  综合评分(100分制):
  ├── 趋势(30分):多头排列得分高
  ├── 乖离率(20分):接近 MA5 得分高
  ├── 量能(15分):缩量回调得分高
  ├── 支撑(10分):获得均线支撑得分高
  ├── MACD(15分):金叉和多头得分高  ← 新增
  └── RSI(10分):超卖和强势得分高    ← 新增

  主要代码变更

  1. 新增枚举类 (stock_analyzer.py:60-77)
    - MACDStatus: 7种MACD状态
    - RSIStatus: 5种RSI状态
  2. 扩展数据模型 (stock_analyzer.py:113-125)
    - MACD: DIF, DEA, BAR, status, signal
    - RSI: RSI(6), RSI(12), RSI(24), status, signal
  3. 计算方法
    - _calculate_macd(): 标准12/26/9参数计算MACD
    - _calculate_rsi(): 计算6/12/24周期RSI
  4. 分析方法
    - _analyze_macd(): 判断金叉死叉、零轴穿越
    - _analyze_rsi(): 判断超买超卖
  5. 信号生成 (stock_analyzer.py:582-718)
    - MACD评分15分:零轴上金叉(15) > 金叉(12) > 上穿零轴(10)
    - RSI评分10分:超卖(10) > 强势(8) > 中性(5)
  6. 格式化输出 (stock_analyzer.py:720-775)
    - 新增MACD和RSI显示区域
2026-01-25 11:37:36 +08:00
mumu
711a2a9343 Merge pull request #135 from jhhd88/patch-1
Update daily_analysis.yml with new configurations
fix #133
2026-01-25 10:49:30 +08:00
Michael Kane
b959e7b9af Update daily_analysis.yml with new configurations 2026-01-24 23:33:52 +08:00
zhulinsen
6788b05eab refactor(data_provider): 优化实时行情代码结构与缓存机制
- 提取 safe_float/safe_int 到 realtime_types.py 统一维护
  - 删除 akshare_fetcher.py 和 efinance_fetcher.py 中 7 处重复定义
  - 添加缓存命中/刷新日志,便于调试
  - 在 bulk_sources 列表添加 TODO 注释说明扩展规则
  - 引入 DataFetcherManager 实现多源(Akshare/Efinance/Sina/Tencent)自动切换与熔断

  Closes #132, #109, #108
2026-01-24 23:14:58 +08:00
Jealh
c3c5c84d70 chore: readme 更新微信消息类型 2026-01-24 22:26:19 +08:00
Jealh
608518af0b Merge branch 'main' of https://github.com/Jealh-h/daily_stock_analysis into feat/add-text-wechat-msg-type 2026-01-24 22:16:05 +08:00
adminlove520
2bad03a702 Add Discord bot configuration documentation 2026-01-24 20:14:25 +08:00
adminlove520
0f2bc0291d Resolve conflicts with upstream/main and update Discord bot configuration 2026-01-24 20:00:35 +08:00
adminlove520
6b62a76e93 Refactor Discord bot into platform adapter 2026-01-24 19:50:54 +08:00
adminlove520
7afc58854b Remove standalone discord_bot.py and integrate Discord functionality into notification.py 2026-01-24 19:39:32 +08:00
zhulinsen
94552ba6f3 docs: 更新 README 文档适配美股功能 2026-01-24 18:46:25 +08:00
zhulinsen
7a7695d88a feat: 新增美股分析支持
- 支持 1-5 个大写字母的美股代码(如 AAPL, TSLA, GOOGL)
  - 支持特殊股票类别(如 BRK.B)
  - YfinanceFetcher 实现美股数据获取
  - AkshareFetcher 跳过不支持的美股接口调用
  - WebUI、Bot命令、API接口全面适配美股验证
  - 报告标题从A股改为股票以适配多市场

  close #18
v2.0.0
2026-01-24 18:32:45 +08:00
birdxs
27eaa61610 Merge branch 'ZhuLinsen:main' into main 2026-01-24 17:09:58 +08:00
zhulinsen
80f2da0ff9 fix: 修复 analysis_delay 未定义错误
- 在 run() 方法中添加 analysis_delay 变量定义
- 从配置读取 analysis_delay 值
- 修复静态检查 F821 错误
2026-01-24 14:53:55 +08:00