Live · Avellaneda–Stoikov · v0.1

Market making,
priced like a quant desk.

Stoik runs an Avellaneda–Stoikov pricing engine across 12 centralized exchanges and 5 DEX protocols — with NATR/MACD filters, hard circuit breakers, and an encrypted key vault. Built for token issuers who want the spread, not the surprises.

gamma — risk aversion
γ= 0.50
vol window (3m candles)
NATR= 14
regime filter
MACD= 12/26/9
max drawdown
dd= 10%
BTC-USDT · Binance
spread 6.2 bps
67_145.200.9575.435
67_144.501.8424.478
67_144.000.7262.636
67_143.601.3981.910
67_143.100.5120.512
mid67_142.80+0.04%
67_142.500.4820.482
67_142.101.2041.686
67_141.800.8712.557
67_141.202.1434.700
67_140.500.6385.338
inv pct
51.2%
24h vol
$1.84M
24h pnl
+$842
/ 17 venues

One engine. Every order book that matters.

Binancecex
OKXcex
Bybitcex
KuCoincex
Gate.iocex
MEXCcex
CoinDCXcex
CoinSwitchcex
WazirXcex
ZebPaycex
Bitbnscex
Coinstorecex
Uniswap V3dex
PancakeSwap V3dex
Raydiumdex
Meteoradex
Orcadex
Binancecex
OKXcex
Bybitcex
KuCoincex
Gate.iocex
MEXCcex
CoinDCXcex
CoinSwitchcex
WazirXcex
ZebPaycex
Bitbnscex
Coinstorecex
Uniswap V3dex
PancakeSwap V3dex
Raydiumdex
Meteoradex
Orcadex
12
centralized exchanges
5
DEX protocols
6
chains supported
WS+REST
real-time feeds
/ product

Built like the desks we came from.

Stoik isn't a strategy bolted onto a generic bot. Every layer — pricing, filters, safety, key custody, telemetry — was designed with token treasuries and OTC desks in mind.

PRICING

Avellaneda–Stoikov reservation price

Inventory-aware reservation pricing with a tunable risk aversion (γ). Quotes walk away from inventory drift and adjust live as the book moves.

r = S − (q − 0.5) · γ · σ² · T
FILTERS

NATR-scaled spreads, MACD pause

NATR widens spreads when realized vol picks up. MACD pauses quoting outright when the histogram crosses your trend threshold — no quotes during regime breaks.

natr_length = 14 · macd = (12, 26, 9)
SAFETY

Drawdown circuit breaker

Per-bot session drawdown is tracked live. Cross your max_drawdown threshold and quoting halts until an operator manually resets the breaker. Spreads are also clamped to a configurable ceiling.

max_drawdown · spread clamp · manual reset
VAULT

AES-256-GCM key vault

Exchange API keys are encrypted at rest with a master key from your environment. Operators only see the last four characters — full secrets never leave the database.

AES-256-GCM · per-org isolation
GOVERNANCE

RBAC + append-only audit log

Three roles (superadmin, org admin, org viewer) with explicit guards on every endpoint. Bot creates, starts, stops, config updates, and key changes are all written to the audit trail.

JWT · 15m access · 7d refresh
TELEMETRY

TimescaleDB snapshots, replay-ready

Every bot snapshot — mid, bid, ask, spread, inventory, session PnL, circuit-breaker state — is written to a TimescaleDB hypertable with compression after seven days. Replay any window for tuning or post-mortems.

bot_snapshots · bot_trades · 7d compression
/ workflow

Three steps from cold start to live quotes.

01ONBOARD

Connect venues & fund

Bring your CEX API keys or DEX wallets. Stoik encrypts them with AES-256-GCM and tests connectivity end-to-end before anything goes live.

$POST /api/exchanges/connect
02CONFIGURE

Pick pairs & risk profile

Set inventory targets, spread floors, drawdown limits, and volatility filters. Defaults work for most token launches; everything is tunable per pair.

$γ = 0.10 · max_dd = 1.5%
03RUN

Monitor live, intervene rarely

Quotes go out within seconds. Watch fills, inventory, PnL, and circuit-breaker state in real time. Pause or kill any bot in one click.

$WS /ws/bots/{id}
/ strategy

The math that decides every quote.

Avellaneda & Stoikov's 2008 paper on high-frequency market making is still the cleanest formulation we know. Stoik takes the part that matters: a reservation price that walks away from inventory drift, then layers a NATR-scaled spread on top so quotes widen as realized volatility picks up.

No magic numbers. No black box. Every parameter is exposed in the dashboard and persisted to your audit log when it changes.

γ
risk aversion
NATR
spread scale
MACD
regime filter
stoik_mm_v1.py
# 1. reservation price walks against inventory
r = S − (q − 0.5) · γ · σ² · T
# 2. spread scales with NATR-driven volatility
δ = clamp(NATR · k, min_bps, max_bps)
# 3. final quotes per level
bid = r · (1 − δ) · skew_bid
ask = r · (1 + δ) · skew_ask
S·mid price
q·inventory %
σ·NATR vol
γ·risk aversion
/ talk to us

See Stoik on your token, live.

Tell us about your project and we'll set up a paper-trading instance on your top venue within 24 hours. No commitment — you see the inventory bar, the fills, the PnL, and decide.

Reply within 24h
Real engineer, not a calendar bot.
Paper-trade first
We ship a sandbox before any capital moves.
Your keys, your wallet
AES-256-GCM at rest. You can revoke anytime.
POST /api/demo-request
Request a live demo
● open

We'll only use this to reach out. No newsletters, no resale.