mcpField
T
tradingview

tradingview

github.com/gauss314数据与数据库252326 次安装19 周前更新
代码仓库

关于 tradingview

这是一个通过 TradingView 未公开文档的公共 API 和 HTML 页面获取市场数据的 Python skill。它面向市场数据分析,提供技术指标、筛选、搜索和新闻等 CLI 模式;数据通常有延迟。

主要功能

  1. 01报价与预计算技术指标
  2. 02财务数据、业绩和分析师目标价
  3. 03按条件筛选、排序和分页
  4. 04支持 ISIN、CUSIP 和 CIK 的代码搜索
  5. 05个股及全球市场新闻
  6. 06提取 HTML 子页面数据

适用场景

  1. 01查看某个代码的技术指标
  2. 02按市场和条件筛选金融工具
  3. 03通过标识符搜索证券
  4. 04收集市场新闻和财务数据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/gauss314/skills --skill tradingview

安装后在 Claude Code 中输入/tradingview确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
column_groups.json
markets.json
recommend_ratings.json
scanner_columns.json
references/
COOKBOOK.md
HTML_SCRAPING.md
MARKETS_EXCHANGES.md
NEWS_API.md
REFERENCE.md
SCANNER_COLUMNS.md
SCANNER_FILTERS.md
SYMBOL_SEARCH.md
scripts/
fetch_tradingview.py

详细介绍

TradingView — 通过公共 API 获取市场数据

高级技能,通过 reverse-engineering 发现的 TradingView 公共内部 API提取市场数据——无需 API key,无需身份验证。

TradingView 是全球使用最广泛的市场数据 + 技术分析 + 社交交易平台(活跃用户超过 5,000 万)。此技能提供:

  • Scanner API,约 300 个列:行情、预计算的技术指标、基本面、财报、分析师目标价、汇总评级(买入/卖出)。
  • Symbol Search v3,支持 ISIN、CUSIP、CIK(可与 SEC EDGAR 联接)。
  • 新闻标题(每个标的约 200 条新闻,来源包括 Dow Jones / Reuters 等)。
  • 抓取 16 个以上的 HTML 子页面(technicals、financials-*、forecast、options-chain、ideas 等),并提取 prs.init-data+json。
  • 大规模筛选器,支持筛选条件 + 排序 + 分页(约 10 万个以上的工具)。

⚠️ 法律声明

  • TradingView 未发布这些 API 的官方文档。它们可能会发生变化,恕不另行通知。
  • 在社区追踪的 约 6 年间,变化一直较为渐进——Scanner 的结构自 2017 年起一直保持稳定。
  • 请遵守使用条款。若需大量商业用途,请购买官方 REST API(付费)。
  • 数据存在延迟(通常约 15 分钟)。实时数据通过专有 WebSockets 传输(此处未实现)。

🚀 快速开始

# Quote rapido
py scripts/fetch_tradingview.py quote NASDAQ:GGAL

# Todo-en-uno (6 requests combinadas)
py scripts/fetch_tradingview.py all NASDAQ:GGAL

# Screener masivo
py scripts/fetch_tradingview.py country Argentina --limit 30
py scripts/fetch_tradingview.py sector Finance --market america --limit 20

# News (~200 por simbolo)
py scripts/fetch_tradingview.py news NASDAQ:AAPL

# Symbol Search con ISIN/CUSIP/CIK
py scripts/fetch_tradingview.py search "Galicia"

技能结构

