Home › Guides › Slippage

WHY BOTS FAILFREENO ACCOUNTAUTOMATED TRADE BOTSSlippageThe arithmetic of how bots failEDUCATION ONLY | NO SIGNALSEXAMPLE NUMBERS ARE LABELLEDAUTOMATED TRADE BOTSautomatedtradebots.com
A free page on slippage. Education only, with example numbers labelled.
WHY BOTS FAIL

Slippage

Short answer

Slippage is the difference between the price expected when an order is sent and the price it is actually filled at. It can be against you, or occasionally for you.

Slippage is the difference between the price a bot expected and the price it was filled at. It is small on each trade and large across thousands, and small-target bots feel it most.

The page explains the idea in plain words, works through the arithmetic with a table, and shows how it hits grid, martingale and DCA bots, then tells you what to check before you run one.

  • A worked example with real arithmetic
  • How it hits grid, martingale and DCA bots
  • How to check for it before you run a bot
  • No advice, no signals, no profit promises

Last reviewed 28 October 2026. Education only, not advice.

Free, no account Runs in your browser Worked numbers shown Not advice Examples labelled

Ready to go further

Next: put slippage into the expected value

Add slippage and spread to the costs field to see where the average trade goes from positive to negative.

Reading time5 minutes
Worked exampleExact arithmetic
Tools linked2 on this page
Reviewed28 Oct 2026

What is included

  • What it is, in plain words
  • The formula or mechanism, with exact arithmetic
  • How it hits grid, martingale and DCA bots
  • A check you can run before you switch a bot on

Who it is for

  • People who run or plan to run a trading bot
  • Anyone reading a backtest or a bot sales page
  • Readers who want the numbers, not the pitch
  • Not advice, and not a signal service
Net edge per trade as slippage grows (made-up strategy, units per trade)+1.050 unitsslippage per trade+0.550.5 unitsslippage per trade+0.051 unitsslippage per trade-0.952 unitsslippage per tradeMade-up example: 55% wins, average win 6, average loss 5. Slippage is the round-trip total per trade.
The picture for this page. Example numbers are made up unless the page says they were calculated.

Key facts

  • Slippage is the difference between the price expected when an order is sent and the price it is actually filled at. It can be against you, or occasionally for you.
  • Common causes: fast markets, order size larger than what is on offer, thin order books, latency, and stop orders that become market orders when triggered.
  • In the made-up example below, a strategy with a gross edge of 1.05 units per trade has a net edge of +0.05 after 1 unit of slippage and -0.95 after 2.
  • Bots with small targets lose the largest share of their edge. A 1-unit slip takes half of a 2-unit target.
  • Measure it by comparing the signal price with the fill price in your own logs. Do not rely on a backtest to include it.

What slippage is

An order is sent at a price the bot sees. By the time it is filled, the market may have moved, or the order may be bigger than the quantity available at that price. The fill happens at the next available price, and the difference is slippage.

Slippage = fill price - expected price (for a buy)
Slippage = expected price - fill price (for a sell)
A positive result is a worse fill than expected

Slippage can also be positive for you (price improvement), particularly with limit orders and calm markets. The problem for most bots is that it is not symmetric. Stops and market orders are the ones that slip, and they tend to be used when price is moving fastest.

What causes it

  • Fast markets. News, a data release or a sudden move changes prices faster than orders can be matched. The price you saw is gone by the time the order arrives.
  • Size. An order bigger than what is available at the best price fills across several price levels. The larger the order, the worse the average fill.
  • Thin books. When few orders sit near the price, a modest order moves it. Quiet hours and lightly traded instruments are thinner.
  • Latency. The time from the signal to the fill, including your connection, the platform and the venue, is time for the price to move.
  • Stop orders becoming market orders. A stop triggers and then sends a market order. It fills at the next price, which in a gap or a spike can be well beyond the stop level. A stop is a trigger, not a promised price. Rules differ between brokers and exchanges, so check how yours work.

A worked example: what slippage does to expected value

Use the expected value formula with costs per trade:

EV per trade = win rate x average win - loss rate x average loss - costs

Take a made-up strategy that wins 55 percent of the time, with an average win of 6 units and an average loss of 5 units. A unit can be a pip, a point or a tick, as long as it is the same everywhere. Before costs:

EV = 0.55 x 6 - 0.45 x 5 = 3.30 - 2.25 = 1.05 units per trade

