Eleven testable applications of Google’s TimesFM 3.0 (330M-param time-series foundation model) on real Bybit perpetual futures data — organized by edge type and expected value. Every test is measured as MAE vs last-value naive + p10–p90 coverage; if it doesn’t beat naive, it’s noise.
TimesFM-3 is a risk-input tool, not a price-direction predictor. The validated sandbox baseline shows well-calibrated uncertainty bands (p10–p90 coverage 81–84%), beats naive on funding level and volume, and has no directional skill at 3 days — which is exactly why the edge-test suite targets levels, volatility, cross-series structure, and mean reversion rather than price direction.
Status of the edge tests: early runs (Sep 9, 2026) were promising — realized-vol
forecasting for sizing (A1), quantile-width as a risk-regime meter (D2), settlement-calendar
flag (B2), band-breakout anomaly detection (D1), funding/carry timing (C1/A3), daily
range (C3), and session-volume timing (A2). But those evaluation windows were
misaligned (fixed in commit b986e09), so the numbers are
pending re-validation on the alignment-fixed notebook and must not be trusted as-is.
So far only C2 (vol-clustering persistence) and B3 (liquidation precursors) show no clear edge — both are shelved until more data.
Cheap, high-confidence tests that feed existing systems: vol-based sizing (A1), session-bucketed volume (A2), daily-range stops/TP (C3), and the quantile-width risk meter (D2).
| Test | Direction | Status (repo HEAD) |
|---|---|---|
| A1 realized-vol → sizing | Predicted 24h vol; size inversely | Promising — pending re-validation |
| A2 volume → session timing | Rank hours (Asia/London/NY UTC) | Promising — pending re-validation |
| C3 daily range → stops/TP | Daily high–low/close as TP/stop multiplier | Promising — pending re-validation |
| D2 quantile-width → risk regime | Wider band → cut size / widen stops | Promising — pending re-validation |
Forecast 24h realized vol (rolling std of log returns) on BTC/ETH/SOL.
Vol is strongly autocorrelated; this is the model's best skill.
Size positions inversely to predicted vol instead of lagging ATR (per-trade risk input).
Beat naive vol-persistence MAE by >5%, coverage 75–85%.
Highest expected value. Early runs showed a strong signal; the fixed notebook must confirm the numbers.
Tier 1
Forecast hourly volume over the next 24–48h, then bucket errors by session (Asia 00–08 / London 07–16 / NY 12–21 UTC).
Volume is far more predictable than price; session structure is real.
Rank which hours deserve breakout/ORB entries; avoid thin-book traps.
Beat last-value naive on overall volume; session-hour MAE beats naive within those sessions.
Overall volume MAE plus UTC session buckets. Naive is last-value persistence, not a session-average.
Tier 1
Forecast next-day high–low range. Notebook resamples hourly bars to a daily range series (30d context, 7d horizon) — not hourly-context + vol/volume covariates.
Range is much more predictable than direction.
Stop and take-profit placement (TP at predicted-range multiples).
Beat naive range-persistence by >5%; actual range inside p10–p90 70–85%.
Daily high–low/close range as TP/stop distance multiplier.
Tier 1
Test whether the model's own p10–p90 spread predicts next-period realized vol.
If the model's uncertainty is forward-looking, its width is a vol-of-vol indicator.
As a risk-regime gauge for sizing (wider band = reduce size).
Correlation of quantile-width with subsequent realized vol > current-vol persistence.
Free — works on every forecast with no extra data.
Tier 1
Harder tests: BTC as a past covariate on alts (B1), funding-settlement calendar flag (B2), and funding-spike path MAE (C1).
| Test | Direction | Status (repo HEAD) |
|---|---|---|
| B1 BTC as past covariate | Hedge ratio / correlation input | Direction only — re-validation pending |
| B2 settlement-calendar flag | Mechanism check; magnitudes next | Promising — pending re-validation |
| C1 funding-spike path MAE | Carry timing proxy (not time-to-revert) | Promising — pending re-validation |
Forecast SOL/ETH price with BTC log-price as a past-only covariate; compare vs univariate. (Univariate-plus-covariate, not a joint three-coin forecast.)
If BTC history helps predict alts, it's a hedge-ratio / correlation input (not direction).
Portfolio construction, beta hedging.
Covariate MAE < univariate MAE on alts by a meaningful margin.
Not in the repo's interim recommended list until the fixed notebook confirms it.
Tier 2
Mechanism check: binary 8h funding-settlement flag as a past-future covariate. Designed follow-up is real events with magnitudes (unlocks, FOMC/CPI).
Synthetic binary flags in Scenario A did not move the forecast; a real calendar feature might.
Event-aware sizing (skip/half-size into known events) if the mechanism works.
Forecast reacts to the event window AND that reaction beats naive.
Current notebook tests the funding-settlement schedule, not unlock/FOMC/CPI magnitudes.
Tier 2
After |funding − mean| > 2σ, forecast the next 24h path. Designed test is time-to-revert; the notebook reports post-spike path MAE vs last-value naive.
Funding mean-reverts; level-forecasting is the model's strength.
Entry timing on carry trades; avoid paying high funding into a squeeze.
Reversion-timing MAE beats naive 'next-period revert' by >10% (designed). Implemented bar: post-spike path MAE < last-value naive.
24h post-spike path MAE (level proxy), not a time-to-revert model yet.
Tier 2
Cheap speculative tests: funding-level convergence (A3), liquidation precursors (B3), vol-clustering persistence (C2), and band-breakout anomaly detection (D1).
| Test | Direction | Status (repo HEAD) |
|---|---|---|
| A3 funding-level | Carry timing input | Promising — pending re-validation |
| B3 liquidation precursor | Pre-event warning flag | No clear edge so far |
| C2 vol-clustering persistence | ORB/breakout regime filter | No clear edge so far |
| D1 band-breakout anomaly | Regime-change alert for screener | Promising — pending re-validation |
Forecast funding 1–3 days out. Notebook: plain 48h funding-level walk-forward; spike-schedule covariates are B2.
Predict when funding normalizes → carry entry timing.
Carry entry timing.
Beat last-value naive on level + correct sign of convergence.
Plain funding-level MAE; grouped with C1 as funding/carry timing.
Tier 3
Designed: funding + OI + realized vol → 4h max-abs-move. Implemented: no OI in this data layer; corr(quantile-width, next-period hi-vol) only.
Pre-event warning — reduce size / widen stops flag (not directional).
Pre-event warning — reduce size / widen stops flag (not directional).
Quantile width or vol forecast spikes significantly before actual vol spikes (lead time test).
Not recommended yet — no OI feed; revisit with more data.
Tier 3
Forecast 6–24h vol given a recent vol spike (regime persistence).
Regime-state input for ORB/breakout filters.
Regime-state input for ORB/breakout filters.
Distinguishes spike-sustained vs spike-decay regimes better than AR(1) vol.
Not recommended yet — revisit only with more data.
Tier 3
When actual deviates outside the model's p10–p90 band, treat it as an anomaly / change-point event.
Band-breaks cluster before large moves (lead time > random).
Change-point detector rather than forecaster; regime-change alert for the screener.
Band-breaks cluster before large moves (lead time > random).
Actuals leaving the p10–p90 band as an anomaly/change-point flag.
Tier 3
All tests run in timesfm3_bybit_edge_tests.ipynb on the same data layer as the
sandbox (Bybit hourly klines + funding, with automatic Hyperliquid fallback). Walk-forward
windows are validated: context = forecast_start − CTX … forecast_start,
actual = forecast_start … forecast_end.
Last-value persistence for vol, range, funding, and volume. Session-average volume is an A2 success bar, not the naive the notebook currently subtracts. A test passes only when it beats its own baseline.
≈80% is ideal. Funding and volume runs land 81–84% — the model's uncertainty intervals are trustworthy.
No look-ahead: context ends exactly where forecasting begins; 8–24 iterations per test depending on horizon.
log-price / log1p(base volume) scaled for the model, inverted for reporting. Volume MAE is in base-coin units per hour, not USDT quote volume.
| Target | Series | MAE | naive MAE | Beat naive? | p10–90 cov% |
|---|---|---|---|---|---|
| Funding | BTC | 2.33e-6 | 3.59e-6 | ✅ | 84.1 |
| Volume | BTC | 905 | 1,001 | ✅ | 83.3 |
| Volume | ETH | 12,383 | 12,762 | ✅ | 82.6 |
| Volume | SOL | 125,645 | 158,730 | ✅ | 81.5 |
Consistent picture across runs: well-calibrated baselines, beats last-value naive on funding level and volume, no price-direction skill at 3 days, and synthetic binary covariates ignored — which motivated the settlement-calendar mechanism check (B2). Volume rows are base-coin hourly volume (BTC/ETH/SOL), not quote USDT.
b986e09. Per-test numbers from the earlier runs are not published here — they must be re-validated on the alignment-fixed notebook and recorded in HYPOTHESES.md before being trusted. Several tests are proxies of the designed experiments (see HYPOTHESES.md “Designed vs implemented”).Ranked by fit with the existing stack, as recorded in the repo.
Replace lagging-ATR input with TimesFM predicted 24h vol; size inversely. Vol is strongly autocorrelated — highest expected value.
The model's own p10–p90 width as a forward-looking uncertainty gauge — wider band → cut size / widen stops. Free, no extra data.
Current notebook: binary funding-settlement schedule as a known-future flag. Next test is real known-future events (unlock / FOMC / CPI) with magnitudes.
Actuals leaving the p10–p90 band as an anomaly/change-point flag for the screener.
C1 reports 24h post-spike path MAE (not time-to-revert); A3 is a plain funding-level forecast. Both are carry-timing inputs if they beat last-value naive.
Predicted daily high–low range as TP/stop distance multiplier.
Forecast volume, then rank hours by session (Asia 00–08 / London 07–16 / NY 12–21 UTC).
C2 (vol-clustering persistence) and B3 (liquidation precursors) — no clear edge; revisit only with more data.