skills/tradingview/
├── SKILL.md                              # Este archivo (guia rapida)
├── references/                           # 8 documentos detallados
│   ├── REFERENCE.md                      # Overview general de la API
│   ├── SCANNER_COLUMNS.md                # Catalogo de 130+ columnas con tablas
│   ├── SCANNER_FILTERS.md                # Operaciones de filtro + queries complejos
│   ├── MARKETS_EXCHANGES.md              # Mercados validos + exchanges por pais
│   ├── NEWS_API.md                       # News API deep dive
│   ├── SYMBOL_SEARCH.md                  # Symbol Search v3 deep dive
│   ├── HTML_SCRAPING.md                  # Extraccion de prs.init-data+json
│   └── COOKBOOK.md                       # 30 recetas listas para copy-paste
├── assets/                               # 4 archivos JSON
│   ├── scanner_columns.json              # Catalogo de columnas con descripciones
│   ├── column_groups.json                # Bundles pre-armados por caso de uso
│   ├── markets.json                      # Mercados validos + cobertura
│   └── recommend_ratings.json            # Mapeo Recommend.* a STRONG_BUY/etc
└── scripts/
    └── fetch_tradingview.py              # Script principal con 24 modos CLI

可用端点(4 个唯一 HTTP 端点,24 种 CLI 模式)

Scanner API(1 个端点,14 种 CLI 模式)

POST https://scanner.tradingview.com/{market}/scan

模式列集合描述
quote SYMquote_basic(14 列)基本行情
quote-extended SYMquote_extended(30 列)行情 + 指标 + 估值
technicals SYMtechnicals(36 列)RSI、MACD、EMAs、SMAs、评级
pivots SYMpivots(17 列)月度枢轴点(5 种方法)
financials SYMfinancials(35 列)资产负债表 + 损益表 + 现金流 + 比率
earnings SYMearnings(12 列)过往财报 + 预测
targets SYMtargets(10 列)目标价 + 分析师建议
performance SYMperformance(18 列)回报率(周/1M/3M/6M/年/YTD/5Y/全部)+ 波动率 + 贝塔
dividends SYMdividends(8 列)收益率 + 每股股息 + 派息率 + 增长
ownership SYMownership(10 列)流通股 + 机构持股 + 内部人士持股 + 做空
screen自定义通用筛选器,支持筛选条件 + 排序 + 分页
country COUNTRYquote_basic某个国家的股票
sector SECTORquote_basic某个行业的股票
market MARKETquote_basic列出整个市场
Symbol Search v3(1 个端点,1 种模式)

GET https://symbol-search.tradingview.com/symbol_search/v3/

模式描述
search QUERY全局搜索,支持 ISIN、CUSIP、CIK、logoid、交易所
News API(1 个端点,3 种模式)

GET https://news-headlines.tradingview.com/v2/headlines

模式描述
news SYM某个标的的新闻标题(最多 200 条)
news-global全球市场新闻标题(最多 200 条)
story STORY_PATH新闻详情/正文(抓取 HTML)
HTML 抓取(1 个端点,1 种模式)

GET https://es.tradingview.com/symbols/{EX}-{SYM}/{path}/

模式描述
subpage SYM PATH获取 HTML + 提取 prs.init-data+json 块
本地目录(3 种模式)
模式描述
columns [GROUP]列出列(全部或指定分组)
groups列出预定义列集合
markets列出有效市场
组合模式(1 种模式)
模式描述
all SYM合并 6 个请求(quote_extended + technicals + financials + earnings + targets + news)

快速用法 — 分类示例

报价与技术指标
py scripts/fetch_tradingview.py quote NASDAQ:GGAL                  # 14 cols
py scripts/fetch_tradingview.py quote-extended NASDAQ:AAPL         # 30 cols
py scripts/fetch_tradingview.py technicals NASDAQ:GGAL             # 36 cols
py scripts/fetch_tradingview.py pivots NASDAQ:AAPL                 # 17 cols
py scripts/fetch_tradingview.py performance NYSE:JPM               # returns W/1M/3M/6M/Y/YTD/5Y/All
财务数据
py scripts/fetch_tradingview.py financials NASDAQ:AAPL             # balance + income + cashflow + ratios
py scripts/fetch_tradingview.py earnings NASDAQ:GGAL               # past + forecast
py scripts/fetch_tradingview.py targets NASDAQ:NVDA                # analyst targets + recos
py scripts/fetch_tradingview.py dividends NYSE:KO                  # yield + DPS + payout
py scripts/fetch_tradingview.py ownership NASDAQ:NVDA              # float + inst + insiders + short
筛选
# Filtros arbitrarios — pasar JSON con la sintaxis del Scanner
py scripts/fetch_tradingview.py screen \
  --filter '[["sector","equal","Finance"],["market_cap_basic","greater",100000000000]]' \
  --sort market_cap_basic:desc --limit 10

