London DataTrading systems technology

Nexus explainer · companion to Research under controls

Bring a model

A model enters Nexus through one contract, the same for a model written here and a model written somewhere else. It declares what it forecasts, on what clock, over which markets and in what units. Nexus checks every batch against that declaration and refuses a mismatch by name, then sizes, limits and costs the forecast with machinery that already runs. The goal is plug-and-play. All 15 internal signals, 13 time-series and 2 panel, run through the contract. The routes for outside models are designed and held behind a gate, and this page says what is still missing.

Ways in3forecasts, target positions, or code that runs here
Internal signals moved1513 time-series and 2 panel signals
Live book after the moveidenticalits recorded results reproduced exactly
A model versiona hashof its declaration: change a field, get a new version
Routes from outsidegateddesigned, waiting on three conditions
Outside code run herenot offeredan outside model sends forecasts or targets

State read from the contract's design record, the code and the work board on 18 October 2026. The contract was agreed on 2 October 2026.

Three ways in, one boundary

Each way in has one type, and the simulator and the trader import the same one. Below the entry point the sizing, limits and costs already exist. Trading anything other than a trend book still needs its trader integration built.

Three ways in to one boundary A forecast batch enters at the forecast level and is normalised to one forecast scale, then sized, combined in a sleeve and allocated in the book. A target batch enters lower down, as a sleeve or a standalone book. Code that runs inside Nexus emits a forecast batch and enters at the forecast level. All three pass the contract boundary, which checks the declaration and stamps the time the forecast became available. Both paths end in a target book. 1 · Forecasts a value per market per bar 2 · Target positions a weight per market 3 · Code run here fit, then forecast; emits 1 THE CONTRACT declared fields checked per batch refused by name and recorded available time stamped by Nexus no restatement version = hash one scale sizing sleeve sleeve, or standalone book book targetbook trader Everything right of the boundary already exists.
The third way in, code that runs inside Nexus, is for models written here. A model written elsewhere sends forecasts or targets. Its code does not run on the platform.

What a model declares, and what it sends

A model is registered once, and the registration is enforced on every batch. A registered model is one sleeve's combined forecast over one universe (a sleeve is one sub-strategy: a set of markets and the rule that forecasts them). The signals inside it are building blocks: their forecasts are stored as components and are not registered separately.

Declared once

Registration

model_id         who it is
kind             forecast | target
origin           internal | external
owner
universe         a catalogue reference, not a list
clock            bar period and offset, UTC
horizon          matched exactly on every batch
scale            carver20 | sign | exp_return_bp
                 | zscore | native
forecast_scalar  a prior, and how fast to leave it
staleness        hold | decay | flatten | refuse
register_family  the group of related trials it is judged against
status           candidate → incubating
                 → live → retired
Sent each bar · illustrative values

Forecast batch

{
  "model_id": "your-model-daily",
  "model_version": "<hash of the registration>",
  "decision_at": "2026-10-16T21:00:00+00:00",
  "horizon": "1d",
  "scale": "zscore",
  "code_sha": "<the commit that produced it>",
  "forecasts": [
    {"instrument": "GOLD", "value": 1.3, "confidence": 0.6},
    {"instrument": "CRUDE", "value": -0.4, "confidence": null}
  ]
}

The sender states when it decided. It never states when the forecast became available: Nexus stamps that itself. A target batch carries the same identity, a unit (a fraction of capital, or a signed dollar position) and the markets it expected to cover.

Rules the contract enforces

Each rule exists because a backtest can flatter a model without one.

Where it stands, 18 October 2026

The programme moved the internal models first, so that the contract was proved on the live book before anyone outside depends on it.

Done

The contract's types, shared by the simulator and the trader. All 15 internal signals moved onto it, with the live book's recorded results reproduced exactly. A model registry in which each version is a fixed row, readable through an API, and a book must name the exact version it uses. A forecast store, filled each night from the same engine run that produced the book, never by recomputing. A registered model can fill a panel book's forecast slot in the strategy tester.

In progress

Trend books reading a registered model's forecasts, which needs a change in the engine and is in review. Profit and loss attributed to each model, and trial counting by model family. The trader's own record of the forecasts it trades on, built and switched off. The no-restatement rule is already catching cases: some soft-commodity forecasts came out different on a later night, and a fix is in review.

Gated

Forecasts from outside, sent to an API, and target positions from outside, with per-model caps and a per-model kill that does not halt anyone else. Both are designed. The gate opens on three conditions: an old run replayed through the contract matches the original, trial counting across the whole programme is confirmed in deployed code, and a decision on where outside forecasts are stored.

What plug-and-play still needs

A contract makes a model possible to connect. A quant still needs to be able to evaluate the platform in an afternoon, and that means a kit:

There is one more reason to want outside models. The due-diligence reviews cap at 4 because nobody but the builder has checked the work. A quant reviewing the harness their own model depends on would be the independent check the reviews cannot reach.

Sources: the model contract's design record and its agreed decisions of 2 October 2026, the internal-forecasters record, the model registry and forecast store in the simulator, and the work board, read on 18 October 2026. These are internal documents. Related pages: The strategy tester, Research under controls and the case study's model section.