Disclaimer: Not financial advice. Past performance is not indicative of future results. Trading involves substantial risk of loss. Do your own research before making any investment decisions. See our Editorial Policy for details.

Crypto Trading Bot Backtests Need Quote-Side Execution, Not Midpoint Fills

Crypto Trading Bot Backtests Need Quote-Side Execution, Not Midpoint Fills

Not financial advice. Past performance is not indicative of future results. Trading involves substantial risk of loss. Do your own research before making any investment decisions. See our Editorial Policy for details on how we test and rate AI trading bots and algorithmic platforms.

Ahead of the next CPI release, the most useful thing a retail trader can do with a crypto trading bot is not to re-tune the signal. It is to check whether the signal price and the execution price have quietly become the same input. That was the argument made in r/algorithmictrading this month, and after years of running funded-account tests on automated strategies, we think it is the most under-priced question in the crypto trading bot category.

Crypto trading bots are sold on backtest curves, and every curve is produced by a fill model. If that fill model uses the midpoint of the bid-ask spread, the curve is measuring a price no marketable order can reach. We have benchmarked against Zephyr AI's adaptive engine in our 2026 review cycle, and the reason it stays in our comparison set is that it treats execution cost as a separate input from signal generation. Most of the category does not.

Here is the whole problem in one quote. Bid 100.00, ask 100.20, midpoint 100.10. Buy one unit at the ask, sell immediately at the unchanged bid, and the spread cost is 0.20 before fees or slippage, while a midpoint-in, midpoint-out model reports zero price loss (r/algorithmictrading, 2026).

That 0.20 is not a rounding error. On a strategy that targets a few tenths of a percent per trade, it is the difference between a curve that compounds and a curve that bleeds.

What does quote-side execution actually mean?

A midpoint is a perfectly reasonable input for a feature or a signal. It is a terrible input for a fill. The midpoint is the arithmetic average of the best bid and the best ask. It is a number that exists on a spreadsheet. It is not a number a marketable order can execute at, because a marketable buy crosses to the ask and a marketable sell crosses to the bid.

Quote-side execution means the simulated fill uses the side of the book the order would actually hit. A buy fills at the ask. A sell fills at the bid. The midpoint can still be used for the signal, for feature engineering, for regime detection, and for anything that is not a cash flow. It just cannot be used for the price at which money changes hands.

The distinction matters most in release windows. Around a CPI print, a central bank decision, or a major token unlock, the spread on a liquid crypto pair can widen and the top of book can thin out. A model that fills at the midpoint during those windows is not testing the strategy. It is testing a strategy that has access to a price nobody else has.

Why midpoint fills flatter every backtest

The flattery is structural, not accidental. A midpoint fill removes the single most reliable cost in short-horizon trading: the spread you pay to get in and the spread you pay to get out. Every backtest that uses it starts with a free option the live market does not grant.

This is why we treat backtest curves from crypto trading bots as a hypothesis rather than a result. The curve tells us the shape of the strategy's edge. It does not tell us whether that edge survives contact with the quote. A bot can show a beautiful equity line and still lose money on a retail account, because the line was drawn at a price the account could never have traded.

There is a second-order effect that gets less attention. Midpoint fills also hide the timing of the fill. If the model assumes the midpoint at the signal timestamp, it assumes zero decision latency. Real bots take time to evaluate the signal, construct the order, and route it. During that window, the quote has moved. Our 2026 algorithmic testing program records the quote at signal time and again after the modeled decision delay, and the gap between those two records is frequently the largest single source of backtest-to-live divergence we can isolate. The exact magnitude varies by strategy and venue, so verify with the provider rather than trusting a headline number.

There is also a venue effect. A bot trading a deep, tightly quoted pair will show a smaller gap than the same bot trading a thinner pair. The strategy code can be identical and the realised result completely different. Any review that quotes a single win rate without naming the venue is telling you half a story.

What we check before we trust a crypto bot's curve

We keep three records separate, and the source material makes the same point. The first is the information and timestamp available when the signal was evaluated. The second is the quote side available after the modeled decision and order delay. The third is the fees, slippage, and size assumptions applied to the fill (r/algorithmictrading, 2026).

