Stock Analyzer - 股票深度分析工具
快速开始
1. 查询实时行情
# 使用 scripts/stock_query.py
python scripts/stock_query.py --codes 03690.HK,300413.SZ,300251.SZ
返回:股价、涨跌幅、成交量、成交额
2. 获取基本面数据
# 需要先配置聚宽账号
python scripts/jq_login.py --phone 18019786011 --password YOUR_PASSWORD
python scripts/stock_fundamentals.py --codes 300413.SZ,300251.SZ
返回:PE、PB、市值、ROE、营收增长率等
3. 生成分析报告
python scripts/generate_report.py --codes 03690.HK,300413.SZ --output report.md
4. 发送邮件
python scripts/send_email.py --to 496829568@qq.com --file report.md --auth-code YOUR_AUTH_CODE
工作流程
用户请求 → 解析股票代码 → 获取实时行情 → 获取基本面 → 深度分析 → 生成报告 → 发送邮件
步骤详解
Step 1: 解析股票代码
支持格式:
- 港股:
03690.HK、00772.HK(腾讯股票代码格式)
- A股:
300413.SZ、600519.SH(交易所代码格式)
- 简写:
美团、芒果超媒(自动匹配代码)
Step 2: 获取实时行情
使用 AkShare 库:
- A股:
ak.stock_zh_a_spot_em()
- 港股:
ak.stock_hk_spot_em()
Step 3: 获取基本面数据
使用聚宽 JoinQuant API:
get_fundamentals() 获取 PE、PB、市值
get_valuation() 获取估值历史
- 注意:聚宽免费版数据权限有限
Step 4: 深度分析
分析维度:
- 估值分析:PE/PB历史分位、同行业对比
- 趋势分析:近期涨跌幅、成交量变化
- 基本面分析:营收、利润增速、ROE
- 风险提示:异常波动、业绩下滑
Step 5: 生成报告
报告结构(见 references/report_template.md):
- 标题:五大标的买入分析报告
- 摘要:关键结论
- 正文:逐个标的深度分析
- 总结:操作建议
Step 6: 发送邮件
支持:
- QQ邮箱(推荐):smtp.qq.com:465 SSL
- Gmail:smtp.gmail.com:587 STARTTLS
QQ邮箱配置要点:
- 必须使用授权码(非密码)
- 推荐使用 465 端口 SSL
- Python 使用
smtplib.SMTP_SSL
常见问题
Q: 聚宽登录失败?
检查:
- 手机号/密码是否正确
- 账号是否过期(免费版1年有效期)
- 是否有港股数据权限
Q: 邮件发送失败?
常见错误:
Login denied:授权码错误或邮箱地址错误
Connection closed:端口选择错误,尝试 465 SSL
SMTPAuthenticationError:需要开启 SMTP 服务并生成授权码
Q: AkShare 获取数据失败?
可能原因:
- 网络问题:检查代理设置
- 并发限制:逐个查询而非批量
- 数据源维护:稍后重试
依赖安装
pip install akshare jqdatasdk pandas
文件说明
scripts/
stock_query.py - 实时行情查询
stock_fundamentals.py - 基本面数据获取
generate_report.py - 报告生成
send_email.py - 邮件发送
jq_login.py - 聚宽登录配置
references/
report_template.md - 报告模板
stock_codes.md - 常用股票代码对照表
使用示例
示例1:查询美团股价
用户:帮我查一下美团的股价
→ 调用 stock_query.py --codes 03690.HK
→ 返回:美团(03690.HK) HK$80.70 (-1.41%)
示例2:分析多只股票
用户:分析一下美团、芒果超媒、光线传媒
→ 调用 stock_query.py 获取行情
→ 调用 stock_fundamentals.py 获取基本面
→ 生成分析报告
示例3:发送报告到邮箱
用户:把报告发到我邮箱
→ 调用 send_email.py --to 496829568@qq.com --file report.md
→ 使用 QQ 邮箱 SMTP 发送