Validate strategies, point-in-time

Same SQL screens against history. Backtest with ?asof=YYYY-MM-DD, or replay against the actual historical fires of any named signal. Depth scales with plan (1 year on Hobby, 5 on Pro, all-time on Scale). No lookahead bias, no separate research stack.

GET /v2/scan?asof= + /v2/signals/.../history

The same query, on any past day

Pass ?asof=YYYY-MM-DD to any scan and get exactly what would have matched on that day — flags, indicators, and field values computed from data available at that point. Or query the signal history endpoint to see every time NVDA was actually rsi_oversold over the historical window.

backtest call
-- the same scan, 90 days ago
GET /v2/scan?q=rsi_oversold AND volume_unusual_2x
  &asof=2026-02-20
response
200·6 matches · point-in-time
tickerrsirel_volreturn_30d
NVDA27.32.4×+8.2%
AMD28.12.1×+3.4%
MARA22.53.2×−2.1%
RIOT26.82.7×+4.7%
COIN29.42.0×+11.3%
SOFI23.92.5×+6.8%

primitives you’ll use

Three primitives, one validation loop

Same screen, with history. Same signals, with their fires.

Backtests

Pass ?asof= to any scan and get point-in-time matches on that day. Same WHERE clause as live.

See backtests →

Signal history

Years of actual signal fires per ticker. Validate against what really happened, not what conditions imply.

See signals →

Screeners

The query you’ll be validating. Run it live or with ?asof= using the same syntax.

See screeners →

why this works

Built so research and production never diverge

comparison

DIY backtest pipeline vs Tickerbot

DIY backtest pipeline

Reconstruct the data, write the harness, hope for no lookahead

  • Source historical OHLCV; manage splits, dividends, delistings yourself
  • Implement indicators from scratch; debug against synthetic data
  • Build a research framework; reimplement it once for production
  • Constantly second-guess whether the backtest leaks future info

Tickerbot

Same SQL, historical or live

  • ?asof= on any scan; same syntax, same fields
  • Pre-computed indicators historical-correct by construction
  • Signal history is the actual fires, not a reconstruction
  • No research/prod divergence — there’s only one query

works with your agent

Agents are experts at SQL. Hand them the loop.

Hand validation to your agent. It can sweep dozens of variants of a strategy against history in seconds, then promote the winners to a live webhook — same SQL all the way through.

See the agent integration →

ship it

Get started