Market impact is the cost you simulate, not look up: walk the book level by level, slippage = (avg - mid)/mid x 1e4, then fit a·x^b. The exponent near 0.5 is the square-root law, and it lets you price sizes past the visible book.
A big maker's PnL isn't the spread, it's positional: skewing thousands of weak alphas into passive quotes. Zero cost makes half-bp signals tradeable, and ensembling them cancels noise into the bulk of the profit.
Your spread must track volatility, but how? Bucket volatility into three quantile regimes with fixed widths, or interpolate between them (linear, spline, sigmoid) so the spread glides instead of jumping at the boundary.
Crypto books break the textbook: negative spreads are data artifacts, blowouts are wipeouts from large orders clearing levels, and more resting size means a tighter spread because deep books are competitive books.
Market orders are autocorrelated, roughly AR(1): buys follow buys in clustered spikes. Don't post offers into a buy run. And beware, OLS underestimates phi, so your model clears you to requote half a run too early.
A maker repricing every few hundred milliseconds needs tick-scale volatility, not one-minute bars. Measure it three ways: std of traded prices, the book's churn rate, or the volatility of your own fair price.
Imbalance tells you how much size rests in the book. Arrival, cancellation, and update rates tell you how fast it churns, and the cancellation rate, measured right with the trade feed, is your spoofing alarm.
When New York opens, a volume surge hits crypto. From 13:30 to 15:00 UTC, if volume keeps rising, ride the sign of the first half hour to the close of the window. Track the real open, not a frozen timestamp.
Volume does not tell you direction, it tells you whether the move sticks. High volume means continuation, low volume means reversion. Use it as the regime switch on a directional signal, not as the signal.
The exchange 24h change rolls, so the headline jumps when an old crash drops out of the window, not when price moves. Uninformed traders chase the mirage; front-run them by reading the hour about to exit.
Slice average return and risk by UTC hour and a time-of-day premium appears: long BTC at midnight, short into the early hours. Then four fills of fees eat the 14 bps gross, which is why you treat it as a tilt, not a strategy.
SAR fixes vol seasonality by adding lags at 24 and 168 hours to an AR model, fit by OLS. The daily lag injects the midnight and 14:00 bumps a plain AR(1) misses, so you stop quoting tight into them.