TradingView Realtime Data

SkillCommerce & finance

Get realtime market prices, indicators, and screener data from TradingView without official API.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the TradingView Realtime Data skill

About this capability

About AI quantitative trading platform for crypto, stocks, and forex with backtesting, live trading, market data, and multi-agent research.vibe-trading ,trading-agents,ai-trader,ai-trading

What this skill tells your AI

The instructions your AI receives, as published by signal-execution-labs/forex-trading-ai-agent in skills/tradingview-realtime/SKILL.md and read by ahel’s review.

Get realtime market prices, indicators, and screener data from TradingView without official API.

Features

  • Realtime Prices: WebSocket streaming for any TradingView symbol
  • Indicators: Get values from any indicator (RSI, MACD, MAs, custom)
  • Screener Data: Access TradingView stock/crypto screeners
  • Chart Data: Historical OHLCV data
  • No API Key Required: Uses public TradingView data

How It Works

Based on TradingView's WebSocket protocol (unofficial API):

  • Connect to wss://data.tradingview.com/socket.io/websocket
  • Subscribe to symbol quotes and indicators
  • Receive realtime updates

Usage

Get Realtime Quote

import { TradingViewClient } from './tradingview-client';

const tv = new TradingViewClient();
await tv.connect();

// Subscribe to Bitcoin price
tv.subscribeQuote('BINANCE:BTCUSDT', (data) => {
  console.log(`BTC: $${data.lp} (${data.ch > 0 ? '+' : ''}${data.chp}%)`);
});

// Get multiple symbols
tv.subscribeQuotes(['NASDAQ:AAPL', 'NASDAQ:TSLA', 'FX:EURUSD']);

Get Indicator Values

// Get RSI value for any timeframe
const rsi = await tv.getIndicator('BINANCE:BTCUSDT', 'RSI', {
  timeframe: '1H',
  length: 14
});
console.log(`RSI(14): ${rsi.value}`);

// Get multiple indicators
const indicators = await tv.getIndicators('BINANCE:BTCUSDT', [
  { name: 'RSI', params: { length: 14 } },
  { name: 'MACD', params: { fast: 12, slow: 26, signal: 9 } },
  { name: 'EMA', params: { length: 50 } },
  { name: 'BB', params: { length: 20, stdDev: 2 } }
]);

Screener Data

// Get top gainers from crypto screener
const gainers = await tv.getScreener('crypto', {
  sort: { sortBy: 'change', sortOrder: 'desc' },
  filter: { change: { gte: 5 } },
  limit: 20
});

// Stock screener with custom filter
const stocks = await tv.getScreener('america', {
  filter: {
    'market_cap_basic': { gte: 1e9 },
    'RSI': { lte: 30 },
    'change': { lte: -5 }
  },
  columns: ['name', 'close', 'change', 'volume', 'RSI', 'market_cap_basic']
});

Historical Data

// Get OHLCV bars
const bars = await tv.getBars('BINANCE:BTCUSDT', {
  timeframe: '1D',
  from: Date.now() - 30 * 24 * 60 * 60 * 1000, // 30 days
  to: Date.now()
});

Available Data Fields

Quote Data

FieldDescription
lpLast price
chPrice change
chpChange percent
volumeVolume
bidBid price
askAsk price
highDaily high
lowDaily low
openOpen price

Common Indicators

  • RSI, Stochastic, CCI, MFI, Williams %R
  • MACD, ADX, Aroon, Awesome Oscillator
  • SMA, EMA, WMA, VWMA
  • Bollinger Bands, Keltner Channel, Donchian
  • ATR, Parabolic SAR, Ichimoku
  • Volume, OBV, VWAP

Configuration

tradingview:
  # Session token for premium features (optional)
  session_token: null

  # Reconnect settings
  reconnect_attempts: 5
  reconnect_delay_ms: 5000

  # Rate limiting
  max_subscriptions: 50
  request_delay_ms: 100

# Symbols to track
watchlist:
  - BINANCE:BTCUSDT
  - BINANCE:ETHUSDT
  - NASDAQ:AAPL
  - FX:EURUSD
  - COMEX:GC1!

Integration with K.I.T.

Market Analysis Skill

// Get comprehensive market overview
const analysis = await kit.skills.tradingviewRealtime.analyze('BINANCE:BTCUSDT');
// Returns: { price, indicators, trend, support, resistance }

Signal Generation

// Use TradingView indicators for signals
kit.on('tradingview:indicator', (data) => {
  if (data.symbol === 'BTCUSDT' && data.RSI < 30) {
    kit.emit('signal:buy', { symbol: data.symbol, reason: 'RSI oversold' });
  }
});

Multi-Source Confirmation

// Combine with exchange data for confirmation
const tvPrice = await tv.getQuote('BINANCE:BTCUSDT');
const exchangePrice = await binance.getPrice('BTCUSDT');
const slippage = Math.abs(tvPrice.lp - exchangePrice) / exchangePrice * 100;

Rate Limits & Best Practices

  • Max ~50 symbol subscriptions per connection
  • Use batch requests where possible
  • Cache indicator values (update every few seconds, not milliseconds)
  • Implement reconnection logic for connection drops
  • Don't hammer the WebSocket (1 request per 100ms minimum)

Resources

Disclaimer

This uses unofficial/undocumented TradingView APIs. It may break without notice. For production trading, consider official exchange APIs for price data. TradingView data is best used for indicators and screeners.

Signals

GitHub stars
136
Forks
870
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
tradingview-realtime
Source
github.com/signal-execution-labs/forex-trading-ai-agent