🧠 Our in-house statistical trading system · every trade backed by numbers · OKX / Hyperliquid Explore Quant Pro →
trading bots

Free Market Maker Bot: How to Run Liquidity-Provision Strategies Without Paying for Software

QuantPie Editorial Published 2026-06-04 · 16 min read · 3425 words
Free Market Maker Bot: How to Run Liquidity-Provision Strategies Without Paying for Software

Free Market Maker Bot: How to Run Liquidity-Provision Strategies Without Paying for Software

Introduction

Market making is the oldest profit engine in finance, and in crypto it has been democratized to a degree that would have been unthinkable on a traditional equities desk a decade ago. You no longer need a colocated server, an exchange membership, or a six-figure software license to quote two-sided markets and harvest the spread. A growing ecosystem of open-source and zero-cost market maker bots — Hummingbot being the most prominent — lets any trader with API keys run inventory-managed quoting strategies on Binance, OKX, Kraken, dYdX, Hyperliquid, and dozens of other venues.

But "free" is a loaded word. The software costs nothing; the strategy, the inventory risk, the adverse selection, and the infrastructure absolutely do not. A naive market maker that quotes a fixed spread around mid-price will get picked off by faster participants, accumulate toxic inventory during trends, and bleed capital while looking busy. The difference between a market maker that earns a Sharpe of 3 and one that quietly donates its balance to informed flow comes down to a handful of parameters — spread, order refresh, inventory skew, and hedging — and how disciplined you are about measuring fill quality.

This article is a working tutorial for experienced traders who already understand order books and want to deploy a free market maker bot correctly. We will cover the mechanics of pure market making, the math behind inventory skew and the Avellaneda-Stoikov reservation price, concrete parameter ranges with real fill numbers, the fee-rebate arithmetic that decides whether you are even playing a winnable game, and the operational pitfalls that destroy accounts. We will also look at where pure bot quoting ends and AI-driven signal synthesis begins.

The Mechanics of Bot-Driven Market Making

What the bot actually does each cycle

A market maker bot runs a tight loop. On each iteration it cancels stale orders, reads the current order book and your inventory, computes a bid and ask price, sizes the orders, and posts them as maker (post-only) limit orders. The loop interval — the order refresh time — typically ranges from 1 to 60 seconds depending on volatility and venue rate limits.

The canonical "pure market making" strategy quotes symmetrically around a reference price:

  • bid = ref_price × (1 − spread/2)
  • ask = ref_price × (1 + spread/2)

where ref_price is usually the order-book mid, but can be a microprice (volume-weighted between best bid/ask) or an external oracle. The spread is your edge; every round-trip fill (one buy + one sell) captures approximately the full spread minus fees.

flowchart TD
    A[Read order book + inventory] --> B[Compute reference price]
    B --> C[Apply inventory skew]
    C --> D[Calculate bid/ask with spread]
    D --> E[Cancel stale orders]
    E --> F[Post-only limit orders placed]
    F --> G{Order filled?}
    G -->|Yes| H[Update inventory + optionally hedge]
    G -->|No, refresh timer| A
    H --> A

The deceptively simple part is steps B and C. A bot that never adjusts its reference for inventory will, during a downtrend, keep buying as price falls — its bids fill repeatedly while its asks sit untouched — until it holds a large losing long position. This is adverse selection, and it is the single largest source of losses for amateur market makers.

Pure market making vs. cross-exchange vs. AMM liquidity

Free bots ship several strategy families. Understanding which one fits your capital and risk tolerance matters more than any parameter:

Strategy How it earns Capital efficiency Main risk Skill required
Pure market making Bid/ask spread on one venue Medium Inventory / adverse selection High
Cross-exchange MM Quote on illiquid venue, hedge on liquid venue Low (capital on 2 venues) Latency, transfer risk Very high
AMM / CLMM liquidity Fees from concentrated LP range High Impermanent loss Medium
Liquidity mining Exchange rebates for tight quotes Medium Token reward volatility Low–medium
Perp funding capture Quote perp, collect funding + spread Medium Funding flips, liquidation High

Pure market making is where most people start because it needs only one exchange account. Cross-exchange (also called "xemm") is theoretically lower-risk because you immediately hedge every fill on a deeper venue, but it demands two funded accounts, fast execution, and careful management of the inventory imbalance that builds between venues. For a first deployment, single-venue pure MM on a liquid pair is the right training ground.

Inventory Risk and the Avellaneda-Stoikov Model

Why symmetric quoting fails

Suppose you quote ETH/USDT at a 20 bps spread, 1 ETH per side, refreshing every 5 seconds. In a flat, mean-reverting market this is beautiful: you buy at the bid, sell at the ask, and pocket ~20 bps minus fees on each round trip. If you turn 30 round trips per day on $3,000 of notional per side, that is 30 × 0.20% × $3,000 ≈ $180/day gross before fees.

