CoolFace
Datasetpublic

tripolskypetr/tradingview-ideas-signals

TradingView Crypto Ideas + Binance 1m OHLCV 51,963 published trading ideas (LONG/SHORT/NEUTRAL) from 2,343 TradingView authors, spanning 2014-06 → 2026-07, paired with 1-minute Binance OHLCV candles (748 symbol-year files, 313 spot symbols, ~40M candles) covering the labeling window around every idea. Built for look-ahead-bias-free backtesting of social trading signals: every idea carries its exact publication timestamp, and popularity counters are snapshotted over time rather… See the full description on the dataset page: https://huggingface.co/datasets/tripolskypetr/tradingview-ideas-signals.

sourceHugging Facemitupdated 2mo agoView on Hugging Face
0likes180downloads
Dataset Card

TradingView Crypto Ideas + Binance 1m OHLCV

51,963 published trading ideas (LONG/SHORT/NEUTRAL) from 2,343 TradingView authors, spanning 2014-06 → 2026-07, paired with 1-minute Binance OHLCV candles (748 symbol-year files, 313 spot symbols, ~40M candles) covering the labeling window around every idea. Built for look-ahead-bias-free backtesting of social trading signals: every idea carries its exact publication timestamp, and popularity counters are snapshotted over time rather than frozen at scrape time.

Files

FileRowsDescription
data/tv-ideas.jsonl51,963One idea per line: static fields + first-seen time
data/tv-likes.jsonl51,980Popularity snapshots (appended whenever counters change)
data/candles/*.jsonl40,365,2501m OHLCV, flat (one candle per line), one file per symbol-year
data/candle-coverage.jsonl28,345Downloaded-day index: n=0 = pair did not trade that day
data/binance-symbols.json—Cached Binance spot exchangeInfo TRADING symbol list
scripts/ideas.mjs—Self-contained harvester (Node ≥ 18, zero dependencies)
scripts/candles.mjs—Self-contained candle downloader (Node ≥ 18, zero dependencies)

Schemas

ideas — data/tv-ideas.jsonl

json
{"id": 23396048, "ts": 1784448615000, "symbol": "BTCUSD", "fullName": "BITSTAMP:BTCUSD",
 "direction": "LONG", "author": "Nmn0708", "authorIsPro": false, "isScript": false,
 "title": "bullish day formation in BTC", "url": "https://www.tradingview.com/chart/…", "firstSeen": 1784455047257}
FieldTypeMeaning
idintTradingView idea id (dedup key)
tsint (ms)Publication time, UTC (date_timestamp from the API) — use this as the signal moment; it is look-ahead-free
symbolstringTicker as shown on TV (BTCUSD, BTCUSD.P, …)
fullNamestringExchange-qualified name (BITSTAMP:BTCUSD)
directionstringLONG / SHORT / NEUTRAL (from symbol.direction)
authorstringTV username — natural "channel" key for per-author studies
authorIsProboolPaid TV account flag
isScriptboolIdea is a published script, not a trade call
titlestringIdea headline (mixed languages, mostly English)
firstSeenint (ms)When the harvester first observed the idea

likes — data/tv-likes.jsonl

json
{"id": 23396048, "seenAt": 1784455047257, "likes": 1, "comments": 0, "views": 0}

A new line is appended every time the counters change between harvester runs. This fixes the classic look-ahead trap of popularity data: an idea that shows 20 likes today had ~0 at publication. The first snapshot of a freshly published idea approximates its state at publication; later snapshots give honest popularity dynamics. Join to ideas by id.

candles — data/candles/<SYMBOL>-<YYYY>.jsonl

Flat, viewer-friendly: one 1-minute candle per line, one file per symbol-year (append-only):

json
{"s": "BTCUSDT", "t": 1704067200000, "o": 42283.58, "h": 42298.62, "l": 42261.02, "c": 42298.61, "v": 35.92724}
FieldTypeMeaning
sstringBinance spot symbol
tint (ms)Candle open time, UTC
o h l cfloatOpen / High / Low / Close
vfloatBase-asset volume

Coverage per idea: 1445 minutes back (momentum / pre-signal features) and 485 minutes forward (2×240m label horizon + entry slack), plus the same backward window of BTCUSDT as market backdrop.

candle_coverage — data/candle-coverage.jsonl

json
{"s": "GRAMUSDT", "d": 1774828800000, "n": 0}

One line per downloaded UTC day (d = day start, ms; n = candles that day). This preserves the information a flat candle table cannot express: n = 0 means the pair did not trade that day (pre-listing / re-listing gap) — distinguishable from "day never downloaded" (absent line). It doubles as the resume index for incremental runs of scripts/candles.mjs.

Symbol mapping (TV → Binance spot)

  • —BTCUSD, BTCUSD.P, BTCUSDT, BTCUSDC → BTCUSDT; validated against Binance exchangeInfo (non-listed tickers dropped).
  • —Fiat/commodity CFD ideas (EURUSD, XAUUSD, NAS100, …) are excluded — they map to FX proxies, not crypto.
  • —Ticker renames are resolved, with price continuity verified against klines: TON → GRAM (2026-07-02), MATIC → POL (2024-09-13), FTM → S (2025-01-16). History before the re-listing date is fetched under the old symbol; the few gap days are honestly empty.

Collection methodology

The TradingView ideas API caps every query at 1,000 most-recent ideas, which limits a busy symbol feed (e.g. BTCUSD) to roughly one month of history. The harvester works around the cap in two phases:

  1. 1.Discovery — walk the symbol feeds (10 major crypto tickers) to build an author pool;
  2. 2.Author feeds — download the complete feed of each top author (each has its own 1,000-idea cap, and individual authors post rarely, so their feeds reach back years). This is what extends coverage to 2014.

The archive is append-only with dedup by `id`; feeds are read newest-first and a walk stops after two consecutive pages of already-known ideas, so incremental (cron) runs cost ~1 page per feed. Network hardening: 15s request deadline, capped retries on rate-limits, a single failed feed never kills the run.

Reproduce / update

bash
node scripts/ideas.mjs      # → data/tv-ideas.jsonl, data/tv-likes.jsonl (incremental)
node scripts/candles.mjs    # → data/candles/*.jsonl + candle-coverage.jsonl (idempotent, resumes)

Both scripts are fully self-contained (Node ≥ 18, native fetch, no npm packages). candles.mjs fails fast after 10 consecutive network errors instead of silently producing a corrupt cache, and can be re-run at any time — existing days are skipped by an index scan.

Intended uses

  • —Testing whether author timing carries tradable information vs. market beta (pair each idea with candles before/after ts; compare against time-shifted placebo entries);
  • —Per-author skill scoring and survival analysis (2,343 authors, join by author);
  • —Popularity dynamics studies free of look-ahead (likes/views trajectories from tv-likes.jsonl);
  • —Pump/momentum event studies on 1m bars around social signals;
  • —Text classification on idea titles (direction, hype language).

Known limitations & biases

  • —Author selection bias: full feeds were pulled for the ~80 most active authors from crypto symbol feeds; the long tail of authors appears only where symbol feeds reached (≈ last month per symbol at harvest time).
  • —Popularity is snapshot-based: only the first snapshot of ideas published after harvesting began approximates publication-time counters; for older ideas the first snapshot is as-of-first-scrape.
  • —Delisted coins with no current Binance symbol (and no known rename) have ideas but no candles.
  • —Candle files may contain gaps (exchange downtime, low-liquidity pauses); days can have fewer than 1440 candles — see candle_coverage.n.
  • —NEUTRAL and isScript records are kept in the archive — filter them out for signal studies.
  • —All timestamps are UTC milliseconds.