使用说明
TradingView MCP服务器-完整的实时市场数据实施
此MCP(模型上下文协议)服务器通过多个数据源提供全面的实时市场数据访问,使AI助手能够与实时金融市场数据进行交互。它通过实时报价、历史数据、技术指标和市场分析支持股票、外汇、加密货币和其他金融工具。
特性
全面的市场数据覆盖
- 实时行情:实时买卖价格、交易量和市场数据
- 历史数据:具有多个时间帧(1m、5m、15m、1h、1d、1w、1m)的OHLCV数据
- 技术指标:SMA、EMA、RSI、MACD、布林带等
- 市场分析:支撑/阻力位、趋势分析、波动性指标
- 消息流:实时财经新闻和市场更新
- 经济日历:即将到来的收益、股息和经济事件
多数据源集成
- 雅虎财经:免费实时报价和历史数据
- Finnhub:具有实时WebSocket流的专业级市场数据
- 阿尔法Vantage:技术指标和基本数据
- 内置后备:数据源之间的自动故障转移
实时能力
- WebSocket流媒体:实时价格更新,延迟低于秒
- 智能高速缓存:通过可配置的TTL优化数据检索
- 速率限制:针对API限制的内置保护
- 市场交易时间检测:自动处理市场开盘/收盘时间
安装
# Clone the repository
git clone <repository-url>
cd trading-view-mcp
# Install dependencies
npm install
# Copy environment configuration
cp env.example .env
# Edit .env with your API keys (optional - Yahoo Finance works without keys)
nano .env
配置
API密钥(可选但推荐)
-
Finnhub (免费套餐:60次通话/分钟)
- 访问:https://finnhub.io/
- 获取免费的API密钥
- 增添
.env:FINNHUB_API_KEY=your_key_here
-
阿尔法Vantage (免费等级:5次通话/分钟)
- 访问:https://www.alphavantage.co/
- 获取免费的API密钥
- 增添
.env:ALPHA_VANTAGE_API_KEY=your_key_here
环境变量
# Required (with fallbacks)
FINNHUB_API_KEY=your_finnhub_api_key
ALPHA_VANTAGE_API_KEY=your_alpha_vantage_key
# Optional Configuration
LOG_LEVEL=info
DEFAULT_DATA_SOURCE=yahoo
ENABLE_REAL_TIME=true
CACHE_TTL_SECONDS=30
运行服务器
# Start the server
npm start
# Development mode with auto-reload
npm run dev
# Test the implementation
npm test
可用工具
市场数据工具
实时报价
getCurrentQuote:获取实时价格、交易量和市场数据getMultipleQuotes:多个交易品种的批量报价getMarketStatus:检查市场是否开放/关闭
历史数据
getHistoricalData:具有灵活时间框架的OHLCV数据getIntradayData:日内交易的分钟级数据getHistoricalQuotes:历史价格点
技术分析
getTechnicalIndicators:计算SMA、EMA、RSI、MACD等。getBollingerBands:带周期的上、中、下波段getSupportResistance:关键价格水平和区域getTrendAnalysis:趋势方向和强度
市场情报
getMarketNews:交易品种的最新财经新闻getEarningsCalendar:即将发布的收益公告getDividendHistory:历史股息支付getAnalystRatings:买入/持有/卖出建议
加密货币
getCryptoQuote:实时加密货币价格getCryptoMarketCap:市值数据getCryptoFearGreed:恐惧与贪婪指数
外汇
getForexRates:货币汇率getForexMajors:主要货币对getEconomicCalendar:经济事件和指标
流媒体工具
subscribeToQuotes:实时价格流subscribeToNews:实时新闻推送unsubscribeFromQuotes:停止价格流
可用资源
动态市场数据
trending-stocks:目前趋势股势头强劲market-movers:最大的赢家和输家earnings-today:今天的收益公告market-overview:总体市场总结(指数、行业)
实时馈送
live-quotes:流行符号的实时报价crypto-markets:实时加密货币市场数据forex-rates:当前外汇汇率market-news:最新财经新闻推送
分析资源
technical-analysis:预先计算的技术指标market-sentiment:情绪分析和市场情绪sector-performance:部门轮换和业绩volatility-metrics:波动率指数和波动率测量
实施示例
基本报价检索
// Get current Apple stock price
const quote = await getCurrentQuote("AAPL");
console.log(`AAPL: $${quote.price} (${quote.change > 0 ? '+' : ''}${quote.changePercent}%)`);
历史数据分析
// Get 1-year daily data for analysis
const data = await getHistoricalData("TSLA", "1d", "1y");
const sma20 = await getTechnicalIndicators("TSLA", "SMA", 20);
实时流媒体
// Subscribe to real-time Apple quotes
await subscribeToQuotes(["AAPL", "GOOGL", "MSFT"]);
// Prices will update automatically via WebSocket
多时间框架分析
// Compare different timeframes
const daily = await getHistoricalData("BTC-USD", "1d", "3m");
const hourly = await getHistoricalData("BTC-USD", "1h", "1w");
const minute = await getIntradayData("BTC-USD", "5m");
错误处理和弹性
自动回退
- 主要的,重要的:Finnhub(如果提供API密钥)
- 次要的:Alpha Vantage(如果提供API密钥)
- 后备方案:雅虎财经(始终可用)
速率限制保护
- 智能请求排队
- 指数回退自动重试
- 每源速率限制跟踪
数据验证
- 实时数据质量检查
- 自动不良数据过滤
- 跨源验证
支持的市场
股票
- 美国股票(纽约证券交易所、纳斯达克)
- 国际市场(主要交易所)
- ETF和共同基金
- 指数(标准普尔500指数、纳斯达克指数、道琼斯指数)
加密货币
- 主要加密货币(BTC、ETH等)
- Altcoins和DeFi代币
- 稳定币(USDT、USDC)
- 实时市值数据
外汇
- 主要货币对(欧元/美元、英镑/美元等)
- 次要和异国情调的配对
- 商品货币
- 中央银行利率
商品
- 贵金属(金、银)
- 能源(石油、天然气)
- 农产品
性能优化
缓存策略
- 级别1:内存缓存(30秒TTL)
- 2级:Redis缓存(5分钟TTL)-如果可用
- 级别3:API响应缓存
WebSocket优化
- 智能连接池
- 带回退功能的自动重新连接
- 订阅管理
- 断开连接期间的消息队列
数据压缩
- Gzip压缩历史数据
- 增量压缩用于实时更新
- 高效的JSON序列化
安全考虑
API密钥管理
- 基于环境的配置
- 旋转支撑
- 安全存储建议
速率限制
- 每客户费率限制
- API配额管理
- 优雅降级
数据隐私
- 不存储用户查询
- 最少记录敏感数据
- 可配置的数据保留
监测和诊断
健康检查
- 数据源可用性
- WebSocket连接状态
- 缓存性能指标
- API配额使用情况
日志记录
- 结构化JSON日志记录
- 可配置的日志级别
- 性能指标
- 误差跟踪
贡献
- 分叉存储库
- 创建特征分支
- 添加综合测试
- 更新文档
- 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件
免责声明
本软件仅用于教育和信息目的。市场数据可能会延迟或不准确。在做出财务决策之前,始终核实官方来源的数据。作者不对基于这些数据做出的任何交易损失或财务决策负责。
支持
- GitHub问题:用于错误报告和功能请求
- 文件:见
/docsAPI详细文档的文件夹 - 示例:检查
/examples实现示例文件夹