Now ETH trends down 4% over an hour. Your bids fill 15 times; your asks fill twice. You are now long roughly 13 ETH bought at progressively higher prices than the current market, sitting on an unrealized loss that dwarfs a week of spread capture. The spread you "earned" is an illusion against the mark-to-market hole.

The fix is inventory skew: shift your quotes away from the side you are accumulating. If you are getting too long, lower both your bid and ask so your bid fills less often and your ask fills more, pushing inventory back toward neutral.

The reservation price

Avellaneda and Stoikov's 2008 model formalizes this. Instead of quoting around mid-price, you quote around a reservation price that is shifted by your inventory:

r = s − q × γ × σ² × (T − t)
  • s = current mid-price
  • q = current inventory (positive = long, signed in units)
  • γ = risk aversion coefficient (higher = more aggressive skew)
  • σ² = variance of the asset
  • (T − t) = time remaining to the horizon

When you are long (q > 0), r drops below mid, so both quotes shift down and you favor selling. The optimal total spread around the reservation price is:

spread = γ × σ² × (T − t) + (2/γ) × ln(1 + γ/κ)

where κ is the order-book liquidity intensity (how quickly fill probability decays as you move away from mid). The practical takeaway: spread should widen with volatility (σ²) and with risk aversion (γ), and the inventory term mechanically de-risks you as the horizon shrinks.

Most free bots, including Hummingbot's avellaneda_market_making strategy, expose risk_factor (γ), order_amount_shape_factor (η), and an inferred or configured volatility. You do not need to derive the PDEs — but you must understand that γ is your inventory-control knob. Set it too low and you accumulate toxic positions; set it too high and your quotes are so skewed you stop filling and earn nothing.

A concrete skew example

Take ETH at s = $3,000, hourly volatility σ = 1.2% so σ² ≈ 0.000144 on price-squared terms (scale carefully — bots normalize this), γ = 0.5, and a 1-hour horizon. If you are long q = 5 ETH:

The reservation shift de-prioritizes further buys. In Hummingbot terms, with inventory_skew_enabled = True and a target base of 50%, holding 70% of your value in ETH would shrink your bid size and inflate your ask size by the configured inventory_range_multiplier. With a multiplier of 1.5 and 20% deviation from target, your ask order might be sized 1.6× your bid — actively unwinding the imbalance through differential fills rather than aggressive repricing alone.

Fees, Rebates, and Whether the Game Is Even Winnable

The fee math that kills most strategies

Your gross edge per round trip is the spread. Your costs are the maker fees on both legs. The strategy is profitable only if:

spread > maker_fee_buy + maker_fee_sell + (expected adverse selection cost)

This is brutal on most retail-tier accounts. Consider three fee scenarios for a round-trip trade with a 20 bps quoted spread:

Venue / tier Maker fee (per side) Round-trip fee Net spread (20 bps quoted) Verdict
Binance VIP 0 0.10% 0.20% 0.00% Unviable
Binance VIP 0 + BNB (25% off) 0.075% 0.15% 0.05% Marginal
OKX with rebate tier −0.005% (rebate) −0.01% (you earn) 0.21% Strong
dYdX / Hyperliquid maker 0.01–0.02% ~0.03% 0.17% Good

The lesson is stark: on a vanilla retail spot account paying 0.10% maker, a 20 bps spread leaves you zero edge before adverse selection even enters the picture — you are guaranteed to lose. You must either (a) reach a fee tier with maker rebates, (b) trade venues with structurally low maker fees like Hyperliquid or dYdX, or (c) widen your spread enough to cover fees plus a buffer, which reduces fill frequency.

This is why serious free-bot operators gravitate toward maker-rebate venues and perp DEXs. When the exchange pays you a fraction of a bp to provide liquidity, the spread becomes pure profit and the breakeven math inverts in your favor.

Sizing for fill probability vs. inventory cap

Order size trades off two things: larger orders earn more per fill but build inventory faster and increase per-fill adverse selection. A common framework:

  • Set a hard inventory cap as a fraction of account equity, e.g. no more than 40% of capital in the base asset at any time.
  • Size each order so that 3–5 consecutive one-sided fills would not breach the cap. If your cap is 4 ETH of imbalance tolerance, quote ~1 ETH per order.
  • Use multiple order levels (laddering): instead of one order at 20 bps, post 0.4 ETH at 12 bps, 0.4 at 22 bps, 0.4 at 35 bps. This captures tight-spread flow while keeping average fill price favorable.

