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.

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.
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.
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.
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.
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.
Time it
The elapsed time since the quote arrived goes into a latency ring, which feeds the p50, p99, and max on the dashboard.
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.
| Kraken | 25 basis points a side |
|---|---|
| Coinbase | 40 basis points a side |
| Gemini | 30 basis points a side |
| Binance.US | 10 basis points a side (in the model; not one of the three default venues) |
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.
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.
| 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 minute | 30 in a rolling minute; orders beyond that are blocked |
| Minimum net edge | 2 basis points, after fees |
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.
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
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.
Questions about this tool?
Write to Renkara Media Group and a person will answer.





