CoolFace
Datasetpublic

The-Bit-Trading-Company/bit-signal-store

Bit Signal Store A shared, append-only cache of raw time-series model outputs and OHLCV prices, used by the Backtest Lab Space. The one rule This store holds raw model outputs and prices. It never holds trade decisions. No entries, no exits, no position sizes, no P&L. Trading rules, costs, slippage and sizing are applied live, per request, by the Backtest Lab's engine. That separation is what lets many different strategies be compared against the same model… See the full description on the dataset page: https://huggingface.co/datasets/The-Bit-Trading-Company/bit-signal-store.

sourceHugging Faceapache-2.0updated 10h agoView on Hugging Face
0likes1.2kdownloads
Dataset Card

Bit Signal Store

A shared, append-only cache of raw time-series model outputs and OHLCV prices, used by the Backtest Lab Space.

The one rule

This store holds raw model outputs and prices. It never holds trade decisions. No entries, no exits, no position sizes, no P&L. Trading rules, costs, slippage and sizing are applied live, per request, by the Backtest Lab's engine. That separation is what lets many different strategies be compared against the same model outputs without re-running inference, and what keeps a stored "signal" from quietly encoding somebody's trading opinion.

Layout

manifest.json                                    coverage map (schema_version: 1)
signals/{model_slug}/{asset}/{timeframe}/{year}.parquet
prices/{asset}/{timeframe}/{year}.parquet
comparisons/                                     precomputed summary tables
runs/                                            saved backtest summaries

signals/… columns

Quantile forecasters: ts (UTC), q10, q50, q90, context_len, inference_version. Classifiers: ts (UTC), pred, confidence, context_len, inference_version.

A forecast row at ts is the model's prediction made using data up to and including ts. The backtest engine shifts it before use, so a decision at bar t can only act at bar t+1's open.

prices/… columns

ts (UTC), open, high, low, close, volume, source.

source records which provider each row came from (binance, coinbase, yfinance, stooq, tiingo).

manifest.json

The coverage map. For every (model_slug, model_revision, asset, timeframe): start_ts, end_ts, rows, inference_version, last_updated, contributed_by. Price coverage is tracked the same way, plus a provider_max_days field recording honest provider depth limits (Yahoo serves roughly 730 days of hourly bars and 60 days of 15-minute bars — a boundary, not an error) and a gaps count.

model_revision is part of the identity on purpose: a different revision of the same model is a different signal series and is never merged with another.

inference_version

Rows tagged PLACEHOLDER are synthetic, structurally identical to real output but carrying no model information. They exist so the UI has complete shape to render against before GPU inference has covered every cell, and they are labelled as placeholders everywhere they surface. Real runs overwrite them. Never use PLACEHOLDER rows for research.

Contributing coverage

The Backtest Lab has an "Extend coverage" flow: a signed-in user picks a model, asset, timeframe and range; the request is deduplicated against manifest.json so nothing is ever recomputed; inference runs on that user's own ZeroGPU quota; and the result is committed back here. contributed_by records who extended each slice.

Limitations

  • Coverage is sparse and grows by contribution; check manifest.json before assuming a slice exists.
  • Crypto prices come from spot exchanges (Binance primary, Coinbase fallback) and will not exactly match another venue's prints.
  • Equity bars are not dividend- or split-adjusted beyond what the provider supplies, and intraday equity history is limited by provider depth.
  • Model outputs are forecasts. They are wrong often. Calibration statistics in comparisons/ tell you how often.

Disclaimer

Nothing in this dataset is investment advice. Backtested results derived from it are hypothetical and not indicative of future results.


v1 coverage (as seeded)

18 signal slices · 60,375 rows · 0 placeholders. Every slice below is real Chronos-Bolt output with the model revision pinned.

ModelAssetTFCoverageRows
chronos-bolt-smallBTC-USD1d2024-08-15 → 2026-08-15731
chronos-bolt-smallETH-USD1d2024-08-15 → 2026-08-15731
chronos-bolt-smallSOL-USD1d2024-08-15 → 2026-08-15731
chronos-bolt-smallSPY1d2024-08-14 → 2026-08-14502
chronos-bolt-smallQQQ1d2024-08-14 → 2026-08-14502
chronos-bolt-smallNVDA1d2024-08-14 → 2026-08-14502
chronos-bolt-baseBTC-USD1d2024-08-15 → 2026-08-15731
chronos-bolt-baseETH-USD1d2024-08-15 → 2026-08-15731
chronos-bolt-baseSOL-USD1d2024-08-15 → 2026-08-15731
chronos-bolt-smallBTC-USD1h2025-09-05 → 2026-08-158,238
chronos-bolt-smallETH-USD1h2025-09-05 → 2026-08-158,235
chronos-bolt-smallSOL-USD1h2025-09-05 → 2026-08-158,236
chronos-bolt-smallSPY1h2025-05-30 → 2026-08-142,110
chronos-bolt-smallQQQ1h2025-05-30 → 2026-08-142,110
chronos-bolt-smallNVDA1h2025-05-30 → 2026-08-142,110
chronos-bolt-smallBTC-USD15m2026-05-22 → 2026-08-158,020
chronos-bolt-smallETH-USD15m2026-05-22 → 2026-08-157,743
chronos-bolt-smallSOL-USD15m2026-05-22 → 2026-08-157,681

Price cache: 15 slices. Crypto from Coinbase (Binance returns HTTP 451 from the seeding machine — the fallback chain handled it). Equities from yfinance; hourly equity history stops at the provider's ~730-day depth, which is recorded as provider_max_days rather than presented as full coverage.

Calibration at a glance

Empirical coverage of the q10–q90 band against the outcome each forecast was predicting (nominal 0.80):

SliceCoverageError
chronos-bolt-small · BTC-USD · 1d0.862+0.062
chronos-bolt-base · BTC-USD · 1d0.841+0.041
chronos-bolt-small · BTC-USD · 1h0.855+0.055
chronos-bolt-small · SPY · 1h0.891+0.091

Chronos-Bolt is consistently over-dispersed here: its 80% band captures 83–89% of outcomes, so its intervals are wider than they need to be. Useful to know before trusting a q10 stop level. Full tables live in comparisons/calibration.parquet.