Keel Docs
Paper Trading

The Paper Fill Model

How Keel prices every simulated paper fill. Live Hyperliquid mids, 4.5 bps of modelled slippage each way, real fees and real funding, and one published model for every run.

Ask AI about Keel

Every paper run on Keel is priced by one published model, ModeledSlippageFill version 1. Every simulated fill records the model that produced it, by name, version and params, so you can check any fill against the model that priced it. The model's params are:

{ "slippage_bps": 4.5, "venue_fee_bps": 4.5 }

The seven sections below are the whole model. When it changes, its version changes and this page changes with it.

Fills

A paper order fills at the Hyperliquid mid that Keel recorded for the most recent completed minute when the order executes. It is the same venue mid the live engine prices from. If that mid is more than 5 minutes old, the order is refused instead of filled at a stale price.

The fill price is the mid plus 4.5 bps of modelled slippage, symmetric on both sides:

  • a buy fills at mid × 1.00045;
  • a sell fills at mid × 0.99955.

At a mid of $100, a buy fills at $100.045 and a sell at $99.955. Every order fills at its full size. There are no partial fills.

Fees

Each fill pays two fees on its notional (size × fill price). Every simulated fill is charged as a taker fill.

  • A 4.5 bps venue fee.
  • Your plan's Keel trading fee:
PlanKeel trading feeTotal per fill
Free5 bps9.5 bps
Starter3 bps7.5 bps
Trader2 bps6.5 bps
Pro1 bp5.5 bps

The backtest a paper run is compared against charges the same total fee schedule.

Funding

Paper positions pay and receive real hourly Hyperliquid funding rates. Funding is accrued at every evaluation and after every fill, for each hour a position was held. The position is reconstructed as it stood at each hour and priced at the mid Keel recorded for the minute that completes the hour. The sign follows a live account: when the rate is positive, longs pay and shorts receive.

Funding is never estimated. An hour whose rate has not arrived yet waits, and the accrual catches up when it does. If the rate is still missing 7 days after the hour, the hour becomes a disclosed funding_gap record instead.

The $10 minimum order

Hyperliquid's $10 minimum order value applies to paper. An order whose value at its fill price is below $10 does not fill: it is recorded as skipped (SKIPPED_MIN_NOTIONAL). An order of exactly $10 fills.

The backtest a paper run is compared against applies the same floor, as a minimum trade size of $10 divided by the run's simulated capital, and the same fees.

Capital

A paper run starts with simulated capital of $1,000, $10,000 or $100,000. You choose it when you start the run, and it is fixed for the life of the run. The model does not simulate order-book depth, so $100,000 is the largest a run can be.

Known differences from live trading

The model does not reproduce every detail of trading on the live venue. These are the differences it knows about:

  • The model does not round order sizes to each asset's lot size.
  • There are no partial fills.
  • The first fill happens when you start the run, part-way through a bar, not at a bar close.
  • A held asset with no fresh mid is marked at the last mid Keel recorded for it, and no equity snapshot is written until every held asset has a fresh mark again.
  • A stopped run freezes with its open positions at their final marks.
  • Equity snapshots are written after every fill and at every evaluation.
  • A funding hour whose rate never arrives becomes a funding_gap record after 7 days.
  • A fill's mid is the last live observation of its minute. That minute may later be re-sealed from the venue's archive; the record then shows the difference as a recorded difference, and the fill itself never changes.

Policy

One model for every run

Policy: one model for the whole fleet, versioned, recorded on every fill; never house-adjusted, never per-user, never asymmetric.

Every paper run on Keel, on every plan, is priced by the same model with the same params. Plans differ only in the Keel trading fee shown under Fees, which is the same fee a live run on that plan pays. See Pricing for the plans.