Building and Running a Free Market Maker Bot

Choosing your stack

The dominant free option is Hummingbot — open-source (Apache 2.0), Python, with connectors for 20+ CEXs and DEXs. It runs locally via Docker or source, stores keys encrypted on your machine, and is genuinely zero-cost. Alternatives include Freqtrade (more directional than MM but extensible), and exchange-native tools like Pionex's built-in bots for those who want a hosted, no-code experience.

flowchart LR
    A[Exchange API keys] --> B[Hummingbot core]
    B --> C[Strategy config: spread, refresh, skew]
    C --> D[Quote engine]
    D --> E[Post-only orders on exchange]
    E --> F[Fill events]
    F --> G[Inventory tracker]
    G --> C
    F --> H[Performance log / Sharpe]

Step-by-step first deployment

  1. Pick a liquid pair with a tight natural spread — ETH/USDT, SOL/USDT. Avoid illiquid alts where you become the entire book and get run over.
  2. Start on a maker-friendly fee tier. If you cannot get below ~0.05% maker, use a perp DEX or paper-trade until you can.
  3. Configure conservatively: spread 0.3–0.5%, order refresh 10–15s, single small order per side (e.g. $200 notional), inventory skew enabled, target base 50%.
  4. Run in paper-trade mode for 48–72 hours. Hummingbot's paper trade simulates fills against the live book. Measure: round-trips per hour, realized spread per round-trip, max inventory imbalance, and PnL net of simulated fees.
  5. Go live with minimum size. Watch the first 200 fills obsessively. If your asks fill far more than bids (or vice versa) over a flat market, your reference price is biased — switch to microprice.
  6. Tune γ / skew until inventory mean-reverts to neutral within your refresh horizon during normal volatility.

Parameter starting points

Parameter Conservative start Aggressive Notes
Bid/ask spread 0.40% 0.10% Must exceed round-trip fees + buffer
Order refresh time 12 s 2 s Faster = more rate-limit pressure
Order levels 1 3–5 Laddering improves avg fill
Inventory target 50% base 50% Keep neutral unless directional view
Risk factor γ 0.5 2.0+ Higher skews harder against inventory
Max inventory 30% equity 60% Hard kill-switch threshold
Hanging orders Off On Leave filled-side partner resting

Risk Management and the Move to AI-Augmented Quoting

The pitfalls that empty accounts

Trending markets. Pure MM is implicitly short volatility and assumes mean reversion. In a strong trend it bleeds via adverse selection. Mitigation: a volatility/trend filter that widens spreads or halts quoting when a fast EMA diverges sharply from a slow EMA, or when realized volatility spikes above a threshold. Many blown accounts come from a bot quoting tight through a 15% candle.

API and infrastructure failure. If your bot dies after placing orders but before it can manage them, you are left with naked resting orders during a move. Always set order TTLs and use exchange-side time_in_force where available. Run on a stable VPS, not a laptop on home wifi.

Fat-finger config. A misplaced decimal on spread (0.02% instead of 0.2%) or size will quietly cross the book and pay taker fees on every order — the opposite of market making. Always verify the first live orders on the exchange UI.

Stale reference price. If the bot's mid-price feed lags the real market (websocket disconnect, throttling), it quotes a stale price and gets arbitraged instantly. Monitor feed latency and halt quoting if the last book update is older than a few seconds.

Ignoring the regime. The hardest problem is knowing when not to make markets. No fixed parameter set works across a quiet Asian session and a CPI-print spike. This is where static free bots hit their ceiling.

Where free bots end and signal synthesis begins

A free market maker bot is an excellent execution engine, but it is fundamentally reactive: it quotes around a reference and skews on inventory. It does not know that volatility is about to triple because a Fed decision drops in twenty minutes, or that order flow has turned toxic on one timeframe while staying benign on another. Bolting that intelligence on by hand — wiring news feeds, multi-timeframe volatility models, and validated entry/exit logic — is where most solo operators stall.

This is the gap that Quant Pro Cockpit is built to close for traders who have outgrown a bare quoting loop. Its L1/L2/L3 three-layer AI architecture does exactly the regime work a static bot cannot: L1 produces a multi-timeframe brief on trend and volatility state, L2 runs an event watcher for the scheduled and unscheduled catalysts that turn a calm market toxic, and L3 uses an LLM to synthesize those into actionable signals — telling your strategy when to tighten, widen, or stand down. Layered over a market-making execution loop, that turns a fixed-spread bot into a regime-aware one.