# Atajos
py scripts/fetch_tradingview.py country Argentina --limit 30
py scripts/fetch_tradingview.py sector Finance --market america --limit 20
py scripts/fetch_tradingview.py market crypto --limit 20
符号搜索
py scripts/fetch_tradingview.py search "GGAL"                                       # auto type
py scripts/fetch_tradingview.py search "Apple" --type stocks --exchange NASDAQ
py scripts/fetch_tradingview.py search "BTC" --type crypto
py scripts/fetch_tradingview.py search "US3999091008"                                # por ISIN
新闻
py scripts/fetch_tradingview.py news NASDAQ:AAPL                   # hasta 200 items
py scripts/fetch_tradingview.py news-global                        # global headlines
py scripts/fetch_tradingview.py story "/news/DJN_DN20260604009289:0/"  # body de noticia
HTML 抓取
py scripts/fetch_tradingview.py subpage NASDAQ:GGAL technicals     # subpage HTML
py scripts/fetch_tradingview.py subpage NASDAQ:GGAL financials-income-statement
py scripts/fetch_tradingview.py subpage NASDAQ:GGAL options-chain
py scripts/fetch_tradingview.py subpage NASDAQ:GGAL forecast
目录
py scripts/fetch_tradingview.py columns                            # todas las columnas
py scripts/fetch_tradingview.py columns technicals                 # un grupo
py scripts/fetch_tradingview.py groups                             # todos los bundles
py scripts/fetch_tradingview.py markets                            # mercados validos
组合用法
py scripts/fetch_tradingview.py all NASDAQ:GGAL                    # 6 requests en 1
py scripts/fetch_tradingview.py all NASDAQ:GGAL -o ggal_full.json  # guarda a archivo
自定义列
py scripts/fetch_tradingview.py quote NASDAQ:GGAL \
  --columns "name,close,RSI,MACD.macd,Recommend.All,price_target_average"
输出/静默模式
py scripts/fetch_tradingview.py quote NASDAQ:GGAL -o ggal_quote.json   # archivo
py scripts/fetch_tradingview.py quote NASDAQ:GGAL -q                    # silencioso

符号格式

位置格式示例
Scanner / News / Search(JSON APIs){EXCHANGE}:{TICKER}NASDAQ:GGAL、BCBA:YPF、BINANCE:BTCUSDT
HTML 子页面{EXCHANGE}-{TICKER}NASDAQ-GGAL(在 URL 中)

自动转换:脚本在构建 HTML URL 时会将 : 转换为 -。


支持的市场

市场覆盖范围代码示例
global所有市场(100k+)任意 EX:TKR
america美国:NYSE、NASDAQ、AMEX、OTC(15k+)NASDAQ:AAPL
argentinaBCBA / BYMA(300+)BCBA:GGAL
brazilB3 / Bovespa(500+)BMFBOVESPA:PETR4
spainBME(200+)BME:SAN
italyBorsa Italiana(400+)MIL:ENI
germanyXetra / FWB(1k+)XETR:SAP
ukLSE(2k+)LSE:HSBA
franceEuronext Paris(800+)EURONEXT:MC
russiaMOEX(200+)MOEX:SBER
crypto加密货币(50k+)BINANCE:BTCUSDT
forex外汇货币对(1k+)FX:EURUSD
bonds全球债券(TVC)TVC:US10Y

完整详情见 references/MARKETS_EXCHANGES.md。


工具类型(type 字段)

类型描述
stock普通股
dr存托凭证(美国的 ADR、BCBA 的 CEDEAR、BMFBOVESPA 的 BDR)
etf交易所交易基金
fund共同基金
structured结构化产品
bond债券
crypto加密货币
forex货币对
index指数
future期货
option期权

