At 17:42 on Friday, a developer reviews a dashboard showing a profitable paper week. The agent placed every order it intended to place. But the dashboard has no record of a rejected order, a partial fill or a stale quote. The week looks good because the simulation never asked the system to handle the conditions that made it bad.
A green dashboard can conceal a bad week
Paper trading is useful only if it tests the risks that matter in live execution. A simulated fill at the signal price can make a strategy look stable while ignoring queue position, spread, latency, fees and market impact. It can also hide operational failures: duplicate submissions after a timeout, fills that arrive after a cancel request, or a position that differs from the agent's internal ledger.
For software placing orders without a human watching, these are risk and compliance questions, not just measures of strategy quality. An agent that cannot reconcile its positions may exceed a limit even when its model is correct. An agent that retries an order without an idempotency key may double its exposure. A system that stores only daily profit and loss cannot explain which signal, quote and rule produced a trade.
Start by separating what a simulator can test from what it cannot. It can exercise order-state handling, limit checks, retry logic and logging. Unless it is connected to a realistic feed and execution model, it cannot establish that a live venue would fill the same order at the same price. Treat its results as evidence about software behaviour, not proof of live profitability.
Model the venue's decision path
A venue-shaped simulator should apply the same sequence of checks your live system will encounter. Validate the symbol, session, order type, price increments, minimum size and account permissions.
Then model acknowledgement, routing, partial execution, cancellation and final status. Rejections should use distinct reasons, so an agent can respond differently to an invalid price, insufficient buying power and a closed market.
Broad planning ranges can help set test parameters, but they are not promises about a particular broker or instrument. Network path, account tier, venue and market conditions change the figures. The ranges below are typical market ranges for designing scenarios, not audited results for any named company.
| Mechanic | Typical planning range | What to test |
|---|---|---|
| Public API order acknowledgement | 20-500 ms | Timeouts, delayed acknowledgements and duplicate-safe retries |
| Rate limits on API requests | 1-10 requests per second | Throttling, back-off and priority for cancels |
| Spread in a liquid US equity | $0.01-$0.05 during regular hours | Marketable-limit fills and price protection |
| Slippage in thin or stressed conditions | 10-50+ basis points | Notional caps, adverse fills and stop behaviour |
Build the tests around the exact order lifecycle, not a single simulated fill callback. At minimum, include these cases:
- The acknowledgement arrives after the client timeout, and the agent must discover whether the order exists before retrying.
- A partial fill reduces available buying power, then a cancel is acknowledged after another fill.
- A price increment or session rule makes an order invalid, and the agent records the rejection rather than resubmitting unchanged.
- A rate limit blocks a new order while a risk-reducing cancellation is waiting.
These cases expose whether the system's state machine reflects the venue's state. A spreadsheet of completed trades will not.
Put uncertainty into the fill model
A marketable order does not guarantee a fill at the last traded price. A limit order at the bid or offer may wait behind other interest, receive only a partial execution or expire without trading. A useful simulator models available depth, order size relative to depth, spread, latency and the possibility that the market moves before the order arrives. If the data does not support queue modelling, make the assumption explicit and test a conservative alternative.
Run at least three execution assumptions for each strategy: optimistic, central and adverse. For example, compare fills at the quoted price with a one-spread penalty and a larger penalty under thin-market conditions.
Recalculate turnover, exposure and drawdown under each case. If a strategy works only under the optimistic assumption, paper results do not support a live release.
Paper fills are an input to risk analysis, not a receipt from the venue.
Track the gap between the agent's intended order and the simulated result. Useful measures include rejection rate, fill ratio, time to fill, slippage in basis points, cancel-to-fill rate and position mismatch count. Break them down by instrument, order type and time of day. A low average slippage can still conceal a costly tail during the opening auction or a volatility spike.
Keep market-data timing in the test too. The order decision should reference the quote timestamp the agent actually received, not a later, corrected snapshot. Replay stale and missing data. Configure the system to stop opening risk when quotes exceed a defined age, then test that it can still cancel or reduce existing orders.
Treat simulation as a compliance control
A paper environment can help verify that risk controls fire before capital is at stake. Set explicit limits for order notional, position size, daily loss, restricted instruments and trading hours. Values should reflect the mandate and applicable rules.
As a test fixture, a developer might set a maximum order size at 0.25% of account equity or a daily loss stop at 0.5% of equity. Those are examples for exercising controls, not universal risk recommendations.
Test what happens when the system cannot verify a limit. Missing account equity, stale positions or an unavailable restrictions file should not quietly become permission to trade. Define a fail-closed response for new risk, and a separate, controlled path for cancellations and risk reduction. Record the input, rule version, decision, order identifier and resulting state for each action. Keep timestamps consistent and synchronised, and make logs tamper-evident where the operating environment requires it.
For regulated activity, map those records and controls to the obligations that apply to the firm, market and account. A simulator does not certify compliance.
It can show whether the programme followed its configured checks and produce a reviewable trail for operational testing. Have compliance or legal staff validate the mapping rather than treating a successful test run as approval.
Agentic Trading Index offers agentic paper trading from $9.99 a month through its paper trading service. Check whether any environment under consideration exposes the order events, failure modes and records required by the test plan. A paper environment that only reports accepted orders may be useful for basic integration, but it is not enough to validate unattended execution controls.
Set a release gate, not a confidence score
Do not promote an agent because it has completed a fixed number of simulated trades or shown a positive return. Set a release gate based on defined failure conditions. For example, require zero unexplained position mismatches, no duplicate live-intent orders in retry tests, and a successful stop when price data becomes stale. Set tolerances for rejection and fill metrics based on the instrument and strategy, and investigate breaches rather than averaging them away.
Use this sequence before any live deployment:
- Replay normal and stressed market periods against the same order-state logic intended for production.
- Inject timeouts, rejections, partial fills, delayed cancels, stale data and rate-limit responses.
- Compare the agent's internal positions with the simulator's executed quantities after every event, including restarts.
- Review logs and limit breaches with engineering and compliance, then document unresolved gaps.
- If the gate passes, move to a limited live allocation with hard notional caps and active monitoring before increasing exposure.
Paper trading remains an imperfect proxy. It cannot reproduce every hidden queue, routing decision, outage or market participant. The practical goal is narrower: make the agent behave safely when the venue responds in ways its strategy did not expect. This week, run one fault-injection test in which an order acknowledgement arrives after a timeout, and verify that the agent checks order status before it retries.
Frequently Asked Questions
What should paper trading test for an automated trading agent?
Test the full order lifecycle, including rejections, partial fills, delayed acknowledgements, cancels and rate limits. Also verify position reconciliation, risk limits and the audit trail for each decision.
Can paper trading reproduce live order fills?
Not exactly. Queue position, routing, latency and market impact can differ, so treat simulated fills as estimates. Test optimistic, central and adverse assumptions rather than relying on one fill model.
How should an agent handle a timed-out order request?
It should check the venue or broker for the order's status before submitting again. A timeout does not prove that the original request failed, so an unchecked retry can create duplicate exposure.
Does a paper trading test prove regulatory compliance?
No. It can test configured controls and produce records for review, but it does not certify compliance. Map system controls and records to the obligations that apply to the firm and account.