Equally important for anyone tuning spread and skew parameters is avoiding the overfit trap — a backtest that looks brilliant because it was curve-fit to one month of mean-reverting price action. Quant Pro Cockpit's EV dual-gate guard runs real out-of-sample walk-forward testing and applies a per-timeframe expected-value gate, so a parameter set only goes live if it survives data it was never tuned on. For market making, where the difference between a 0.3% and 0.4% spread is the difference between profit and slow death across regimes, that validation discipline is the entire ballgame. Your funds stay in your own OKX or Hyperliquid account — the cockpit synthesizes signals and times entries and exits, it never custodies or trades your balance for you.

A disciplined risk checklist

  • Hard inventory cap with auto-flatten if breached.
  • Volatility circuit breaker that halts quoting above a realized-vol threshold.
  • Per-pair max-loss kill switch (e.g. stop the bot if daily PnL < −2% of allocated capital).
  • Feed-staleness watchdog.
  • Separate API keys with withdrawal permission disabled — trading and reading only.
  • Daily reconciliation of bot-reported PnL against actual exchange balance.

FAQ

Is a free market maker bot actually profitable, or is "free" a trap?

The software being free does not make the strategy free to run. On a standard retail fee tier paying 0.10% maker, a typical 10–20 bps spread leaves zero or negative edge after fees, so you will lose money no matter how good the bot is. Free market making becomes genuinely profitable when you reach a maker-rebate fee tier or trade structurally low-fee venues (perp DEXs like Hyperliquid or dYdX, or rebate tiers on OKX), and when you control inventory tightly enough to avoid adverse selection. The bot is free; the edge comes from fees, discipline, and regime awareness.

How much capital do I need to start market making with a bot?

Mechanically you can start with a few hundred dollars, but it is not about minimums — it is about ratios. You need enough capital that your per-order size can be small relative to total equity (so a string of one-sided fills does not breach your inventory cap) while still being above the exchange's minimum order size. A practical floor is around $2,000–$5,000 for a single liquid pair, letting you ladder 3–5 levels of meaningful size while keeping max inventory under 30–40% of equity. Below that, minimum-order constraints force you into a position-sizing corner.

Why does my bot keep accumulating a losing position?

This is adverse selection from insufficient inventory skew. In a trending market, the side aligned with the trend fills repeatedly while the other side sits idle, leaving you holding a growing losing position. The fix is to increase your risk factor (γ) so the reservation price shifts harder against your inventory, enable inventory skew so the unwinding side is sized larger, and add a trend filter that widens spreads or halts quoting during strong directional moves. Pure symmetric quoting with no skew is mathematically guaranteed to do this — it is short volatility by construction.

Should I use pure market making or cross-exchange market making?

Start with pure single-venue market making. It needs only one funded account and lets you learn inventory management on a contained problem. Cross-exchange market making (quoting on a thinner venue and instantly hedging fills on a deep one) is theoretically lower-risk because you neutralize directional exposure immediately, but it requires two funded accounts, fast and reliable execution, careful management of cross-venue inventory drift, and tolerance for transfer/latency risk. The complexity jump is large; earn your stripes on single-venue first.

Can a bot know when to stop quoting before a volatility spike?

A static free bot cannot — it only reacts to price and inventory after the fact, which is why fixed-spread bots get run over during scheduled events like CPI prints or FOMC decisions. To anticipate rather than react, you need a signal layer that watches the event calendar and multi-timeframe volatility state. That is precisely the role of an architecture like Quant Pro Cockpit's L2 event watcher and L3 signal synthesis — feeding the "stand down now" decision into your execution loop before the candle, not after. Without that, your best defense is a conservative realized-volatility circuit breaker that halts quoting above a threshold.

Conclusion

A free market maker bot puts institutional-grade liquidity provision within reach of any trader, but the zero price tag conceals where the real work lives. The software is commoditized; the edge is not. Profitability hinges on three things you must get right before deploying a dollar: a fee structure that leaves net spread after round-trip costs (favor maker rebates and low-fee perp DEXs), inventory discipline that skews quotes hard enough to mean-revert your position rather than accumulating toxic exposure, and regime awareness that knows when not to quote. The Avellaneda-Stoikov reservation price gives you the math for the second; the first is pure arithmetic you can compute in a spreadsheet; the third is the hardest and the one where static bots fail.

Start conservative — wide spreads, small size, paper trade for days, then minimum live size — and let the data tune your parameters. Watch fill asymmetry like a hawk, set hard kill switches, and never let an account run unsupervised through a major catalyst. When you outgrow a bare quoting loop and need genuine regime intelligence and overfit-resistant validation, that is the moment to layer an AI signal engine on top. Market making rewards patience and punishes greed; the traders who survive are the ones who treat "free" as the beginning of the cost, not the end of it.

Weekly Digest in Your Inbox

One email every Sunday · top articles + trading opportunities + strategy updates