Skip to main content

Understanding Fills

What is slippage or a bad fill?

How a market order fills?

  • Click Buy → fills against the ask (sellers' price)

  • Click Sell → fills against the bid (buyers' price)

  • The gap between bid and ask is the spread

The chart highlights the price at which the last trade happened. Your order fills against whatever bid/ask is in the book at the time of order execution - not the chart price. That gap is where slippage starts.

Slippage has two main causes:

  • Low liquidity. Not enough size at the best bid/ask, so your order walks to the next price level. Consider a scenario: You place a buy 50 qty at MKT, best ask is available for 18 qty at 25400 and next best ask is 32 qty at 25405 – the average fill rate that you would get is 25,403.20 for 50 qty.

  • High volatility. Bid/ask is moving faster than your order can travel. By the time it reaches the exchange, the price you saw is gone. Common around news (FOMC, NFP, CPI) and market open.

Both usually happen together, when volatility spikes, market makers pull their orders, so fast markets are also thin markets.

Partial fills work on the same logic for limit orders: price touched your level, but not enough volume has been traded to clear the full queue ahead of you.

Tradesea uses Rithmic for simulation

Tradesea does not run its own simulator. Your sim account is powered by Rithmic - the same execution infrastructure used by funded accounts at major prop firms and FCMs.

The underlying infrastructure used for trading is the same whether you are on a sim or in a live market.

The only distinction is that simulator orders are not routed to the exchange for execution, and account funds are managed by the FCM in accordance with their risk parameters rather than being exposed to the live market.

How Rithmic handles simulation

Rithmic focuses on providing a simulation environment as close as possible to the live market, thus offering the most realistic learning for upcoming traders.

There are three things Rithmic does to make this work:

  • Orders are routed, not filled locally. Your order travels to Rithmic's exchange simulator the same way it would to a live exchange in the market environment. There is real transit latency, and the mechanics of trade routing are identical to live. This means that orders do not fill locally without experiencing real market latency.

  • Orders match against bid/ask, not trade price. Rithmic fills your order against the available bid and ask quantities sitting in the order book — not against the last trade price you saw on the chart. Your order joins the queue exactly as it would at the exchange.

  • Same infrastructure as live. The simulator runs on the same enterprise software, market data feeds, risk manager, and order handlers that live traders use. The only difference between sim and live is that no real money is at risk.

Because of this, what looks like slippage on the sim is often the result of a wide bid/ask spread or low liquidity at that moment, exactly what you would experience live. The displayed trade price on the chart can differ from the actual bid/ask your order fills against, which is why Tradesea also shows the bid/ask spread directly on the chart.

Your Funding Evaluators have requested and agreed to a market-realistic stimulator

Tradesea's funding evaluator partners have reviewed this matching behavior and agree that a market-realistic simulator is the right call for traders.

Illustration

Stop Loss triggered but order was filled at a price 10+ points away

Consider the scenario:

  1. You have placed a stop-loss buy order to exit your short position on MNQ

  1. You had a Buy Stop Loss trigger set at: 27,159.50. Your expectation: “If price hits 27,159.50, I’ll exit around that level.”

What happened:

On the chart, within a single second:

  1. The price touched 27,159.50 at 08:31:21 am, your Stop Loss buy order got triggered

  1. Price moved rapidly: from 27,159.50 → 27,172.25 (13 points movement within a second)

  1. A large 1s candle is formed

  1. Your Buy Stop Loss was triggered, but the execution happened much higher at 27172.25

What’s going on under the hood?

A Stop Loss is not a guaranteed price. It works in two steps:

  1. Trigger - When the price touches 27,159.50, your Stop Loss is activated

  2. Conversion to Market Order - Once triggered, it becomes a Market Order to exit immediately

Why did you get filled at 27,172?

At the moment your SL triggered:

  • There was little to no liquidity near 27,159

  • Price was already moving aggressively upward

  • Sellers at lower levels were already taken out

So your market exit order had to:

️Chase the next available buyers (for your exit)
which were sitting much higher in the book

Result:

  • Trigger price: 27,159.50

  • Execution price: ~27,172.25

Slippage = ~12.75 points


Want to know more?

For a deeper look at how orders travel from your click to the exchange and back, read our full breakdown here:
Why Your Fill Price Is Not Always the Price You Clicked

Fills are driven by the underlying execution system. If you want the exact mechanics, see what Rithmic has explained about their simulator:
How Rithmic's Exchange Simulator Works (And Why It Might Feel Different)

Did this answer your question?