Transparency
Data freshness
TradeClaw markets itself as a live trading platform. To be honest about what "live" means here: nothing on this site is true streaming real-time in the sub-second tick sense. Every surface is on a polling cadence. This page is the exact map.
How the data flows
- Twelve Data is the upstream provider for forex, metals, indices, stocks, and historical candles. Binance is the upstream for crypto ticks.
- A separate Railway service (
market-data-hub) fetches Twelve Data on cron and caches the results in Redis. TradeClaw reads the cache, not Twelve Data directly. - Trading signals are computed inside the Next.js process by our TA engine (RSI, MACD, EMA, Bollinger, Stochastic, ADX) and written to Postgres on a 5-minute cron.
Prices & quotes
| Surface | Cadence | Source |
|---|---|---|
| Crypto prices on /dashboard live feed (SSE) | ~2 seconds | Binance public ticker (direct)Server-Sent Events stream — closest thing to real-time on the site. |
| Forex / metals / indices / stocks on /dashboard SSE | ~15 seconds (poll) on top of ≤60s hub data | market-data-hub → Twelve DataUnderlying quote refresh is once per minute, so wire freshness is up to ~60s. |
| Crypto, forex, metals, stocks on every other page | Up to 60 seconds | market-data-hub → Twelve DataHub fetches all quotes once a minute and serves them from Redis. |
| Forex exchange rates | Up to 2 minutes | market-data-hub → Twelve Data |
| OHLCV candles (M5 / M15 / H1 / H4 / D1) | Up to 5 minutes | market-data-hub → Twelve DataCandles refresh on a 5-minute hub cron. Indicators recompute when new candles arrive. |
Signals & derived data
| Surface | Cadence | Source |
|---|---|---|
| Trading signals (signal_history) | Every 5 minutes | TA engine inside Next.js (RSI, MACD, EMA, Bollinger, Stochastic, ADX)Cron writes new signals every 5 min with a 2-hour symbol+direction dedup window. Same engine runs as a request side-effect on high-traffic pages. |
| Signal outcomes (4h / 24h hit / miss / open) | Every 5 minutes | Cron job pulls H1 candles and resolves outcomesOpen signals are force-closed at 2× the window if not yet hit/miss. |
| /track-record stats (win rate, equity curve, R-distribution) | Recomputed on each request from latest signal_history | Postgres aggregationAs fresh as the underlying signal_history rows — bound by the 5-min cron. |
| /consensus | Auto-refreshes every 60 seconds (client poll) | TA engine via /api/consensus |
| /news (CoinGecko trending) | Auto-refreshes every 5 minutes | CoinGecko trending endpoint |
| /sentiment | Auto-refreshes every 5 minutes | Multi-source sentiment aggregation |
| /today (Signal of the Day) | Updates every 5 minutes | Highest-confidence row from signal_history |
| Signal badges (SVG) | Refresh every 5 minutes (CDN cache) | TA engine via /api/badges |
| Telegram / Slack / Discord alerts | Fire on the 5-minute cron tick when a fresh signal qualifies | Cron + bot dispatcherPro-tier subscribers get alerts without delay. Free-tier alerts may be delayed by tier policy — see /pricing. |
Static & on-demand
| Surface | Cadence | Source |
|---|---|---|
| Backtests (/backtest, strategy-breakdown) | On-demand, computed against historical OHLCV | packages/strategies (pure TS, not part of live signal path)Backtest math is independent from live signal generation. |
| Glossary, docs, blog, pricing, security, this page | Static — updates on deploy | Repository content |
What "real-time" means on TradeClaw
- Closest to real-time: crypto ticks on the dashboard SSE feed (~2 second latency from Binance).
- Near-real-time: forex / metals / stock quotes on the dashboard SSE feed (up to ~60 seconds).
- Polled, not streamed: every other surface on the site, on cadences of 60 seconds to 5 minutes.
- Not real-time: trading signals (5-min cron with 2-hour dedup window), outcome resolution (4h / 24h windows by definition), and any historical or aggregate stat.
Why we publish this
A signal platform that is loose with the word "real-time" is asking traders to trust it for entries that matter. We would rather you know exactly how stale the number you are looking at can be, so you can decide whether the cadence fits your trading style. Scalpers on M5 should size their expectations against the ~5-minute signal cron. Swing traders on H1 / H4 are well within the cadence envelope.