A profitable backtest is a result to investigate. It is not evidence that a bot will produce the same return with real orders.
Define the experiment
A useful bot evaluation starts with a precise question. State the market, venue, instruments, time window, strategy rules, and capital assumptions. 'The bot works' is too broad to test. 'These rules produced these simulated results on this dataset after these costs' is a claim someone else can examine.
Write the rules before looking at the result you plan to report. Record software versions, parameter values, and the data source. If a strategy uses several assets, preserve which assets were actually available at each point in history. A present-day list of surviving tokens can quietly remove failures from the historical universe and make a strategy look more resilient than it was.
Protect the test sample
Development data helps you design a strategy. Validation data helps you choose among variants. A final test sample should remain unseen until the choices are fixed. If you inspect the test result, change the rules, and test again on the same period, that period has become part of development even if the file is still named 'test'.
Time order matters. Randomly shuffling observations can leak information from the future into the past. Check the timestamps at which an indicator, funding rate, or candle was actually available to the strategy. A signal computed from a candle's closing price cannot usually execute at that same closing price without a separately justified execution model.
Model real costs
A trade has more costs than a subscription. Include venue fees on every fill, the spread paid, possible slippage, and any funding or borrowing relevant to the strategy. Apply costs to traded notional, not just the starting account balance. A small account that turns over many times can accumulate substantial fees.
The worksheet uses monthly turnover as the sum of all traded notional, including entry and exit trades. For example, $100,000 of turnover at 10 basis points in combined fees and slippage costs $100. Adding a $30 subscription creates a $130 monthly hurdle. With $5,000 of capital, that is 2.6% before taxes, funding, borrowing, and other omitted costs.
Question simulated fills
A candle showing a high and low does not reveal the order of every trade within it. A simulator can therefore award a limit fill that was not realistically available. State whether the model uses candles, trades, quotes, or an order book, and how it handles queue position, partial fills, latency, and orders that remain open.
Test adverse assumptions as well as the preferred ones. Increase execution costs, delay entry, reduce available liquidity, and compare the result. The purpose is to find which assumptions carry the apparent advantage. A strategy that loses its advantage after a tiny change in fill quality deserves a different description from one that remains viable across a wide range of plausible costs.
Report more than profit
A headline return hides how the result was earned. Report the observation window, number of trades, exposure, turnover, drawdown, and the distribution of gains and losses. Identify whether a small number of trades produced most of the result. A strategy that takes large tail risks can appear stable until a rare event arrives.
Use a relevant baseline under comparable assumptions. A strategy holding an asset most of the time should be compared with an appropriate holding baseline, with costs and exposure explained. Avoid describing a difference as skill merely because two final account values differ. The sample size and market regime may be too narrow to support that conclusion.
Test operational failures
Live execution introduces problems historical simulations often omit. A connection may drop after the exchange accepted an order but before the bot received its acknowledgement. Retrying blindly can create a duplicate. A robust workflow reconciles exchange state and uses supported client identifiers instead of treating a network timeout as proof that nothing happened.
Also test stale data, invalid precision, minimum order sizes, rate limiting, exchange maintenance, and clock drift. Decide what stops new orders and what happens to existing orders when a limit is reached. API permissions should match the task; a bot that only trades should not need withdrawal access. Follow the venue's documented controls and keep credentials outside browser-delivered code.
Stage the evaluation
Replay a fixed dataset first so a change can be reproduced. Then use paper trading to observe the bot's behaviour against current market updates. Paper fills remain simulated, so a successful paper run does not verify live liquidity or queue placement. Keep separate records of simulation quality and strategy performance.
Any real-money trial requires its own deliberately limited scope and monitoring. Reconcile fills, fees, positions, and open orders against exchange records rather than relying on the bot's dashboard alone. A stop control should be tested as a procedure: someone must know how to invoke it, how to confirm it worked, and what unresolved exposure remains afterward.
Make reviews reproducible
A review should identify the exact product, version or review date, tested configuration, markets, and evidence used. Distinguish a hands-on test from a documentation review. Do not convert unverified vendor returns into an independent performance score. Screenshots are supporting material, not a substitute for the assumptions and trade records behind a result.
This publication begins with evaluation methods and calculators. It does not claim to have benchmarked named bots, and it does not publish a 'best bot' ranking without recorded evidence. Future comparisons should disclose sponsorship or affiliate relationships near the relevant recommendation and keep commercial arrangements separate from the reported test outcome.
Primary sources
Read the original documentation for product-specific details. Our examples simplify the arithmetic and do not reproduce all contract or service rules.
Work your own example
Estimate the monthly trading return needed to cover a subscription and execution costs. This is a cost model, not a return forecast.
Open calculatorPrepared using AI-assisted drafting. No independent professional review or hands-on product test is claimed. Editorial policy · Affiliate disclosure