Data

Load tick files, check their quality before trusting a backtest on them, and pull fresh history. Cost is always estimated before anything is billed.

Available datasets

loading…

Upload tick data

Choose a file or drop one here CSV, CSV.GZ, TSV or Parquet. Columns are detected automatically.

Fetch from Databento

Fetch crypto from Massive

Run

Pick a strategy; its declared parameters become the form below automatically. Skipped-setup counts are shown alongside the results, because a filter you cannot count is a filter you cannot evaluate.

loading…

Parameters

Strategies

Built-ins are read-only — duplicate one to make an editable copy. Saving validates the code by actually loading it, so a strategy that saves is a strategy that runs. Custom strategies live on the volume and in Postgres, and survive deploys.

Library

loading…

Editor

Analyze

Pick a dataset and a strategy; this reads the analysis of that pairing. Account-style statistics first — direction win rates, Sharpe, Z-score, AHPR/GHPR, monthly gain, when the edge trades, risk of ruin — then the spec's trend tests: every one a segmentation of the trade log. Group by any logged dimension and read total R against trade count — a three-trade bucket with a great average is noise, not a discovery. Nothing here executes a backtest; an already-analyzed pairing is read from its stored result.

Historic Runs

Every backtest this console has executed or restored from the database — the archive, not the workbench. Open one to read its results; to analyze a strategy against a dataset, use Analyze, and to execute a fresh backtest, use Run.

View

One run in full — results, QuantStats tearsheet, equity and drawdown, and the trade log. Pick a run on Historic Runs to load it here.

Sweep

One axis at a time by default. Cross only the two or three axes that show real sensitivity, and read the out-of-sample column before believing anything.

Axes

Live

The Steady Seven paper-trading runner, streamed from the trading machine. Simulated fills are the certified engine's; the executor table shows the real paper-account orders. Parameters are fixed in live/cells.py and change only with an edit + restart, so the live test always runs the exact configuration that was backtested.

Waiting for the runner to push data… (set TSIM_LIVE_URL + TSIM_LIVE_TOKEN on the trading machine)