基于LLM与量化分析的股票智能分析系统daily_stock_analysis

📅 2026/7/16 12:46:58
基于LLM与量化分析的股票智能分析系统daily_stock_analysis
这次我们来看一个基于AI大模型的股票智能分析系统——daily_stock_analysis。这个开源项目由ZhuLinsen开发专注于用数据驱动的方式分析A股、港股、美股等多市场股票而不是依赖主观感觉。项目最核心的价值在于将LLM大语言模型与量化分析结合提供每日自动化的股票分析报告。支持零成本部署可以通过GitHub Actions实现完全免费的定时运行也支持本地Docker部署和Web界面操作。1. 核心能力速览能力项具体说明支持市场A股、港股、美股、日股、韩股、台股和ETFAI模型支持Anspire、AIHubMix、Gemini、OpenAI兼容、DeepSeek、通义千问、Claude、Ollama本地模型等数据来源TickFlow、AkShare、Tushare、Pytdx、Baostock、YFinance、Longbridge等多源行情数据新闻搜索Anspire、SerpAPI、Tavily、Bocha、Brave、MiniMax、SearXNG等部署方式GitHub Actions零成本、本地运行、Docker部署推送渠道企业微信、飞书、Telegram、Discord、Slack、邮箱硬件要求云端部署无硬件要求本地部署依赖Python环境核心功能AI决策报告、多市场数据聚合、Web工作台、Agent策略问股、自动化推送2. 适用场景与使用边界这个系统特别适合需要定期跟踪多只股票的投资者。如果你每天要手动查看十几只甚至几十只股票的行情、新闻和技术指标这个工具可以大幅提升效率。适合场景个人投资者管理自选股组合量化交易爱好者进行策略验证金融从业者需要快速获取市场洞察想要从主观判断转向数据驱动决策的用户使用边界不提供具体的买卖建议所有分析结果仅供参考数据源稳定性受上游接口影响免费源可能存在限流需要基本的配置能力非完全一键式解决方案分析结果依赖AI模型的准确性和数据质量重要提醒本项目仅供学习和研究使用不构成任何投资建议。股市有风险投资需谨慎。3. 环境准备与前置条件根据不同的部署方式环境要求有所不同3.1 GitHub Actions部署推荐新手GitHub账号基本的Git操作知识至少一个AI模型的API Key如Anspire、AIHubMix等至少一个消息推送渠道的配置3.2 本地部署Python 3.84GB以上内存稳定的网络连接可选CUDA环境如果使用本地AI模型3.3 Docker部署Docker环境Docker Compose可选足够的磁盘空间存储模型和数据4. 安装部署与启动方式4.1 GitHub Actions部署零成本方案这是最推荐的部署方式完全免费且无需服务器# 1. Fork项目到自己的GitHub账户 # 访问https://github.com/ZhuLinsen/daily_stock_analysis # 点击右上角Fork按钮 # 2. 配置Secrets # 进入Fork后的仓库 → Settings → Secrets and variables → Actions # 点击New repository secret添加以下配置需要配置的关键参数AI模型配置至少一个ANSPIRE_API_KEYS: Anspire API Key推荐同时支持模型和搜索AIHUBMIX_KEY: AIHubMix API KeyGEMINI_API_KEY: Google Gemini API KeyOPENAI_API_KEY: OpenAI兼容API Key自选股配置必填STOCK_LIST: 股票代码如600519,hk00700,AAPL,7203.T,005930.KS,2330.TW通知渠道配置至少一个WECHAT_WEBHOOK_URL: 企业微信机器人FEISHU_WEBHOOK_URL: 飞书机器人EMAIL_SENDEREMAIL_PASSWORD: 邮件推送# 3. 启用Actions # Actions标签 → I understand my workflows, go ahead and enable them # 4. 手动测试 # Actions → 每日股票分析 → Run workflow → Run workflow4.2 本地部署适合需要定制化功能或本地数据处理的用户# 克隆项目 git clone https://github.com/ZhuLinsen/daily_stock_analysis.git cd daily_stock_analysis # 安装依赖 pip install -r requirements.txt # 配置环境变量 cp .env.example .env # 编辑.env文件配置API密钥等参数 # 运行分析 python main.py常用运行命令# 调试模式 python main.py --debug # 干跑测试不实际发送通知 python main.py --dry-run # 指定股票分析 python main.py --stocks 600519,hk00700,AAPL,2330.TW # 启动Web界面 python main.py --webui4.3 Docker部署适合希望环境隔离的用户# 使用Docker Compose推荐 docker-compose up -d # 或者直接使用Docker docker run -d --name stock-analysis \ -v $(pwd)/config:/app/config \ -p 8000:8000 \ zhulinsen/daily_stock_analysis:latest5. 功能测试与效果验证部署完成后需要验证系统是否正常工作。以下是完整的测试流程5.1 基础功能测试测试目的验证核心分析功能是否正常操作步骤配置最少3只不同市场的股票如A股、港股、美股各一只运行分析命令python main.py --stocks 600519,hk00700,AAPL观察日志输出确认数据获取和分析过程正常预期结果成功获取股票行情数据AI模型生成分析报告报告包含评分、趋势判断、风险提示等要素成功标准无错误日志生成完整的分析报告报告内容结构清晰包含具体数据支撑5.2 Web界面测试测试目的验证Web工作台功能完整性操作步骤# 启动Web界面 python main.py --webui-only # 访问 http://127.0.0.1:8000功能验证清单[ ] 配置管理页面可正常访问[ ] 股票代码输入和补全功能正常[ ] 历史报告页面可查看过往分析[ ] Agent问股功能可交互[ ] 主题切换浅色/深色正常5.3 推送功能测试测试目的验证消息推送渠道配置正确操作步骤配置至少一个推送渠道推荐先测试邮件运行分析命令检查是否收到推送消息邮件推送验证要点邮件主题包含日期和股票数量正文包含决策仪表盘摘要格式正确无乱码链接可正常访问5.4 Agent策略问股测试测试目的验证智能问答功能操作步骤访问Web界面的/chat页面输入问题如贵州茅台当前技术面如何观察AI回复的准确性和完整性验证标准回复包含具体数据引用分析逻辑清晰支持多轮对话可调用实时行情和技术指标6. 接口API与批量任务项目提供完整的API接口支持程序化调用和批量任务处理。6.1 API服务启动# 启动API服务 python server.py # 或者使用FastAPI方式 uvicorn api.main:app --host 0.0.0.0 --port 80006.2 基础API调用示例获取股票分析报告import requests import json url http://127.0.0.1:8000/api/analyze payload { stocks: [600519, hk00700], include_news: True, include_technical: True } headers { Content-Type: application/json, Authorization: Bearer your_api_key } response requests.post(url, jsonpayload, headersheaders, timeout120) result response.json() print(f分析完成共处理 {len(result[reports])} 只股票) for report in result[reports]: print(f{report[symbol]}: 评分{report[score]}, 趋势{report[trend]})批量任务处理# 批量分析股票列表 def batch_analyze_stocks(stock_list, batch_size5): results [] for i in range(0, len(stock_list), batch_size): batch stock_list[i:ibatch_size] try: response requests.post(url, json{stocks: batch}, timeout180) results.extend(response.json()[reports]) print(f已完成批次 {i//batch_size 1}) except Exception as e: print(f批次 {i//batch_size 1} 处理失败: {e}) return results # 使用示例 all_stocks [600519, 000858, hk00700, AAPL, 7203.T] analysis_results batch_analyze_stocks(all_stocks)6.3 定时任务配置使用GitHub Actions的定时任务# 在.github/workflows/daily-analysis.yml中配置 on: schedule: # 每个工作日18点北京时间运行 - cron: 0 10 * * 1-5 workflow_dispatch: # 允许手动触发本地crontab配置# 编辑crontab crontab -e # 添加以下行工作日18点运行 0 18 * * 1-5 cd /path/to/daily_stock_analysis python main.py7. 资源占用与性能观察7.1 GitHub Actions资源使用在GitHub Actions环境下运行主要资源限制运行时间最长6小时内存7GB RAM存储14GB SSD性能优化建议控制单次分析的股票数量建议不超过20只合理配置数据源优先级避免频繁切换使用缓存减少重复数据请求7.2 本地部署资源占用内存占用观察# 监控Python进程内存使用 ps aux | grep python | grep main.py # 或者使用htop实时监控 htop典型资源占用基础运行200-500MB内存全功能分析1-2GB内存依赖数据量数据库缓存随时间增长建议定期清理7.3 网络资源优化数据源访问策略优先使用本地缓存数据设置合理的请求超时时间配置多个数据源fallback机制避免交易时间段的高频请求8. 常见问题与排查方法问题现象可能原因排查方式解决方案Actions运行失败Secrets配置错误检查Actions日志重新配置API Key和参数股票数据获取失败数据源接口变动查看具体错误信息切换备用数据源或更新依赖AI分析超时模型API响应慢检查网络连接和API限额增加超时时间或更换模型推送消息未收到渠道配置错误测试推送渠道单独功能检查Webhook URL或邮件配置Web界面无法访问端口被占用检查端口占用情况更换端口或关闭冲突程序依赖安装失败网络问题或版本冲突查看pip错误信息使用国内镜像源或调整版本8.1 详细排查步骤API密钥配置问题# 测试API密钥有效性 python -c import os from src.llm.providers.anspire import AnspireProvider provider AnspireProvider(api_keyos.getenv(ANSPIRE_API_KEYS)) print(API密钥测试:, provider.test_connection()) 数据源连接测试# 测试AkShare数据源 python -c import akshare as ak try: data ak.stock_zh_a_spot_em() print(fA股实时数据获取成功共{len(data)}只股票) except Exception as e: print(f数据获取失败: {e}) 9. 最佳实践与使用建议9.1 配置优化建议AI模型选择策略新手推荐使用Anspire或AIHubMix一Key多模型需要高质量分析时使用Claude或GPT-4本地部署推荐Ollama开源模型数据源配置优先级# 推荐的数据源fallback顺序 DATA_SOURCE_PRIORITY { A股: [tushare, akshare, baostock], 港股: [longbridge, akshare], 美股: [yfinance, longbridge] }9.2 股票组合管理自选股配置技巧按行业分散配置避免过度集中包含不同市值的股票大盘、中盘、小盘定期审查和更新股票列表设置合理的分析频率避免过度分析示例股票组合# 均衡型组合示例 600519,000858,601318, # 消费金融 hk00700,hk00941, # 科技港股 AAPL,MSFT, # 美股科技 7203.T,005930.KS # 日韩市场9.3 风险控制设置分析参数调整# 在配置文件中调整风险参数 RISK_CONFIG { max_stocks_per_run: 20, # 单次分析最大股票数 timeout_per_stock: 300, # 单股票分析超时时间 fallback_enabled: True, # 启用降级方案 data_quality_check: True # 数据质量检查 }10. 进阶功能与扩展应用10.1 自定义分析策略项目支持自定义分析策略可以基于技术指标、基本面数据或市场情绪创建个性化分析逻辑# 自定义策略示例 from src.strategies.base import BaseStrategy class CustomTechnicalStrategy(BaseStrategy): def analyze(self, stock_data): # 实现自定义分析逻辑 if stock_data[rsi] 30 and stock_data[volume] stock_data[avg_volume]: return {action: BUY, confidence: 0.8} return {action: HOLD, confidence: 0.5}10.2 与其它系统集成与量化平台集成# 将分析结果导入量化平台 def export_to_quant_platform(analysis_results): for stock in analysis_results: # 生成量化信号 signal { symbol: stock[symbol], action: stock[recommendation], score: stock[score], timestamp: datetime.now().isoformat() } # 发送到量化交易系统 # ...数据导出与分析# 导出历史分析数据用于进一步研究 import pandas as pd from src.utils.history import get_analysis_history history_data get_analysis_history(days30) df pd.DataFrame(history_data) df.to_csv(stock_analysis_history.csv, indexFalse)这个股票分析系统最大的优势在于将复杂的多维度分析自动化让投资者能够基于数据而不是感觉做出决策。无论是个人投资者还是专业机构都能通过这个系统提升投资决策的效率和科学性。建议初次使用者先从GitHub Actions部署开始配置3-5只熟悉的股票进行测试熟悉系统工作流程后再逐步扩展股票数量和功能模块。系统的模块化设计也便于根据实际需求进行功能裁剪和定制开发。