Development

Strategies are built in stages, and most of them stop early.

Our process is designed to kill weak ideas cheaply and to give strong ones a fair, measured path to capital. Nothing skips a gate.

01

Hypothesis

A written mechanism: why the edge should exist, who is on the other side, and what else it predicts. The data split, costs and pass mark are fixed and logged before any data is read.

02

Replay

The idea is run against complete recorded market data, not samples, with realistic fees and the reaction time we can actually achieve. Every variant tried is recorded, so the final result can be corrected for how many were tried.

03

Latency model

The replay is repeated at our real seat: how far our node is from the current leader and where our transactions land relative to the trade we react to. Many ideas that pay at the front of the queue lose money a few places back.

04

Paper

The full system runs on live data with simulated orders. Its results are compared with what the replay predicted for the same hours. A large gap sends the idea back a stage.

05

Probes

Real transactions that land on chain but never trade. They measure the seat directly: landing rate, position in the block and timing, before any capital is at risk.

06

Small size

Capital only after every earlier gate, at the smallest size that tells us something. Size grows in steps, and only as the live record agrees with the research.

Speed

Speed is measured, not assumed.

In high-frequency work the question is never only whether a signal is good. It is whether the signal is still good by the time we can act on it. Part of that delay is distance, which we measure. Part of it is our own code, which we control.

Distance: measuredOur decision: controlledIllustration · segment lengths are not to scale
Observe

How soon we see it

Which feed we read, how far it travels, and how often it arrives late.

Decide

How fast we choose

A short, predictable decision loop, measured on every event, not on average.

Land

Where it lands

The slot and the position in the block, checked against the leader schedule.

What we build with

A small stack, kept close to the venue.

Live path

RustExecution code is written for a short and predictable decision loop, with every stage timed.

Research

PythonReplays, simulations and statistics, run against recorded data from a clean, committed state so every result can be reproduced.

Data

Complete trade historiesFull recordings of the venues we study, kept with checksums, rather than samples or vendor summaries.

Infrastructure

Close to the venueDedicated servers next to the relays and block engines we submit to, reached only through a private network.

Records

An append-only ledgerEvery hypothesis, decision and outcome is numbered and kept. Results that failed are kept beside the ones that passed.

Safety

Live systems are boxed in.

A fast system that can lose money quickly needs limits that do not depend on anyone being awake. Ours are set before a system starts and cannot be changed by the system itself.

  • A separate signer that approves only the kinds of transaction a strategy is allowed to send.
  • Spending caps that count across restarts, so a crash and reboot cannot reset a limit.
  • Trading keys kept off research machines and out of every repository.
  • Network access limited to a private network and a short list of destinations.