Now add slippage as a round-trip total per trade (entry plus exit), keeping everything else fixed. Spread is left out here to isolate slippage. See spread for that cost.

Average slippage per tradeNet edge per tradeShare of gross edge lostOver 1,000 trades
0.0 units+1.050%+1,050 units
0.5 units+0.5548%+550 units
1.0 units+0.0595%+50 units
2.0 units-0.95190%-950 units

Calculated by us on 27 Oct 2026 from the made-up inputs above. At 1 unit the edge is nearly gone: +0.05 per trade, 95 percent of the gross figure lost. At 2 units the strategy loses 0.95 per trade and about 950 units over 1,000 trades. Nothing about the signal changed. Only the fills did.

Why bots with small targets die from it

Slippage is roughly a fixed amount per trade. A target is the thing it is measured against. The smaller the target, the larger the bite:

Take-profit targetShare eaten by 1 unit of slippage
2 units50%
5 units20%
10 units10%
20 units5%

Scalping bots, tight grids and high-frequency EAs sit at the top of this table. A grid with 5-unit spacing gives away 20 percent of each cycle to a single unit of slippage, before spread. A grid with 20-unit spacing gives away 5 percent.

Share of the target eaten by 1 unit of slippage50%2-unit target20%5-unit target10%10-unit target5%20-unit targetCalculated as 1 / target. One unit of slippage, spread not included.
The same slip costs a 2-unit target half of its profit and a 20-unit target one twentieth.

How it hits each kind of bot

  • Grid bots trade many small cycles, so slippage is charged on every one of them. In a fast move through several levels it also fills several orders at worse prices at once.
  • Martingale bots add size when the market is moving against them, which is when books are thinner and moves faster. The larger orders slip more, and the final stop-out is also a market order.
  • DCA bots use fewer, larger trades, so slippage matters less per trade, but market buys in thin coins can still fill well above the last price.
  • EAs that trade news or breakouts are entering exactly when slippage is largest.

How to measure it

  • Log the signal price at the moment the bot decides, and log the fill price from the account history. The difference per order is the slippage. Average it by order type, time of day and size.
  • Separate entries from exits and stops from limits. Stops usually slip more.
  • Look at the tails, not only the average. A few large slips can cost more than many small ones.
  • Test with slippage in the backtest. Add a fixed amount per trade, then a larger amount for stops, and see where the edge reaches zero. That number is the budget.
  • Compare demo with live. A demo account often fills at or near the quote. A forward test at small live size shows the real difference.

What it does not tell you

An average slip does not describe a bad day. The worst fills come in the fast markets where a bot is most exposed. Slippage also varies by venue, instrument, size and hour, so a figure measured in one setting does not transfer. Use it to set a budget, then check that the bot's edge survives double that budget.

FAQ

Frequently Asked Questions

Is slippage always a cost?

No. It can be in your favour when the price moves your way between the signal and the fill. In practice, bots that rely on stops and market orders see more adverse slippage than favourable, because those orders are used when price is moving fast.

Does a stop loss fix my exit price?

Usually not. A stop is a trigger that becomes a market order, and it fills at the next available price. Some venues or products offer stops with a fixed fill, often for a fee. Check the terms of your broker or exchange.

How much slippage should I assume in a backtest?

There is no single figure. Measure your own from logs, and test the bot with that amount, double it, and a larger amount on stops. Choose settings where the edge survives the larger numbers.

Why is my live result worse than my backtest?

Slippage and spread are the most common reasons. Backtests often fill at the signal price with a flat spread. Compare the signal and fill prices in your logs to see how much of the gap is slippage.

Do limit orders avoid slippage?

A limit order fills at your price or better, so it cannot slip against you. The trade-off is that it may not fill at all, or may fill only when price is moving back through it.

Are the numbers on this page real?

Example numbers are made up to show how the maths works, and the page says so. A figure only counts as exact when the page says it was calculated on a stated date. Nothing you enter in a calculator leaves your browser.

Can I use this to decide whether to run a bot?

It can show whether a bot's numbers hold together and how much an account can lose. It cannot say what the market will do, and it is not advice. Use it to ask better questions, then read the terms of your own broker or exchange.

Is this financial advice?

No. It explains a trading cost in general terms. The strategy figures are made up for illustration and are not from any real bot.

Know the Risk Before You Run It

Free calculators and guides, added every week. Leave your details and we will email you when new ones go up.

Trading carries a risk of loss