Skip to content
In production

Trinity

A trading system that runs on our own capital.

Trinity is NSi4's high-frequency arbitrage system. It trades the studio's own money around the clock, so every engineering decision in it has a price.

  • Score. Each currency's composite score, beside its three parts: opportunity, executability and market quality.
  • Gap frequency. How often the gap between exchanges reached 5, 10, 20 and 30 bps.
  • Cycles. Each score is the average of the last day's 23 cycles, across 398 currencies.

01 Problem

In arbitrage, a late decision is a loss.

An arbitrage window opens when the same asset is priced differently on two exchanges, and it closes the moment someone else acts on it.

Acting on it means two orders, not one: a buy on one exchange and a sell on the other, sent together and meant to fill together. If one leg fills and the other does not, the system is left holding a position it never wanted.

So the system has to be fast and careful at once. A slow decision misses the window; a careless one takes the position. Both cost real money.

02 Constraints

No client funds, no maintenance window.

Capital
NSi4's own money, never a client's
Hours
24/7/365; the market sets no maintenance window
Venues
Three exchanges, each with its own feed format and order API
Fleet
Linux hosts in AWS Tokyo, running around the clock
Risk
Risk checks run before every order, not after
Audit
Every decision recorded with full telemetry

03 What We Built

An arbitrage system built risk-first.

One pipeline from market data to order, with a check before every order and a record of every decision.

Pipeline

  1. FeedOrder books and trades from three exchanges, parsed as they arrive
  2. EvaluateBoth books compared on every update
  3. CheckEach order against its limits and the balances it moves
  4. SendTwo orders, one per exchange
  5. RecordEvery decision and its timing
The path of one arbitrage, from market data to order. The figures in 04 are measured along it.

Feeds

Each exchange streams its order book and trades over a WebSocket in its own format. Trinity's parsers for all three allocate no memory on the hot path, so the garbage collector never pauses a decision.

Decision and risk

Every update re-evaluates the pair across both books. An opportunity that passes becomes two orders, one buy and one sell, and each is checked against its limits and the balances it moves before it is sent.

Record and replay

A recorder stores every exchange's order book and trade feed hour by hour, and a batch runner replays a full day of it, pair by pair, to find where the opportunities are.

The trader itself ships the same way: between 13 and 19 April 2026 it went from version 2.8.43 to 2.8.92, forty-nine builds, each one watched against the one before it.

04 Evidence

Measured by Trinity itself.

Every figure on this page comes from Trinity's own counters. Symbols, venues, order sizes and P&L stay private.

  • Status. Each transfer between two exchanges, pending until the target confirms the deposit.
  • Progress. An estimate of the whole transfer, from sending to arrival.
  • Timing. How long the funds took to send, left, and to arrive at the target exchange, right.

Decision trace

Illustration

Time Pair Spread Risk checks Action
/ all passed sent
/ balance check failed held
/ all passed sent

Every decision is recorded with the checks it passed, so any trade can be traced and reviewed. Times, pairs and spreads are covered.

100,000+/s Trading decisions Trinity makes, on NSi4's own capital NSi4 internal counts, Trinity
500ns–10µs From signal to order NSi4 internal counts, Trinity

05 Stack

What it runs on.

Status
In production at NSi4 · not for sale or licensing
Capital
NSi4's own
Built with
.NET 10 · Linux on AWS · SQL Server

Not for sale

Trinity is not a product. The engineering behind it is.

The same studio builds WRS, fromScratch, Tycho, AliveMD and Keyline Studio.