市场代理-电报+雅虎财经+克劳德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/Eastern2.安装
选项A:直接安装Python
pip install -r requirements.txt
python market_agent.py选项B:Docker部署
docker-compose up -d3.获取Telegram凭据
- 机器人令牌:在Telegram上发送消息@BotFather以创建新的机器人
- 聊天ID:将您的机器人添加到群组或直接发送消息,然后访问:
https://api.telegram.org/bot/getUpdates
4.获取Anthropic API密钥
- 访问 拟人控制台
- 创建API密钥
- 将其添加到您的
.env文件
5.获取NewsAPI密钥(可选)
- 访问 新闻API注册
- 注册一个免费帐户
- 复制API密钥
- 将其添加到您的
.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 ETFQQQ-纳斯达克100 ETFVXX-VIX波动性ETFSVXY-短期VIX ETFARKG-ARK基因组革命ETFIWM-罗素2000 ETF- 来自FRED API的国债收益率(100万、300万、600万、1年、2年、3年、5年、7年、10年、20年、30年)
额外票务:通过添加任何雅虎财经股票代码 EXTRA_TICKERS
用法
手动执行
python market_agent.pyDocker部署
# 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时)
日志级别:信息、警告、错误
故障排除
常见问题
- “缺少必需的环境变量”
- 检查你的 .env 文件存在并包含所有必需的变量
- “电报发送失败”
- 验证机器人令牌和聊天ID - 确保机器人已添加到目标聊天/群组
- “获取自动收报机数据时出错”
- 检查互联网连接 - 验证股票代码是否有效
- “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添加功能
- 新票务:添加到
EXTRA_TICKERS环境变量 - 自定义日程安排:修改
setup_scheduler()方法 - 消息格式:更新
create_market_summary()方法 - AI提示:在中自定义提示
generate_summary()方法
