Skip to content

Glossary

Term Meaning
ack a venue's confirmation that it accepted an order (OrderAckMsg); an order is working only after it
adverse selection the cost of a maker fill that happened because the price was about to move against the quote; the gap between the quoted half spread and the PnL realised (Economics)
basis point (bp, bps) 0.01 % = 0.0001. 5_bps is a Ratio of 0.0005; 5 bps of 60,000 USDT is 30 USDT
book the price levels of one instrument: an L2 book aggregates quantity per price, an L3 book keeps each order
book ticker a top-of-book update (best bid and ask with quantities) without depth
cancel-all a request that cancels every open order of an instrument or account; fastmm-live sends one per venue over REST at shutdown (behind a gateway, the gateway cancels the strategy's orders instead)
cancel-replace amending a working order's price or quantity in one request; FastMM uses it when the venue and supports_replace allow, else cancel then new
channel one connection of a venue: 0 is market data, 1 is order entry and the user stream (ConnectionStateMsg::channel)
client order id FastMM's id of an order: the session epoch in the upper 32 bits and a sequence number in the lower 32
context (ctx) the strategy's view of the engine passed to every hook (StrategyContext)
desired quotes the ladder a strategy asks for with set_quotes (DesiredQuotes), up to 8 levels per side
dry run --dry-run: public market data only, no keys; the strategy quotes on paper and nothing is sent. It runs as <name>-dryrun, starts flat and writes no store, kill ledger or strategy state
engine clock the time the engine uses for all decisions, read once per event; recorded in the journal
epoch see session epoch
fill an execution of one of our orders; on_fill receives a Fill
funding a perpetual's periodic payment between longs and shorts; booked as realized PnL of the instrument, not as a fee (EventType::Funding)
fill ratio fills divided by new orders sent, reported by fastmm-backtest
fixed point integers with an implied scale: Price, Qty and Notional count units of 1e-8 (Fixed point)
gateway fastmm-gateway, a process that holds the venue sessions and the account's risk for up to 16 strategies attached over shared memory (Run behind a gateway)
harness StrategyHarness<S>, a real engine with a simulated venue for unit tests
hook a strategy member function the engine calls on an event (on_book, on_fill, ...)
hot hook a Python strategy method marked @fastmm.hot, compiled by Numba and called by the engine thread without the GIL (Hot hooks)
hysteresis the quote manager keeps a resting quote whose price or quantity is close enough to the desired one (min_requote_ticks, min_qty_bps)
instrument table the instruments of a session, indexed by InstrumentId
journal (.fmj) the file of every event a session consumed, in order, with the engine clock (Journal format)
kill switch a flag, global or per venue, that blocks new orders and replaces but not cancels (Kill switch and shutdown)
late fill a fill for an order that was already terminal (for example cancelled)
level one price with its quantity (Level{price, qty}); level 0 is the best
lot the quantity increment of an instrument; quantities are multiples of it
maker, taker a maker's order rested in the book; a taker's order traded against it
microprice the touch weighted by the opposite side's size: (bid * ask_qty + ask * bid_qty) / (bid_qty + ask_qty)
mid (best bid + best ask) / 2
notional price times quantity, in the quote currency (Notional)
OMS the order management system: the state machine of every order from send to a terminal state
outbound hash the SHA-256 over every order message a run sent; equal hashes mean identical order streams
post-only an order the venue rejects (or reprices) if it would trade on arrival, so it is always a maker order
queue position the displayed quantity resting ahead of our order at its price; it decides whether a trade at that price reaches us. Simulated by queue_conservatism under [backtest] fill_model = "l2_queue"; estimated live by ctx.queue_ahead
quote a resting bid or ask a market maker keeps in the book; FastMM's quote manager owns quote orders
quote manager the engine component that turns desired quotes into new, cancel and replace orders
Ratio a dimensionless fixed-point factor; 1.0 is raw 100,000,000 and 1 bp is raw 10,000
raw the integer inside a fixed-point value (.raw); 1.5_px has raw 150,000,000
rebate a negative fee: the venue pays the maker. [venues.<name>.fees] maker_bps below zero
reconciliation on every connect, and when the engine asks (ControlCommand::Reconcile), the venue's executions since the last known one are replayed and its open orders compared with the OMS: Begin, open orders, End
registry the table of strategies by name with their Sim, Replay and Live factories
replay running a journal back through the engine and strategy; --verify compares the order stream
session epoch a counter stored in [engine] epoch_file (behind a gateway, the gateway's) that makes client order ids unique across restarts
sim exchange fastmm-sim-exchange, a local exchange that speaks the Binance Spot API (Simulated exchange)
spread best ask minus best bid; a quoted spread is our ask minus our bid
stale a feed with no traffic for [venues.<name>] stale_ms, which pulls the venue's quotes; a book older than [risk] stale_md_ms refuses new orders
STP self-trade prevention: an order that would trade against our own resting order is refused
strategy module a strategy library's registration function (StrategyModule)
testnet, Demo Mode practice environments of a venue with their own keys: Binance Demo Mode market data follows the real market, testnets have their own thin books
tick the price increment of an instrument; prices are multiples of it
touch the best bid and best ask
transport how the engine sends orders: Sim (in-process matching), Replay (from a journal) or Live (a venue)
TSC the CPU's time-stamp counter; TscClock maps it to wall time
venue an exchange or simulator connection, configured under [venues.<name>]