BUY/SELL 评级(Recommend.*)

TradingView 根据各项指标计算 3 种综合评级:

字段计算依据
Recommend.All所有指标(移动平均线 + 振荡指标)
Recommend.MA仅移动平均线(SMA/EMA 10..200、VWMA、Ichimoku、HullMA)
Recommend.Other仅振荡指标(RSI、Stoch、MACD、ADX、CCI、BBP、UO、W%R、AO)

取值范围为 [-1.0, +1.0]。对应的评级区间:

范围区间UI 标签
-1.00 至 -0.50STRONG_SELL强烈卖出
-0.50 至 -0.10SELL卖出
-0.10 至 +0.10NEUTRAL中性
+0.10 至 +0.50BUY买入
+0.50 至 +1.00STRONG_BUY强烈买入

脚本提供 recommend_label(value),可直接进行转换。 结构化资产位于 assets/recommend_ratings.json。


主要标志

标志描述
--market XScanner 市场(默认:global)
--columns "a,b,c"自定义列(覆盖当前模式的列组合)
--filter '[...]'screen 的 JSON 筛选器(参见 SCANNER_FILTERS.md)
--sort field:order排序(例如:market_cap_basic:desc)
--limit N结果数量上限(默认:30)
--offset N分页偏移量(默认:0)
--type Xsearch 的 search_type(stocks、crypto、forex 等)
--exchange Xsearch 的交易所筛选条件
--lang X新闻/搜索语言(默认:en)
-o archivo将输出保存到文件(JSON 或 markdown)
-q / --quiet静默模式(不显示 INFO 日志)

与仓库中其他技能的差异

功能TradingViewYahoo FinanceFinnhubInvesting.comMorningstar
无需密钥的公开 API✅✅免费增值✅✅
实时行情⚠️ 延迟⚠️ 延迟✅⚠️ 延迟❌
预计算技术指标(约 30+ 项)✅ 独有❌❌❌❌
汇总 BUY/SELL 评级✅ 独有❌⚠️⚠️❌
支撑位 / 阻力位枢轴(5 种方法)✅ 独有❌❌❌❌
财务数据✅✅✅✅⚠️
分析师目标价✅⚠️✅✅❌
搜索支持 ISIN/CUSIP/CIK✅ 独有❌⚠️❌❌
多国家筛选器✅(约 100k+)⚠️⚠️⚠️✅
新闻✅(200 条)✅✅✅❌
加密货币覆盖范围✅(50k+)⚠️⚠️✅❌

TradingView 的独特优势:

  1. 服务器端预计算技术指标(RSI、MACD、EMA、评级)——无需在客户端进行任何计算。
  2. 提供 5 种方法的月度枢轴位(Classic、Fibonacci、Camarilla、Woodie、DeMark)。
  3. 支持 ISIN/CUSIP/CIK 的 Symbol Search——可直接与 SEC EDGAR 关联。
  4. 大规模筛选器,可通过类似 SQL 的筛选条件,在单个请求中筛选 100k+ 个工具。

不适合使用 TradingView 的情况:

  • 非美国小型股票的新闻 → Yahoo Finance 更好。
  • 实时逐笔行情 → 需要 WebSocket(尚未实现)。
  • 长周期 OHLCV 历史数据 → 没有公开的 REST 接口;请使用 Alpha Vantage 或 Yahoo Finance。
  • 多个周期的基本面数据(5 年的利润表)→ 美国市场建议使用 SEC EDGAR,全球覆盖建议使用 simplywallst。

技术注意事项

无需身份验证

所有端点都不需要 API 密钥、令牌、Cookie 或 Session ID。可用于无头脚本、CI/CD、Docker 等。

推荐的请求头

已在脚本中配置:

