How it works

One tick, a fee model, and a gate that says why.

Peregrine reads public quotes, scores each one against its own market's recent history, looks for a gap between venues, and asks a risk gate whether to act. The whole decision is arithmetic, it takes about 25 µs, and everything it does is paper.

Illustration: a narrow stone corridor with a single steel barrier arm lowered across the passage, a warm lamp above it, and a blank wall at the far end.
The fast loop

One tick, start to finish

The hot path is a single synchronous function. Nothing in it waits on the network, and no language model is anywhere near it.

Because it is synchronous, nothing interleaves inside one tick. Measured on live data on November 3, 2026, the verdict took about 25 µs at the median and about 1.3 ms at p99.

  1. Update the book

    The tick is scored against the market's prior mean and variance, then folded in. Scoring after folding would let a jump inflate its own variance and cap how large it could look, so the order matters, and a test holds it.

  2. Re-mark positions

    Any open paper position on that market is re-marked, and closed if its target, stop, or time limit has been hit.

  3. Scan

    The cross-venue check compares the best bid across venues against the best ask across venues, both fresh. The snapback check asks whether this market's mid is stretched far from its own mean. Each reports an edge net of fees.

  4. Gate

    The risk gate answers PASS with a size, or BLOCK with a reason. A block is recorded on the tape, throttled per strategy and symbol.

  5. Time it

    The elapsed time since the quote arrived goes into a latency ring, which feeds the p50, p99, and max on the dashboard.

Fees

The fee model

An edge only counts after the taker fee on both legs, and the fees are on the page.

Each venue has a taker fee per side, in basis points. The defaults are deliberately not the lowest fee tiers, so a result never leans on a discount the account may not have. Set them to the account's real tier before reading anything into an edge.

A cross-venue idea buys at one venue and sells at another, so it pays both venues' fees. Between Kraken and Gemini that is 55 basis points, between Kraken and Coinbase 65, and between Coinbase and Gemini 70. The books in the screenshots cross by a few basis points at most.

The fee model
Kraken25 basis points a side
Coinbase40 basis points a side
Gemini30 basis points a side
Binance.US10 basis points a side (in the model; not one of the three default venues)
Real books

What happened on real books

The honest result of the first live run is that nothing cleared.

On November 3, 2026, live books crossed by 1 to 5 basis points while fees ran 55 to 70 basis points per round trip, depending on the pair of venues. Every cross-venue idea had a negative edge after fees, so the risk gate blocked every one, and the dashboard showed the block and the reason.

That is the intended behavior. Peregrine reports a gap the fees eat as a negative edge, not as an opportunity, so a trade the fees would swallow can never look like a win.

Risk

The risk gate

Every idea passes the gate before any fill, with a size or a reason.

The limits are editable from the Risk page, validated, and applied to the very next order. These are the defaults.

The risk gate
Order size$1,000 per order
Position per market$2,500 of open notional in one market
Gross exposure$10,000, long plus short, across all markets
Daily loss$250: the engine halts itself when the day, counted in UTC, loses this much
Trades per minute30 in a rolling minute; orders beyond that are blocked
Minimum net edge2 basis points, after fees
Halt

The kill switch

Stopping is one button, and starting again is a deliberate act.

  • Halt and flatten asks for confirmation, then stops all trading and closes every open paper position at its current mark, with the same slippage and taker fee as any fill.
  • Reaching the daily-loss limit trips the same halt by itself.
  • Only a person clears it, with Resume. The halt is saved with the account, so a restart does not clear it, and nothing resumes on a timer.
Paper

The paper account

Simulated money, filled the plain way.

The paper broker fills at the touch, worsened by 2 basis points of slippage, and pays the venue's fee. A cross-venue pair realizes on the tick against inventory assumed to sit on both venues, which is the standard setup, because moving funds between venues is far too slow to be part of the trade. A snapback opens a position with a target at the mean, a stop at twice the stretch on the other side, and a 120-second time stop.

The account begins with $10,000. Every couple of seconds it is saved to a database: cash, open positions, the halt, and the risk limits, along with every fill and a per-minute equity sample. A restart picks up where it left off, with the day's loss baseline kept. Reset starts the account over at $10,000 with no positions and a fresh baseline; it does not clear a halt, and the saved history stays. Without a database, which is for tests and quick demos, the account lives in memory and is lost on restart.

Boundaries

Boundaries

What Peregrine is, and what it is not.

  • Paper only. No live broker exists in the code, and no setting or route enables one.
  • No keys. Every stream is public, so Peregrine holds no venue credentials.
  • No language model on the order path, and none called anywhere in Peregrine today.
  • No claim about real-money performance. The dashboard never presents a paper result as evidence of one.

Peregrine is internal to Renkara, runs locally, and is not offered for sale.

Contact

Questions about this tool?

Write to Renkara Media Group and a person will answer.