实时市场数据服务

TradingView MCP Server 是一个提供全面实时市场数据访问的服务,支持股票、外汇、加密货币等多种金融工具,包括实时报价、历史数据、技术指标和市场分析。

  • by agentis-dev
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 agentis-dev/Trading-View-MCP

使用说明

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密钥(可选但推荐)

  1. Finnhub (免费套餐:60次通话/分钟)

    • 访问:https://finnhub.io/
    • 获取免费的API密钥
    • 增添 .env: FINNHUB_API_KEY=your_key_here
  2. 阿尔法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");

错误处理和弹性

自动回退

  1. 主要的,重要的:Finnhub(如果提供API密钥)
  2. 次要的:Alpha Vantage(如果提供API密钥)
  3. 后备方案:雅虎财经(始终可用)

速率限制保护

  • 智能请求排队
  • 指数回退自动重试
  • 每源速率限制跟踪

数据验证

  • 实时数据质量检查
  • 自动不良数据过滤
  • 跨源验证

支持的市场

股票

  • 美国股票(纽约证券交易所、纳斯达克)
  • 国际市场(主要交易所)
  • 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日志记录
  • 可配置的日志级别
  • 性能指标
  • 误差跟踪

贡献

  1. 分叉存储库
  2. 创建特征分支
  3. 添加综合测试
  4. 更新文档
  5. 提交拉取请求

许可证

MIT许可证-有关详细信息,请参阅许可证文件

免责声明

本软件仅用于教育和信息目的。市场数据可能会延迟或不准确。在做出财务决策之前,始终核实官方来源的数据。作者不对基于这些数据做出的任何交易损失或财务决策负责。

支持

  • GitHub问题:用于错误报告和功能请求
  • 文件:见 /docs API详细文档的文件夹
  • 示例:检查 /examples 实现示例文件夹