Agentic Trading Index

Paper trading costs for realistic venue behaviour

Trading desk screens displaying order book data for realistic paper trading tests.
Photo by AlphaTradeZone on Pexels

One operator sends every marketable order straight to a full simulated fill. Another delays fills, charges for crossing the spread and leaves some limit orders unfilled. The first produces cleaner reports. The second gives an unattended trading system a more useful test of costs and failure handling.

The difference is not a matter of realism as a slogan. It is a set of measurable assumptions about fees, available liquidity, queue position, latency and order state. A paper venue should expose those assumptions and let the strategy owner change them. Otherwise, a low simulated cost may reflect the simulator rather than the execution logic.

Price the full execution, not just the commission

Separate explicit and implicit costs

For each order, record commission and venue fees separately from spread crossing, slippage and market impact. For a marketable buy, the spread cost is the distance from the mid-price to the ask at the time the order could have reached the venue. Slippage is the movement between that reference and the fill. Market impact is the additional price movement caused by the order consuming available liquidity.

Do not count the same price movement twice. Choose a reference price, such as the mid-price when the strategy generated its signal, and define every cost against it.

Store the benchmark price, decision timestamp, submission timestamp, fill timestamp, fill quantity and fee currency with each execution. That makes a paper result reproducible and lets a live comparison use the same calculation.

The ranges below are typical market ranges, not audited figures for a particular venue. They vary with asset, order size, market conditions and fee tier. They work as starting points for calibration, not as constants to apply to every instrument.

Cost or mechanicTypical market rangePaper modelBenchmark check
Trading feesEquities: $0 to $0.005 per share; major crypto: 1 to 10 basis points per sideApply the selected fee schedule to each fill, including maker and taker ratesCompare fee currency and total fees per filled quantity
Quoted spreadLiquid large-cap shares: 1 to 5 basis points; major FX: 0.1 to 1.5 basis pointsUse bid and ask quotes at simulated arrival, not the signal priceMeasure spread paid against the mid-price at arrival
Market-order slippageOften 0 to 10 or more basis points for small orders, with wider outcomes in thin or fast marketsWalk available depth, then add a configurable residual impact termCompare shortfall by order size and volatility bucket
API round-trip latencyPublic internet connections often fall around 20 to 500 millisecondsSample latency and apply it to quote selection and order arrivalTrack median, 95th percentile and timeout rate
Limit-order fillsFrom zero to full quantity; queue position can leave a touched order unfilledModel displayed depth ahead, cancellations and trades at the priceCompare fill rate and time to fill for each price offset

Include operating costs in the budget

Trading costs are only one part of running the system. Market-data access can range from free delayed or limited feeds to tens or hundreds of pounds per month for paid data, depending on exchange rights and depth. A small cloud deployment might cost roughly £10 to £100 per month before premium data, storage growth or redundant infrastructure. Track these separately from execution shortfall so a cheap fill model does not disguise an expensive operating setup.

For developers who need a managed environment to run paper orders, the agentic paper-trading service starts at $9.99 per month. Compare its included data, order types and event logs with the requirements of the test. A subscription price does not establish whether a simulator models queue priority or venue-specific rejection rules.

Benchmark the assumptions against recorded events

A benchmark is useful only if the same strategy, market data and order instructions can be replayed. Capture a baseline run, then change one execution assumption at a time. For instance, compare immediate fills with a model that waits for the next quote update and fills only when displayed volume trades through the order price.

Build a compact test set that covers both normal activity and awkward order flows:

  • Use at least 20 to 30 trading sessions across quiet and volatile conditions, with the same symbols and decision schedule.
  • Test market, limit, cancel and replace instructions at several sizes, including sizes that exceed the top level of displayed depth.
  • Record fills, partial fills, rejections, cancellations and timeouts as distinct outcomes, not as one success or failure flag.
  • Compare execution shortfall in basis points, fill rate, time to fill, rejected-order rate and position difference after each session.

Stratify results by order size relative to recent traded volume or displayed depth. A 100-share order in a liquid share and a 100-share order in a thin instrument are not equivalent tests. For limit orders, track fill probability by distance from the mid-price and the amount of displayed volume ahead. If the simulator cannot represent queue position, mark its fill-rate result as optimistic rather than treating a price touch as a fill.

Model the venue mechanics that change outcomes

Use event-driven simulation where practical. A bar-based backtest cannot reliably say whether a limit order filled before the price reversed within the bar. Quote and trade events provide better inputs, though they still may not reveal hidden liquidity, exact queue priority or all venue routing decisions.

Latency needs similar care. Apply the delay between strategy decision, order submission, venue arrival, acknowledgement and fill. A single fixed delay is easy to implement but misses jitter and tail events. Start with a measured distribution, then test conditions such as:

  1. Delay the order until the next available quote after simulated venue arrival.
  2. Reject or time out orders when acknowledgement latency exceeds the configured threshold.
  3. Allow cancellation to race with a fill, then process whichever event the simulation orders first.
  4. Apply partial fills before a cancel acknowledgement and update the remaining quantity correctly.

Keep event ordering deterministic for a given input stream and random seed. Log both requested and accepted quantities, venue status codes, timestamps and the reason for each simulated fill or rejection. That log helps catch common implementation errors: treating a cancel request as a completed cancellation, resubmitting an order after a timeout without checking its status, or updating positions before a fill is confirmed.

Judge the simulator by the errors it exposes

A paper venue should help answer whether the strategy survives plausible execution friction, not predict every live fill. Run sensitivity tests around spread, latency, fee tier and available depth. If a modest change, such as doubling the assumed latency or widening the spread by a few basis points, reverses the result, treat the strategy as execution-sensitive. Consider smaller order sizes, stricter price limits or a different trading schedule before interpreting headline returns.

Set acceptance thresholds before reviewing a run. A developer might require position reconciliation to match every confirmed simulated fill, reject duplicate client order identifiers, and halt new orders after a defined sequence of stale data or API errors. The exact limits depend on the system, but they should be explicit and testable. Validate them with injected failures, not only clean market replays.

Keep a paper-to-live comparison plan for any later deployment. Compare identical symbols, order types and time windows, then report cost and fill differences by market condition. Do not tune the simulator until every paper result resembles a live result; that can turn calibration into hindsight. Record the model version and input data so changes remain explainable.

Most paper venues still make fills look cheaper than they are.

Frequently Asked Questions

What costs should a paper trading simulator include?

Include commission, exchange fees, spread crossing, slippage and market impact. Model funding or borrow costs where the strategy uses use or short positions, and account for data and infrastructure separately.

How should a simulator model limit-order fills?

A price touch alone should not guarantee a fill. Estimate displayed volume ahead, trades at the order price, cancellations and partial fills, then report fill probability and time to fill.

What is a realistic paper trading latency?

Public API round trips often fall around 20 to 500 milliseconds, though the range depends on the connection, venue and location. Use measured latency where available, and test jitter and tail delays rather than relying on one fixed value.

How do I compare paper fills with live execution?

Use the same order instructions and calculate shortfall against a defined reference price, such as the mid-price at decision time. Compare fill rate, fees, time to fill, rejections and position differences across similar market conditions.

Can paper trading reproduce live market impact?

It can approximate impact using depth, order size and a calibrated residual model, but it cannot reproduce every hidden order or routing decision. Treat impact estimates as scenarios and test whether strategy performance survives a range of assumptions.