每日股票分析:LLM驱动的多市场股票情报系统

一个由LLM驱动的多市场分析系统,具备实时新闻、决策仪表盘和自动化通知。48K stars。支持零成本定时运行。

  • 更新于 2026-06-25

每日股票分析:LLM驱动的多市场股票情报 #

每日股票分析 是一个开源的、由LLM驱动的股票分析系统,提供多市场情报,包括实时新闻聚合、自动化决策仪表盘和智能通知系统。凭借 48,278 个 GitHub Stars,它已成为寻求机构级分析的个人投资者中最受欢迎的量化交易工具之一。

本文涵盖安装、市场数据来源、LLM集成、仪表盘配置、自动化分析和部署策略。

TL;DR #

每日股票分析将实时市场数据、新闻情绪分析和LLM驱动的见解整合到一个统一的决策平台上。它支持包括美股、A股、加密货币和期货在内的多个市场。该系统可以完全免费运行定时自动化分析,让每个人都能获得机构级别的股票研究。

什么是每日股票分析? #

每日股票分析是一个全面的股票情报平台,利用大语言模型来分析市场数据、新闻情绪和技术指标。与仅显示价格走势的传统图表工具不同,该系统提供上下文分析,解释市场为何波动以及接下来可能发生什么。

该平台支持多个市场和数据源:

  • 美国市场:纽约证券交易所、纳斯达克,支持实时和延迟数据
  • A股:上海和深圳证券交易所,全面覆盖
  • 加密货币:包括币安、Coinbase和Kraken的主要交易所
  • 期货与大宗商品:石油、黄金、农产品和指数
  • 外汇:主要货币对,支持实时汇率

安装指南 #

前置条件 #

  • Python:3.10+(推荐3.11)
  • 数据库:PostgreSQL 14+ 或 SQLite(轻量级设置)
  • LLM API:OpenAI、Anthropic 或通过Ollama的本地模型
  • 市场数据API:Tushare(A股)、AKShare(免费)或付费提供商
  • 系统:最低8GB RAM,SQLite模式4GB

选项一:Docker部署(最简单) #

# 克隆仓库
git clone https://github.com/ZhuLinsen/daily_stock_analysis.git
cd daily_stock_analysis

# 配置环境变量
cp .env.example .env
# 用你的API密钥编辑.env

# 启动所有服务
docker compose up -d

# 检查状态
docker compose ps

选项二:手动安装 #

# 克隆仓库
git clone https://github.com/ZhuLinsen/daily_stock_analysis.git
cd daily_stock_analysis

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Linux/Mac
# 或
venv\Scripts\activate     # Windows

# 安装依赖
pip install -r requirements.txt

# 设置数据库
python setup_database.py --init

# 配置LLM和数据源
cp config.example.yaml config.yaml
# 用你的设置编辑config.yaml

# 运行首次分析
python main.py --market us --date $(date +%Y-%m-%d)

选项三:本地LLM设置(免费) #

对于希望完全避免API费用的用户:

# 安装Ollama用于本地LLM推理
curl -fsSL https://ollama.ai/install.sh | sh

# 拉取合适的模型
ollama pull qwen2.5:14b

# 更新config.yaml以使用本地模型
cat >> config.yaml << EOF
llm:
  provider: ollama
  model: qwen2.5:14b
  base_url: http://localhost:11434
EOF

# 以零API成本运行分析
python main.py --market a_shares --date $(date +%Y-%m-%d)

市场数据集成 #

AKShare集成(免费A股数据) #

AKShare提供免费的中国市场数据访问,无需任何API密钥:

import akshare as ak

# 获取每日A股市场数据
df = ak.stock_zh_a_spot_em()
print(df.head())

# 获取历史价格数据
hist_df = ak.stock_zh_a_hist(
    symbol="000001",
    period="daily",
    start_date="20260101",
    end_date="20260625",
    adjust="qfq"
)

# 获取板块表现
sector_df = ak.stock_board_industry_name_em()
print(sector_df)

Tushare集成(高级A股数据) #

对于更全面的基本面A股数据:

import tushare as ts

# 用你的API令牌初始化
pro = ts.pro_api("YOUR_TUSHARE_TOKEN")

# 获取每日A股数据
df = pro.daily(
    ts_code="000001.SZ",
    start_date="20260101",
    end_date="20260625"
)

# 获取财务报表
income_df = pro.income(
    ts_code="000001.SZ",
    period="20260331",
    fields="total_operating_income,net_profit,total_expense"
)

# 获取股东信息
holder_df = pro.stock_holder_top10(
    ts_code="000001.SZ",
    ann_date="20260331"
)

美国市场数据 #

import yfinance as yf

# 获取美股数据
ticker = yf.Ticker("AAPL")
df = ticker.history(period="3mo")

# 获取期权链
options = ticker.options

# 获取分析师推荐
recommendations = ticker.recommendations

# 获取新闻情绪
news = ticker.news
for item in news:
    print(f"{item['title']}: {item['providerPublishTime']}")

加密货币数据 #

import ccxt

