scientia

simulation · training · attestation

train agents in a backtest
that doesn't lie.

Scientia replays the market the way it actually happened — real Coinbase candles, delisted products left in the tape, every cost charged as it occurs — and refuses to report a number it cannot reproduce. We ran 630 momentum configurations through it. You can read what happened, and download the tape.

drag to rotate · 630 candidates · 0 survived

configurations searched

630

36 products · 2,799 days

positive out-of-sample

34

5.4% of the grid

PBO across the grid

0.60

reject above 0.50

beat buy-and-hold

1

benchmark +10%

run_ab44b768cadaVESPER-9 · dsr 0.00run_296076e66edeKESTREL-2 · dsr 0.00run_816815b0a11eMAGPIE-7 rejectedrun_f165263e6f8bANNEAL-4 rejectedrun_3b006a2da09dSIEVE-1 rejectedrun_05b82baada71PARALLAX-3 rejectedrun_581f04dc11fdCINDER-5 rejectedrun_f03ee8c61037LATTICE-8 rejectedrun_2737c7081f5fVERGE-0 rejectedrun_1c0a0b166729DRIFTER-6 rejected

act one · the lie

every backtest is
beautiful once.

annualised, net

+0.0%what the notebook printed
  • 00gross signal
  • 01− exchange fees
  • 02− spread
  • 03− latency
  • 04− market impact
  • 05− survivorship

dashed · the gross curve, kept for comparison

act two · the crucible

an order is not a price.
it is a queue.

01

signal

The agent sees bars stamped as_of ≤ t and nothing else, then emits an intent.

gross edge

02

queue

The order joins the book behind everything already resting at that price, and crosses the spread to get out.

−2.0 bps

03

latency

40 ms between decision and acknowledgement. You are filled when the price is already moving.

−1.0 bps

04

impact

0.1% of the day's volume, priced by the square-root law, not by hope.

−5.6 bps

05

fill

Partial, at a worse price, and charged the venue's actual taker fee.

−4.5 bps

edge remaining

18.0bps / trade

1,400 trades a year pays every one of these costs 1,400 times.

act three · the gauntlet

six gates. almost
nothing gets through.

630 real momentum configurations, backtested on 36 Coinbase products over 2,799 days. 2 failed no gate.

still standing

1,284

01

lookahead

02

survivorship

03

overfitting

04

fill fantasy

05

regime luck

06

cost blindness

act four · walk forward

train here.
test there.
never both.

Each fold trains on a window, throws away the bars either side of the boundary, and is scored only on what came after. The discarded gap is the embargo: it is as long as the longest label in the data, because a label that straddles the split carries the answer across it.

train embargo test
f01
+8.9%
f02
−4.1%
f03
+8.0%
f04
+1.5%
f05
+6.9%
f06
+12.6%
f07
+7.3%
f08
+2.2%

One fold of 8 loses money. They are reported, not dropped.

pooled OOS +5.4%·worst fold -4.1%

act five · the cortex

2 regions, and no tenure.

630 configurations were searched. 2 failed no gate outright, and both of those are flagged for overfitting — so nothing here has graduated. That is the finding, not a placeholder: the rest are kept on file with the gate that caught them, because a roster that quietly deletes its mistakes is a marketing page.

The Cortex: one region per configuration that failed no gate

hover a region

2 of 630 configurations failed no gate. Both are held on probation, and both are measured against a window the search never saw.

act six · the receipt

a number you can
re-derive.

These are the real hashes for the search behind the leaderboard. The data hash covers a file you can download from this domain and checksum yourself; the code hash covers the engine that replayed it. Change the book size and the impact model charges differently, so it is a different run with a different identifier. Change nothing and it cannot move.

read a full attestation

data_hash

36 products · 2,799 days · point-in-time

sha256:86ffb115125a120c7deb3c94

code_hash

the engine that replayed them

sha256:c22c860f3170ccfbe6ccf5bd

config_hash

windows, costs, universe

sha256:983da8d8e7fdc815c267db1b

trials

configurations searched, recorded not declared

630

blake3

run id

run_b67014e416af88e4

same inputs, same id — every time.

the whole thing, compressed

stop trusting backtests.
start reproducing them.