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.
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
Schemas
ideas — data/tv-ideas.jsonl
{"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}likes — data/tv-likes.jsonl
{"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):
{"s": "BTCUSDT", "t": 1704067200000, "o": 42283.58, "h": 42298.62, "l": 42261.02, "c": 42298.61, "v": 35.92724}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
{"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 BinanceexchangeInfo(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:
- Discovery — walk the symbol feeds (10 major crypto tickers) to build an author pool;
- 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
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. NEUTRALandisScriptrecords are kept in the archive — filter them out for signal studies.- All timestamps are UTC milliseconds.
