tradingview について
TradingView の未公開 API と HTML ページから市場データを取得する Python スキルです。市場データ分析向けに、テクニカル指標、スクリーニング、検索、ニュースの CLI モードを備え、データは通常遅延しています。
主な機能
- 01株価と事前計算済みテクニカル指標
- 02財務、決算、アナリスト目標株価
- 03条件指定、並べ替え、ページ分割によるスクリーニング
- 04ISIN、CUSIP、CIK による銘柄検索
- 05銘柄別および全体のニュース見出し
- 06HTML サブページのデータ抽出
活用シーン
- 01銘柄のテクニカル指標を確認
- 02市場や条件を指定して金融商品を抽出
- 03識別子から証券を検索
- 04市場ニュースと財務データを収集
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ gauss314/ skills --skill tradingviewインストール後、Claude Code で/tradingviewを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/column_groups.jsonmarkets.jsonrecommend_ratings.jsonscanner_columns.jsonreferences/COOKBOOK.mdHTML_SCRAPING.mdMARKETS_EXCHANGES.mdNEWS_API.mdREFERENCE.mdSCANNER_COLUMNS.mdSCANNER_FILTERS.mdSYMBOL_SEARCH.mdscripts/fetch_tradingview.py詳細
TradingView — 公開 API によるマーケットデータ
TradingView からマーケットデータを抽出するプレミアムスキルです。リバースエンジニアリングで発見された非公開の内部 APIを利用します。API キーも認証も不要です。
TradingView は、世界で最も利用されているマーケットデータ+テクニカル分析+ソーシャルトレーディングのプラットフォームです(アクティブユーザー数 5,000 万人超)。このスキルで利用できる機能は次のとおりです。
- Scanner API:約 300 のカラムを提供します。株価情報、事前計算済みテクニカル指標、ファンダメンタルズ、決算情報、アナリストの目標株価、集計済みの BUY/SELL 評価など。
- Symbol Search v3:ISIN、CUSIP、CIK に対応しています(SEC EDGAR と結合可能)。
- ニュース見出し:銘柄ごとに約 200 件(Dow Jones/Reuters など)。
prs.init-data+jsonの抽出に対応する、16 以上のサブページ(technicals、financials-*、forecast、options-chain、ideasなど)のHTML スクレイピング。- フィルター+ソート+ページネーションに対応する大規模スクリーナー(約 10 万以上の金融商品)。
⚠️ 法的事項
- TradingView は、これらの API の公式ドキュメントを公開していません。予告なく変更される可能性があります。
- コミュニティによる約 6 年間の追跡では、変更は段階的に行われており、Scanner の構造は 2017 年以降安定しています。
- 利用規約を遵守してください。商用で集中的に利用する場合は、公式 REST API(有料)をご契約ください。
- データは遅延配信です(通常約 15 分)。リアルタイムデータは独自の WebSocket 経由で提供されます(ここでは実装されていません)。
🚀 クイックスタート
# 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
利用可能なエンドポイント(HTTP エンドポイント 4 種類、CLI モード 24 種類)
Scanner API(エンドポイント 1 種類、CLI モード 14 種類)
POST https://scanner.tradingview.com/{market}/scan
| モード | カラムバンドル | 説明 |
|---|---|---|
quote SYM | quote_basic(14 カラム) | 基本的な株価情報 |
quote-extended SYM | quote_extended(30 カラム) | 株価情報+指標+バリュエーション |
technicals SYM | technicals(36 カラム) | RSI、MACD、EMA、SMA、評価 |
pivots SYM | pivots(17 カラム) | 月次ピボット(5 種類の手法) |
financials SYM | financials(35 カラム) | 貸借対照表+損益計算書+キャッシュフロー+各種比率 |
earnings SYM | earnings(12 カラム) | 過去の決算+予測 |
targets SYM | targets(10 カラム) | 目標株価+アナリストの推奨 |
performance SYM | performance(18 カラム) | リターン(W/1M/3M/6M/Y/YTD/5Y/All)+ボラティリティ+ベータ |
dividends SYM | dividends(8 カラム) | 利回り+DPS+配当性向+成長率 |
ownership SYM | ownership(10 カラム) | 浮動株+機関投資家+インサイダー+空売り |
screen | custom | フィルター+ソート+ページネーションに対応する汎用スクリーナー |
country COUNTRY | quote_basic | 国別の株式 |
sector SECTOR | quote_basic | セクター別の株式 |
market MARKET | quote_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 API) | {EXCHANGE}:{TICKER} | NASDAQ:GGAL、BCBA:YPF、BINANCE:BTCUSDT |
| HTML サブページ | {EXCHANGE}-{TICKER} | NASDAQ-GGAL(URL 内) |
自動変換:スクリプトは HTML URL を組み立てる際に : → - に変換します。
対応市場
| Market | 対象範囲 | ティッカーの例 |
|---|---|---|
global | すべての市場(100k 以上) | 任意の EX:TKR |
america | 米国:NYSE、NASDAQ、AMEX、OTC(15k 以上) | NASDAQ:AAPL |
argentina | BCBA / BYMA(300 以上) | BCBA:GGAL |
brazil | B3 / Bovespa(500 以上) | BMFBOVESPA:PETR4 |
spain | BME(200 以上) | BME:SAN |
italy | Borsa Italiana(400 以上) | MIL:ENI |
germany | Xetra / FWB(1k 以上) | XETR:SAP |
uk | LSE(2k 以上) | LSE:HSBA |
france | Euronext Paris(800 以上) | EURONEXT:MC |
russia | MOEX(200 以上) | MOEX:SBER |
crypto | 暗号資産(50k 以上) | BINANCE:BTCUSDT |
forex | 外国為替ペア(1k 以上) | FX:EURUSD |
bonds | グローバル債券(TVC) | TVC:US10Y |
詳細は references/MARKETS_EXCHANGES.md をご覧ください。
金融商品タイプ(type field)
| タイプ | 説明 |
|---|---|
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.50 | STRONG_SELL | 強い売り |
| -0.50 ~ -0.10 | SELL | 売り |
| -0.10 ~ +0.10 | NEUTRAL | 中立 |
| +0.10 ~ +0.50 | BUY | 買い |
| +0.50 ~ +1.00 | STRONG_BUY | 強い買い |
スクリプトには、値を直接変換する
recommend_label(value)があります。 アセットは assets/recommend_ratings.json にあります。
主なフラグ
| フラグ | 説明 |
|---|---|
--market X | Scanner の市場(デフォルト: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 X | search の search_type(stocks、crypto、forex など) |
--exchange X | search の取引所フィルター |
--lang X | news/search の言語(デフォルト:en) |
-o archivo | 出力をファイルに保存(JSON または Markdown) |
-q / --quiet | サイレントモード(INFO ログなし) |
リポジトリ内の他のスキルとの差別化
| 機能 | TradingView | Yahoo Finance | Finnhub | Investing.com | Morningstar |
|---|---|---|---|---|---|
| APIキー不要の公開API | ✅ | ✅ | フリーミアム | ✅ | ✅ |
| リアルタイム株価 | ⚠️ 遅延あり | ⚠️ 遅延あり | ✅ | ⚠️ 遅延あり | ❌ |
| テクニカル指標の事前計算(約30種類以上) | ✅ 唯一 | ❌ | ❌ | ❌ | ❌ |
| BUY/SELLの集計評価 | ✅ 唯一 | ❌ | ⚠️ | ⚠️ | ❌ |
| ピボット S/R(5種類の手法) | ✅ 唯一 | ❌ | ❌ | ❌ | ❌ |
| 財務情報 | ✅ | ✅ | ✅ | ✅ | ⚠️ |
| アナリストの目標株価 | ✅ | ⚠️ | ✅ | ✅ | ❌ |
| 検索でのISIN/CUSIP/CIK対応 | ✅ 唯一 | ❌ | ⚠️ | ❌ | ❌ |
| 複数国対応のスクリーナー | ✅(約10万件以上) | ⚠️ | ⚠️ | ⚠️ | ✅ |
| ニュース | ✅(200件) | ✅ | ✅ | ✅ | ❌ |
| 暗号資産のカバレッジ | ✅(5万件以上) | ⚠️ | ⚠️ | ✅ | ❌ |
TradingViewの独自の利点:
- サーバー側で事前計算されたテクニカル指標(RSI、MACD、EMA、評価)— クライアント側で計算する必要はありません。
- 5種類の手法による月次ピボット(クラシック、フィボナッチ、カマリラ、ウッディ、デマーク)。
- ISIN/CUSIP/CIKに対応した銘柄検索 — SEC EDGARと直接結合できます。
- SQLのようなフィルターに対応した大規模スクリーナーで、1回のリクエストで10万件以上の金融商品を検索できます。
TradingViewを使わないほうがよい場合:
- 米国外の小型株のニュース → Yahoo Financeのほうが適しています。
- ティック単位のリアルタイムデータ → WebSocketが必要です(未実装)。
- 長期間のOHLCV履歴データ → 公開REST APIでは提供されていません。Alpha VantageまたはYahoo Financeを使用してください。
- 複数期間のファンダメンタルズデータ(5年分の損益計算書など) → 米国株にはSEC EDGAR、グローバルなカバレッジにはsimplywallstが適しています。
技術上の考慮事項
認証不要
どのエンドポイントもAPIキー、トークン、Cookie、セッション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/",
}
レート制限
ドキュメントには記載されていません。確認できた値:
- スキャナー:約5 req/sに対応。
- ニュース:約3 req/s。
- 銘柄検索:約5 req/s。
- HTMLサブページ:約1 req/s(CloudFlare WAF)。
推奨:リクエスト間にtime.sleep(0.3)を入れてください。allモードでは自動的に適用されます。
エンコーディング
UTF-8に対応しています。Windowsのコンソール(cp1252)では、特殊文字が?と表示される場合があります。スクリプトは起動時にsys.stdoutをUTF-8に自動で再設定します。
エラー処理
| ステータス | 典型的な原因 |
|---|---|
| 200 | OK。ScannerではtotalCount > 0を確認してください。 |
| 400 | 無効なペイロード(不明な列、不正な形式のfilter、bodyがnull) |
| 403 | 存在しないパス、または不足しているヘッダー |
| 404 | 存在しないHTMLサブページ(例:/news/) |
| 405 | メソッドの誤り(例:/v3/headlinesはGETに対応していません。v2のみ) |
既知の制限事項
- REST経由の過去のOHLCVデータを取得するエンドポイントはありません:Scannerで取得できるのは
Perf.*リターンのみです。長期間の履歴データには、ほかのスキルを使用してください。 - ニュースのカバレッジにばらつきがあります:米国の大型株は200件、小型株は1~5件です。
- ニュースの
lang=es:ほぼ空です。デフォルトのlang=enを使用してください。 - WebSocketによるリアルタイム通信は未実装です(
wss://data.tradingview.com)。 - アルゼンチン市場:アルゼンチンでは
BCBA:GGAL、米国ではNASDAQ:GGALを使用してください。両者は互換性がありません。
商用利用に関する注意
- APIは非公開の仕様であり、変更される可能性があります。
- 過度な利用は避け、妥当なレート制限を守ってください。
- 商用で集中的に利用する場合は、TradingView公式のREST API(有料)を契約してください。
ドキュメント全文
| ドキュメント | 内容 |
|---|---|
| references/REFERENCE.md | 4 つの HTTP エンドポイントの全体概要+アーキテクチャ |
| references/SCANNER_COLUMNS.md | テーブル付きの 130 以上の列の完全な一覧 |
| references/SCANNER_FILTERS.md | フィルター操作+複雑なクエリ+例 |
| references/MARKETS_EXCHANGES.md | 有効な市場+国別取引所+ティッカーの形式 |
| references/NEWS_API.md | News API 詳細解説:プロバイダー、スキーマ、ストーリー詳細 |
| references/SYMBOL_SEARCH.md | Symbol Search v3 詳細解説:ISIN/CUSIP/CIK |
| references/HTML_SCRAPING.md | prs.init-data+json の抽出+スクレイピングが必要なケース |
| references/COOKBOOK.md | コピー&ペーストですぐ使える 30 のレシピ |
| assets/scanner_columns.json | 説明付き列カタログ |
| assets/column_groups.json | ユースケース別に事前構成されたバンドル |
| assets/markets.json | 有効な市場+カバレッジ |
| assets/recommend_ratings.json | Recommend.* からバケットへのマッピング |
注目のユースケース
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)