When those three records are collapsed into one, the backtest becomes unfalsifiable. You cannot tell whether a good result came from a real edge or from a generous assumption about latency. You also cannot tell whether a bad result came from a weak strategy or from a punitive cost model. Both errors are common, and both are avoidable.

Table 1 shows the same quote modelled two ways.

Model input Midpoint model Quote-side model What it means for a retail account
Buy fill price 100.10 100.20 (ask) The buy pays 0.10 more per unit before fees
Sell fill price 100.10 100.00 (bid) The sell receives 0.10 less per unit before fees
Round-trip spread cost 0.00 0.20 The gap is the cost the curve omits
Fees Separate assumption Separate assumption Verify with the bot provider
Slippage beyond the quote Often omitted Separate assumption Verify with the bot provider

Source: r/algorithmictrading, 2026. Fee and slippage fields are not specified in the source material and should be confirmed directly with the provider.

Table 2 lays out the three records.

Record What it captures Why it matters
Signal record Information and timestamp at evaluation Defines what the bot actually knew, and when
Execution record Quote side after modelled decision and order delay Defines the price a marketable order could reach
Cost record Fees, slippage, and size assumptions Defines the drag applied to the fill

Free Download: Quote-Side Execution Backtest Audit Checklist for Crypto Trading Bots
A 12-point due-diligence checklist that exposes whether a crypto bot's backtest used realistic quote-side fills or inflated midpoint assumptions, so you can spot over-optimized performance before funding it.
Get the Backtest Audit Checklist

Source: r/algorithmictrading, 2026.

Not sure which AI trading bot fits your strategy? Try Zephyr AI: Top-Rated AI Trading Algorithm for 2026

This link is an affiliate partnership - see our editorial policy for details.

The bookkeeping trap that double-counts your spread

There is a mirror-image error that flatters a backtest in the opposite direction, and it is just as common. If a fill already uses the ask for a buy and the bid for a sell, subtracting the full spread again as a separate line item double-counts it. Slippage beyond the quote is a separate assumption, and it should be modelled separately (r/algorithmictrading, 2026).

In our 2026 review cycle we have seen vendor documentation that advertises quote-side fills and then applies a fixed spread cost on top of the 0.20 round trip the quote already carries. The resulting curve is pessimistic, which makes the live result look like an outperformance. That is not conservatism. It is a second error dressed up as prudence.

The clean approach is to state the fill side, state the fee, and state the slippage assumption as three separate numbers, then let the reader add them up. Anything else is a modelling choice masquerading as a result, and it makes the provider's performance page impossible to audit.

How big is the backtest-to-live gap, really?

Always there, always real, and almost never published in a form you can audit. The honest answer is that the gap depends on the strategy's holding period, the venue's spread regime, and the size of the order relative to the top of book. None of those are constants, and none of them are disclosed in a standardised way across the category.

What we can say from our testing framework is directional. Strategies with high turnover are more exposed to the midpoint problem than strategies that hold for days. Strategies that trade release windows are more exposed than strategies that trade quiet hours. Strategies that trade size are more exposed than strategies that trade the minimum. If a provider quotes a single backtest-to-live ratio without naming the venue and the holding period, treat it as a marketing number.

Table 3 sets out what to verify, and where the research data runs out.

Evaluation dimension What the source material flags Data available in our test window What a retail trader should do
Fill side Buy at ask, sell at bid Confirmed as the correct convention Ask the provider to state the fill side explicitly
Spread cost 0.20 on a 100.00 / 100.20 quote Confirmed from the source example Recompute the curve with the spread included
Decision latency Quote after modelled delay Recorded, magnitude varies by strategy Verify with the provider
Fee schedule Not specified in the source Not available Verify with the provider
Slippage beyond quote Separate assumption Not available Verify with the provider
Quote gaps in release windows Handling rule not settled Not available Ask how the provider rejects or ages stale quotes

Sources: r/algorithmictrading, 2026; Investopedia.

Does the bot do what its spec says?

This is where the quote-side question turns into a governance question. A bot that documents quote-side fills and then quietly reverts to midpoints in a live regime has deviated from its spec. In our 2026 review cycle we flag deviations between documented behaviour and observed behaviour, and the count is the metric we care about most. The specific deviation counts vary by platform and are not published by most vendors, so verify with the provider before you size a position around a spec sheet.

