市场摘要自动化代理

一个结合Yahoo Finance数据、Claude LLM摘要和Telegram消息传递的自动化市场摘要代理,定时提供主要指数的简明市场洞察。

  • by Anderche
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Anderche/ai_agent_mcp_stocks

使用说明

市场代理-电报+雅虎财经+克劳德MCP

一个MCP风格的代理,每天两次自动化主要指数(SPX、NDX、VIX、SVIX)的市场摘要,并通过Telegram提供简洁的警报。结合雅虎财经数据、Claude LLM摘要和预定消息,以获得可靠、低噪音的市场洞察。

特性

  • 自动调度:开市(美国东部时间9:31)和收盘(美国中部时间16:01)运行
  • 核心指数跟踪:SPX、NDX、VIX、SVIX,可选附加股票代码
  • AI总结:克劳德3.5十四行诗生成简洁、事实性的总结
  • 交易日检测:自动跳过周末和节假日
  • 电报集成:具有重试逻辑的可靠消息传递
  • 错误处理:全面的日志记录和优雅的错误恢复

快速开始

1.环境设置

复制示例环境文件并配置令牌:

cp env_example.txt .env

编辑 .env 使用您的凭据:

TELEGRAM_BOT_TOKEN=your_telegram_bot_token_here
TELEGRAM_CHAT_ID=your_telegram_chat_id_here
ANTHROPIC_API_KEY=your_anthropic_api_key_here
NEWS_API_KEY=your_news_api_key_here
FRED_API_KEY=your_fred_api_key_here
EXTRA_TICKERS=AAPL,MSFT,GOOGL
TIMEZONE=US/Eastern

2.安装

选项A:直接安装Python

pip install -r requirements.txt
python market_agent.py

选项B:Docker部署

docker-compose up -d

3.获取Telegram凭据

  1. 机器人令牌:在Telegram上发送消息@BotFather以创建新的机器人
  2. 聊天ID:将您的机器人添加到群组或直接发送消息,然后访问: https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates

4.获取Anthropic API密钥

  1. 访问 拟人控制台
  2. 创建API密钥
  3. 将其添加到您的 .env 文件

5.获取NewsAPI密钥(可选)

  1. 访问 新闻API注册
  2. 注册一个免费帐户
  3. 复制API密钥
  4. 将其添加到您的 .env 归档 NEWS_API_KEY

备注:如果没有NewsAPI密钥,增强的代理将显示与新闻相关的查询的“未配置新闻API密钥”。

配置

环境变量

变量 必填 描述
TELEGRAM_BOT_TOKEN 是 您的Telegram机器人令牌
TELEGRAM_CHAT_ID 是 目标聊天/群ID
ANTHROPIC_API_KEY 是 Claude的Anthropic API密钥
NEWS_API_KEY 否 财经新闻的NewsAPI密钥(免费获取https://newsapi.org/register)
FRED_API_KEY 没有 FRED API密钥用于财政部收益率数据(免费获取https://fred.stlouisfed.org/docs/api/api_key.html)
EXTRA_TICKERS 否 逗号分隔的其他股票代码
TIMEZONE 否 时区(默认:美国/东部)
AGENT_MODE 否 代理模式: standard (基本市场数据)或 enhanced (MCP集成、自主研究)

支持的票务

核心指标 (始终包括在内):

  • SPY -标普500 ETF
  • QQQ -纳斯达克100 ETF
  • VXX -VIX波动性ETF
  • SVXY -短期VIX ETF
  • ARKG -ARK基因组革命ETF
  • IWM -罗素2000 ETF
  • 来自FRED API的国债收益率(100万、300万、600万、1年、2年、3年、5年、7年、10年、20年、30年)

额外票务:通过添加任何雅虎财经股票代码 EXTRA_TICKERS

用法

手动执行

python market_agent.py

Docker部署

# Start the service
docker-compose up -d

# View logs
docker-compose logs -f

# Stop the service
docker-compose down

系统服务(Linux)

创建 /etc/systemd/system/market-agent.service:

[Unit]
Description=Market Agent
After=network.target

[Service]
Type=simple
User=your-user
WorkingDirectory=/path/to/market-agent
ExecStart=/usr/bin/python3 market_agent.py
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

启用并启动:

sudo systemctl enable market-agent
sudo systemctl start market-agent

消息格式

代理通过以下方式发送结构化消息:

  • 头球:时间戳和会话类型
  • AI摘要:克劳德的7行事实摘要
  • 外卖:最后强调了关键见解

例子:

📊 Market Pre Summary - 2024-01-15 09:31 ET

S&P 500 opens at 4,750 (+0.2%) with VIX at 18.5 (-5.2%).
NASDAQ 100 shows similar strength at 16,200 (+0.3%).
Volatility indicators suggest calm market conditions.
SVIX at 12.3 indicates low short-term volatility expectations.

Takeaway: Markets opening with modest gains and low volatility.

日志记录

日志将写入:

  • 控制台输出
  • market_agent.log 文件
  • Docker日志(使用Docker时)

日志级别:信息、警告、错误

故障排除

常见问题

  1. “缺少必需的环境变量”

    • 检查你的 .env 文件存在并包含所有必需的变量
  2. “电报发送失败”

    • 验证机器人令牌和聊天ID
    • 确保机器人已添加到目标聊天/群组
  3. “获取自动收报机数据时出错”

    • 检查互联网连接
    • 验证股票代码是否有效
  4. “AI摘要不可用”

    • 验证Anthropic API密钥是否有效
    • 检查API配额和账单

调试模式

将日志级别设置为DEBUG以获取详细信息:

logging.basicConfig(level=logging.DEBUG)

发展

项目结构

market_agent/
├── market_agent.py      # Main application
├── requirements.txt     # Python dependencies
├── Dockerfile          # Docker configuration
├── docker-compose.yml  # Docker Compose setup
├── env_example.txt     # Environment template
└── README.md          # This file

添加功能

  1. 新票务:添加到 EXTRA_TICKERS 环境变量
  2. 自定义日程安排:修改 setup_scheduler() 方法
  3. 消息格式:更新 create_market_summary() 方法
  4. AI提示:在中自定义提示 generate_summary() 方法