HEADERS = {
    "User-Agent": "Mozilla/5.0 ...",
    "Accept": "*/*",
    "Accept-Language": "es-AR,es;q=0.9,en;q=0.8",
    "Origin": "https://es.tradingview.com",
    "Referer": "https://es.tradingview.com/",
}
速率限制

未公开说明。观察结果:

  • Scanner:可承受约 5 req/s。
  • News:约 3 req/s。
  • Symbol Search:约 5 req/s。
  • HTML 子页面:约 1 req/s(CloudFlare WAF)。

建议:在请求之间使用 time.sleep(0.3)。all 模式会自动执行此操作。

编码

有效的 UTF-8。在 Windows 控制台(cp1252)中,特殊字符可能会显示为 ?。脚本会在启动时自动将 sys.stdout 重新配置为 UTF-8。

错误处理
状态常见原因
200正常。对于 Scanner,请检查 totalCount > 0。
400Payload 无效(未知列、filter 格式错误、body 为 null)
403Path 不存在或缺少请求头
404不存在的 HTML 子页面(例如:/news/)
405方法错误(例如:/v3/headlines 不支持 GET,只有 v2 支持)
已知限制
  1. 没有通过 REST 提供历史 OHLCV 的端点:Scanner 中只有 Perf.* 收益率。长周期历史数据请使用其他技能。
  2. 新闻覆盖不均:美国大型股票有 200 条新闻,小型股票只有 1-5 条。
  3. 新闻中的 lang=es:几乎为空。默认使用 lang=en。
  4. 尚未实现 WebSocket 实时行情(wss://data.tradingview.com)。
  5. 阿根廷市场:阿根廷市场使用 BCBA:GGAL,美洲市场使用 NASDAQ:GGAL——两者不可互换。
商业用途警告
  • API 未公开文档 → 可能发生变化。
  • 请勿滥用:遵守合理的速率限制。
  • 对于高强度商业用途,请购买 TradingView 官方 REST API。

完整文档

文档内容
references/REFERENCE.md4 个 HTTP 端点的总体概览 + 架构
references/SCANNER_COLUMNS.md130 多个列的完整列表及表格
references/SCANNER_FILTERS.md筛选操作 + 复杂查询 + 示例
references/MARKETS_EXCHANGES.md有效市场 + 按国家列出的交易所 + 股票代码格式
references/NEWS_API.mdNews API 深入介绍:提供方、架构、故事详情
references/SYMBOL_SEARCH.mdSymbol Search v3 深入介绍:ISIN/CUSIP/CIK
references/HTML_SCRAPING.md提取 prs.init-data+json + 适合抓取的场景
references/COOKBOOK.md30 个可直接复制粘贴的配方
assets/scanner_columns.json列目录及说明
assets/column_groups.json按使用场景预先配置的组合
assets/markets.json有效市场 + 覆盖范围
assets/recommend_ratings.jsonRecommend.* 到分组的映射

精选使用场景

references/COOKBOOK.md 中有 30 个完整配方。

# Top 10 acciones US por market cap
py scripts/fetch_tradingview.py screen \
  --filter '[["country","equal","United States"],["type","equal","stock"]]' \
  --sort market_cap_basic:desc --limit 10

# Stocks oversold con high dividend
py scripts/fetch_tradingview.py screen \
  --filter '[["RSI","less",30],["dividend_yield_recent","greater",5]]' \
  --sort dividend_yield_recent:desc --limit 20

# Empresas argentinas en cualquier mercado
py scripts/fetch_tradingview.py country Argentina --limit 30

# Pipeline: search → quote → news
py scripts/fetch_tradingview.py search "Apple" -q | jq -r '.symbols[0].symbol'
py scripts/fetch_tradingview.py quote NASDAQ:AAPL
py scripts/fetch_tradingview.py news NASDAQ:AAPL

# Joinear con SEC EDGAR via CIK
py scripts/fetch_tradingview.py search "GGAL" -q | jq -r '.symbols[0].cik_code'
# -> 0001114700  (usar este CIK en sec-data skill)

评论

支持 Markdown