# 连接到交易所
exchange = ccxt.binance({
    'apiKey': 'YOUR_API_KEY',
    'secret': 'YOUR_SECRET',
})

# 获取行情数据
ticker = exchange.fetch_ticker('BTC/USDT')
print(f"价格: {ticker['last']}")
print(f"成交量: {ticker['quoteVolume']}")

# 获取订单簿
order_book = exchange.fetch_order_book('ETH/USDT')
print(f"买单: {order_book['bids'][0][0]}")
print(f"卖单: {order_book['asks'][0][0]}")

LLM驱动分析 #

情绪分析管道 #

每日股票分析的核心是其LLM驱动的情绪分析管道:

from daily_stock_analysis.llm import LLMAnalyzer
from daily_stock_analysis.data import MarketDataProvider

# 初始化组件
llm = LLMAnalyzer(model="gpt-4o", temperature=0.3)
data_provider = MarketDataProvider(source="akshare")

# 获取市场数据和新闻
market_data = data_provider.get_market_data(
    symbol="000001.SZ",
    period="1d",
    indicators=["rsi", "macd", "bollinger"]
)

news_data = data_provider.get_news(
    symbol="000001.SZ",
    days=7,
    sources=["eastmoney", "cls", "cnbc"]
)

# 运行LLM分析
analysis = llm.analyze_market(
    market_data=market_data,
    news_data=news_data,
    prompt_template="comprehensive_analysis"
)

print(f"总体情绪: {analysis.sentiment}")
print(f"置信度: {analysis.confidence:.1%}")
print(f"关键因素: {', '.join(analysis.key_factors)}")
print(f"风险等级: {analysis.risk_level}")

自定义分析提示 #

你可以为不同用例定制LLM分析提示:

# 技术分析提示
tech_prompt = """
分析以下股票技术指标并提供:
1. 趋势方向(看涨/看跌/中性)
2. 关键支撑和阻力位
3. 动能评估
4. 成交量分析解读
5. 总体技术评级(1-10)

数据: {market_data}
"""

# 基本面分析提示
fund_prompt = """
分析以下基本面数据并提供:
1. 收入增长评估
2. 盈利能力评价
3. 债务可持续性
4. 估值比较
5. 总体基本面评级(1-10)

数据: {fundamental_data}
"""

# 综合分析
combined = llm.analyze(
    prompt_template="combined_analysis",
    market_data=market_data,
    fundamental_data=fundamental_data,
    news_data=news_data
)

多市场对比分析 #

同时比较不同市场的股票:

# 比较美股科技股
us_techs = llm.compare_stocks(
    symbols=["AAPL", "MSFT", "GOOGL", "AMZN", "META"],
    market="us",
    comparison_metrics=["pe_ratio", "revenue_growth", "profit_margin"]
)

# 比较A股板块
a_share_sectors = llm.compare_sectors(
    sectors=["新能源", "半导体", "医药", "消费"],
    market="a_shares",
    time_period="1m"
)

仪表盘配置 #

Web仪表盘设置 #

每日股票分析包含内置Web仪表盘:

# 启动仪表盘服务器
python dashboard.py --host 0.0.0.0 --port 8080

# 访问 http://localhost:8080

仪表盘提供:

  • 带有热力图的实时市场概览
  • 带有交互式图表的个股分析
  • 板块表现对比
  • 新闻情绪时间线
  • 自动化分析报告

仪表盘定制 #

# dashboard_config.yaml
dashboard:
  refresh_interval: 300  # 5分钟
  default_market: "a_shares"
  charts:
    - type: "heatmap"
      title: "市场热力图"
      data_source: "sector_performance"
    - type: "line"
      title: "股价历史"
      data_source: "historical_prices"
    - type: "sentiment"
      title: "新闻情绪"
      data_source: "llm_sentiment"
  alerts:
    - threshold: 0.8
      action: "notification"
      channels: ["email", "telegram"]

导出报告 #

# 生成PDF格式的每日报告
python report_generator.py --format pdf --output daily_report.pdf

# 生成带图表的HTML报告
python report_generator.py --format html --output daily_report.html

# 导出分析数据为CSV
python report_generator.py --format csv --output analysis_data.csv

自动化调度 #

Cron任务设置 #

计划自动分析运行:

# 编辑crontab
crontab -e

# 每天早上7点添加每日分析
0 7 * * * cd /path/to/daily_stock_analysis && python main.py --market a_shares --auto

# 美股开盘后添加美国市场分析
0 21 * * 1-5 cd /path/to/daily_stock_analysis && python main.py --market us --auto

# 每周日生成综合报告
0 9 * * 0 cd /path/to/daily_stock_analysis && python weekly_report.py

Systemd服务 #

用于持久后台运行:

# /etc/systemd/system/daily-stock-analysis.service
[Unit]
Description=每日股票分析服务
After=network.target postgresql.service

[Service]
Type=simple
User=stockuser
WorkingDirectory=/opt/daily_stock_analysis
ExecStart=/opt/daily_stock_analysis/venv/bin/python main.py --daemon
Restart=always
RestartSec=30