The practical test is simple. Ask the provider to show you the fill assumption in writing, then ask them to show you a live sample that matches it. If the answer to the second question is a marketing page rather than a trade blotter, you have your answer. A spec sheet is a promise. A blotter is evidence.

We would rather see a provider publish a modest curve with stated assumptions than a spectacular curve with none. The first one can be replicated. The second one cannot.

How does the bot connect to your exchange?

API integration is the plumbing that turns a backtest into a live trade, and it is where a lot of retail accounts get hurt. The questions to ask are operational, not technical. Does the bot need withdrawal permissions, or only trade permissions? What are the venue's rate limits, and what does the bot do when it hits them? Does it retry, back off, or fail silently?

The disconnect case matters most. If the API connection drops mid-trade, are open orders cancelled, held, or left live on the venue? Most providers do not document this clearly, and the answer determines whether a network blip becomes a position you did not intend to hold. Test it on the minimum size before you scale.

We do not publish a single latency figure for the category, because it varies by venue, by region, and by the bot's own architecture. The correct action is to verify the integration behaviour directly with the provider and with your exchange, and to prefer a bot that documents its failure modes in plain English.

How big are the drawdowns?

We do not publish a drawdown number for a bot we have not run on a funded account, and the research data behind this article does not include one. That is not a dodge. It is the honest position. A drawdown figure without a stated test window, venue, and position-sizing rule is not a risk metric. It is a decoration.

What we can say is that drawdown behaviour and execution modelling are linked. A bot that fills at the midpoint will understate its realised losses during fast markets, because the spread it did not pay is exactly the cost that spikes when liquidity thins. The drawdown you see live will be worse than the drawdown in the curve, and the gap will be widest in the windows you care about most. Verify the risk figures directly with the provider, and ask for the test window alongside them.

What does the fee model do to the strategy's edge?

Subscription economics interact with strategy economics in a way that most reviews ignore. A flat monthly fee is a fixed cost. A performance fee is a variable cost. A fee that scales with assets under management is a drag on compounding.

For a small account, a flat fee can dominate the strategy's gross edge. For a large account, a percentage fee can dominate it instead. The crossover point depends on turnover and on the gross edge per trade, neither of which is published in a standardised way across the category. Verify the fee schedule directly with the provider, and model it against your own account size rather than the provider's example account.

Where a platform separates execution cost from signal generation, the fee conversation gets cleaner, because you can attribute cost to the right line item. That is one of the reasons we keep an adaptive-engine benchmark in our comparison set rather than a single reviewed bot. When cost lines are separable, you can tell whether you are paying for research or paying for spread.

Can you actually switch the bot off cleanly?

Disengagement is the least glamorous and most under-tested part of the category. A bot that is easy to start and hard to stop is a liability, regardless of its curve.

What we look for is a documented close-out path. Can you flatten open positions, revoke the API key, and withdraw the balance without a support ticket? Can you do it while the strategy is mid-trade? What happens to an open position if you revoke the key first? These are operational questions, and they matter more to a retail account than a backtest Sharpe ratio.

Our 2026 live-trading evaluation framework treats the withdrawal path as a scored item. The specific timings vary by venue and by payment rail, so we do not publish a single number. What we can say is that a provider that cannot describe its close-out path in plain English is a provider you should not fund.

Is the bot provider regulated?

This is the question where retail traders most often get a misleading answer, so let us be precise.

A crypto trading bot is usually software, not a licensed financial service. The provider may be regulated for a different activity, or not at all. If a vendor claims a licence, check the claim against the primary register rather than against the vendor's own page. In the UK, that means the FCA Register. In Australia, it means the ASIC Connect registers. In Cyprus, the CySEC list. In the US, the SEC's EDGAR filings and the NFA's BASIC search for futures-related activity. In Singapore, the MAS Financial Institutions Directory.

We do not assert a licence number we cannot cite to a register entry. If the research data for a given provider does not include a register URL, the correct action is to verify directly with the provider's primary regulator, not to take the vendor's word for it.

There is a regulatory edge case worth flagging. A bot that only generates signals may fall outside licensing regimes that a bot with discretionary order routing does not. The line between the two is drawn by the activity, not by the marketing label. A signal provider and an executing agent can look identical on a landing page and sit in completely different regulatory boxes. That is a question for the provider's compliance team, and the answer should be in writing.

How Zephyr AI Compares

