Research methodology
Simple preregistered baseline rules, completed-session inputs, next-session execution and separate chronological partitions. Synthetic tests establish implementation behavior rather than profitability.
Verified data contracts. Recorded state. Explicit boundaries.
QuantLab connects deterministic Python research components, an offline simulation journal and a typed web interface. Its focus is causal decisions, precise accounting and evidence that can be inspected.
Explore the strategy contracts →Simple preregistered baseline rules, completed-session inputs, next-session execution and separate chronological partitions. Synthetic tests establish implementation behavior rather than profitability.
Explicit incoming invented observations drive persisted decisions and simulated fills. Pause/resume, restart and duplicate-event handling are part of the engine; the dashboard only reads.
Cash, whole-share positions, cost basis and realized/unrealized profit remain distinct. Dividend entitlement becomes a receivable before eligible cash release; Decimal identities reconcile the account.
Schema checks, hash linkage and complete replay detect inconsistent records. Internal consistency is stated honestly: no external signature or rollback-proof anchor is claimed.
Python is the financial authority. Pydantic and Zod validate the data contract; TypeScript formats exact money strings and plots genuine recorded observations without recalculating balances.
Offline behavioral tests cover financial boundaries and persistence. GitHub Actions checks Windows and Ubuntu, with frontend lint, TypeScript and production-build checks. No invented live test counter is displayed.
The local dashboard displays invented synthetic prices and distributions. It has no broker, live feed, arbitrary file picker, trading controls or execution endpoint. Historical returns, strategy rankings and deployable investment claims are intentionally absent.
This explanatory showcase works without Python or SQLite. Public financial demonstrations remain unavailable until a separately reviewed sanitized synthetic snapshot is explicitly approved. A future public Next.js host can serve that approved immutable artifact; a private Python service remains separate and access-controlled.
Read the evidence and limitations →