[Install]
WantedBy=multi-user.target
# 启用并启动服务
sudo systemctl enable daily-stock-analysis
sudo systemctl start daily-stock-analysis
sudo systemctl status daily-stock-analysis

通知系统 #

Telegram通知 #

# 配置Telegram机器人
python notify.py --setup telegram \
  --bot-token "${TELEGRAM_BOT_TOKEN}" \
  --chat-id "${TELEGRAM_CHAT_ID}"

# 发送测试通知
python notify.py --send "AAPL每日分析完成" \
  --channel telegram

邮件通知 #

from daily_stock_analysis.notify import Notifier

# 配置邮件通知器
notifier = Notifier(
    provider="smtp",
    smtp_server="smtp.gmail.com",
    smtp_port=587,
    username="your_email@gmail.com",
    password="your_app_password"
)

# 发送分析报告
notifier.send_email(
    to="your_email@gmail.com",
    subject="每日股票分析报告",
    body=analysis_report,
    attach_pdf=True
)

自定义Webhook通知 #

# 发送到自定义webhook(如Slack、Discord)
notifier.send_webhook(
    url="https://hooks.slack.com/services/YOUR/WEBHOOK/URL",
    payload={
        "text": f"分析完成 {symbol}",
        "blocks": [
            {
                "type": "section",
                "text": {
                    "type": "mrkdwn",
                    "text": f"*{symbol}* - 情绪: {sentiment}"
                }
            }
        ]
    }
)

对比:每日股票分析 vs 替代品 #

功能每日股票分析TradingView万得金融同花顺
价格免费$15-60/月¥5,000+/年¥3,000+/年
开源
LLM分析内置基础
多市场仅中国仅中国
API访问完整REST付费API有限有限
自定义脚本Pine Script
自托管
A股支持全面基础完整完整

局限性 #

  • LLM依赖:分析质量取决于LLM提供商的能力与准确性
  • 数据延迟:免费数据源可能与付费实时数据源存在延迟
  • 市场覆盖:虽然广泛,但并非所有小盘股或异类证券都被覆盖
  • 合规性:用户需确保其分析工具符合当地法规
  • 历史表现免责声明:LLM分析仅供参考,不应视为财务建议

入门清单 #

# 1. 克隆仓库
git clone https://github.com/ZhuLinsen/daily_stock_analysis.git
cd daily_stock_analysis

# 2. 设置环境
cp .env.example .env
# 添加你的API密钥

# 3. 安装依赖
pip install -r requirements.txt

# 4. 初始化数据库
python setup_database.py --init

# 5. 运行首次分析
python main.py --market a_shares --date $(date +%Y-%m-%d)

# 6. 启动仪表盘
python dashboard.py --port 8080

# 7. 设置自动化调度
crontab -e
# 添加每日分析cron任务

结论 #

每日股票分析弥合了机构级股票研究与个人投资者可访问性之间的差距。通过利用LLM技术和免费数据源,它提供了传统上需要昂贵的彭博终端或万得金融系统的全面多市场分析。

无论你是经验丰富的量化交易者还是探索市场的新手,每日股票分析都提供了做出明智决策所需的工具和见解。它的开源性质确保了透明度,而其活跃社区保证了持续的改进和支持。

来源 #

CTA #

从今天开始你的免费股票分析之旅。访问GitHub仓库开始使用。对于托管你的分析系统,考虑在HTStack上使用实惠的VPS托管,或使用DigitalOcean的托管云服务。

对于需要本地LLM推理GPU资源的中文用户,虎网云提供低至¥0.5/小时的实惠GPU服务器。

FAQ #

问:我可以零成本使用这个系统吗? #

答:可以。通过使用AKShare获取免费A股数据、Ollama进行本地LLM推理、SQLite替代PostgreSQL,你可以零成本运行整个系统。唯一的要求是有互联网连接和能运行Python的电脑。

问:哪个LLM模型推荐用于股票分析? #

答:为了获得最佳结果,建议使用GPT-4o或Claude Sonnet进行全面分析。对于本地部署,Qwen2.5 14B或32B模型在质量和速度之间提供了良好的平衡。系统支持任何OpenAI兼容的API端点。

问:我应该多久运行一次分析? #

答:对于A股,建议在开盘前(北京时间早上7-8点)进行每日分析。对于美股,建议在收盘后(北京时间晚上11点)运行分析。加密货币市场24/7运行,因此每小时或实时分析更有利。

问:我可以添加自己的自定义指标吗? #

答:可以。系统通过Python插件支持自定义技术指标。你可以定义自己的公式,在历史数据上进行回测,并将其集成到LLM分析管道中。

问:该系统是否适合算法交易? #

答:虽然每日股票分析提供了出色的研究和分析能力,但它主要设计用于信息目的。对于算法交易,你需要将其输出与交易执行系统集成并实施适当的风险管理协议。

问:它是否支持期权和期货分析? #

答:系统通过CCXT和市场数据提供商包括基本的期权和期货数据支持。然而,高级衍生品分析功能仍在开发中。请在GitHub issues页面查看衍生品支持的最新更新。

📦 出现在以下合集中

💬 留言讨论