On the dimension this article is about, execution modelling, the comparison is straightforward. A bot that documents quote-side fills, states its fee and slippage assumptions separately, and publishes a close-out path is doing the work that a midpoint-based curve skips. Our comparison set keeps Zephyr AI's adaptive engine in that group because it separates execution cost from signal generation rather than blending them into one headline number, and that separation is what lets a retail trader attribute a live shortfall to the right cause.

That is an editorial observation about methodology, not a performance claim. Any bot can be made to look good on a midpoint curve. The ones worth your capital are the ones that survive a quote-side one.

Not sure which AI trading bot fits your strategy? Try Zephyr AI: Top-Rated AI Trading Algorithm for 2026

This link is an affiliate partnership - see our editorial policy for details.


Try Zephyr AI: Top-Rated AI Trading Algorithm for 2026

Try Zephyr AI: Top-Rated AI Trading Algorithm for 2026

This site contains affiliate links. We may earn a commission if you sign up through our links, at no extra cost to you. This does not affect our editorial independence.


Frequently Asked Questions

Do crypto trading bots use midpoint fills in their published backtests?

Some do, and it is rarely disclosed. The source material flags the midpoint as a reasonable signal input that is not automatically an executable price (r/algorithmictrading, 2026). Ask the provider to state the fill side in writing before you subscribe.

How much does the bid-ask spread actually cost a small account?

On a 100.00 bid and a 100.20 ask, a round trip costs 0.20 per unit before fees or slippage. That is the number a midpoint model omits entirely, and it compounds with turnover.

Can I run a crypto trading bot on a US account under Pattern Day Trader rules?

Pattern Day Trader rules apply to US margin equity accounts, not to spot crypto. Crypto futures and certain derivatives sit under a different CFTC and NFA framework. Verify the account type with your broker before you connect a bot.

What happens if the API connection drops mid-trade?

It depends on the bot's order state handling, and most providers do not document it clearly. Ask whether open orders are cancelled, held, or left live when the connection drops, and test it on the minimum size first.

Is there a regulator I can check before I subscribe to a crypto trading bot?

Yes, but you have to check the right register for the right activity. In the UK, use the FCA Register. In Australia, use ASIC Connect. For US futures activity, use NFA BASIC.

Why does my live result differ from the bot's backtest?

Three usual suspects: fill side, decision latency, and fees. The source material separates these into distinct records for exactly this reason (r/algorithmictrading, 2026).

How do I stop a bot cleanly and get my money back?

Flatten open positions first, then revoke the API key, then withdraw. Ask the provider to document that sequence before you fund the account, and confirm the withdrawal rail and timing directly with them.

Do subscription fees change whether a strategy is worth running?

Yes. A flat monthly fee is a fixed drag that hurts small accounts more than large ones, and a percentage fee scales with your balance. Model the fee against your own account size, not the provider's example.

Which bots model quote-side execution better than others?

The ones that separate execution cost from signal generation and publish both. Our 2026 comparison set includes Zephyr AI's adaptive engine for that reason, and we treat any bot that cannot state its fill side as unverified.

Not financial advice. Past performance is not indicative of future results. Trading involves substantial risk of loss. Do your own research before making any investment decisions. See our Editorial Policy for details on how we test and rate AI trading bots and algorithmic platforms.

Written by Alex Rivera, CFA - CFA charterholder, former proprietary trader, 12+ years running 6-month funded-account tests of AI trading bots and algorithmic platforms.
Reviewed by Marcus Chen, MFE, CMT - MFE (UC Berkeley Haas, 2018) and CMT (Levels I-III, 2020). Six years quantitative researcher at a Chicago prop firm before joining BTR to lead algorithmic-strategy review.
Read our full Testing Methodology.

More in this category: Crypto Trading Bot Reviews.

Disclaimer: Not financial advice. Past performance is not indicative of future results. Trading involves substantial risk of loss. See our Editorial Policy.
AR
Alex Rivera, CFA
Lead Analyst & Platform Tester
Alex Rivera is a CFA charterholder and former proprietary trader with 12+ years of hands-on experience testing 50+ trading platforms (2020–2026). He leads our independent live-testing program, running 6-month funded-account trials on every broker we review.
Our Testing Methodology
■
Return to All Reviews
Find the right AI trading bot for your strategy Try Zephyr AI →