Skip to content

Bot Backtests

Backtesting Limitations

Backtesting results assume perfect execution and zero slippage, which are unrealistic in live markets. Results may not account for all trading costs, fees, or market impact. Historical backtesting data does not represent expected future performance. Users should not rely solely on backtesting when making trading decisions.

The Bot Backtests page answers one question: how has this bot's strategy performed in testing?

It shows the backtests that are running right now and the ones that have finished, filtered to a single bot, and lets you start a new run without leaving the page.

Bot Backtests or Backtest History?

The two pages list the same backtests and differ in scope. Bot Backtests is filtered to one bot at a time and can start a new run for it. Backtest History shows every backtest in your account, from every source, with no filter. Use this page while you are working on a bot; use Backtest History when you want to compare across strategies.

Choosing a bot

Pick a bot from the Select Bot dropdown at the top. The list holds all of your bots, sorted by name and searchable, each with its exchange icon.

Choosing a bot filters both tables below to backtests of that bot's script. Clear Selection appears once a bot is chosen and removes the filter again.

Filtered by script, not by bot

A backtest belongs to the script a bot runs, not to the bot itself. If several bots share one script, selecting any of them shows the same backtests, and the Bot column lists every bot using that script.

If you have no bots yet, the page says so and offers a shortcut to create your first one — you need a bot before you can backtest from here.

Running a new backtest

Run New Backtest stays disabled until you have selected a bot. Where it takes you depends on the bot's script:

  • If the script is one you can edit, it opens the Web Editor for that script with the backtest panel already open.
  • If it is not editable, it opens that bot's own Backtest tab.

Either way, you choose the historical period and settings there, not on this page.

Active backtests

This section appears only while something is running. Each row is one backtest in progress.

Column What it shows
Script The HaasScript being tested.
Status Executing backtest, or the current step while price history or the script is still loading.
Started at When the run began.
Time remaining An estimate based on progress so far, or - if it cannot be estimated yet.
Progress Percentage complete, or - before execution starts.

The list updates live and refreshes on its own about once a minute.

To stop a run, use the cancel icon on its row and confirm. Cancelling discards the run — there are no partial results.

Backtest history

Completed backtests appear here, newest first.

Column What it shows
Timestamp When the backtest ran. Rows are sorted by this by default.
Bot The bots using the tested script, or - if none. This column is unique to this page.
Script The HaasScript that was tested.
Market The exchange account and market the test ran on.
Period The historical window tested, start and end.
Length How long that window is, for example 30 days.
Realized profit Profit the strategy would have made over the period, colored green or red.
Roi Return on investment for the run, as a percentage.
Tag Your own label for the run, or -.
Options Row actions, described below.

Select a row to open that backtest's full results.

Use the search box to filter by script name or tag, and select the Timestamp, Bot, Script, Market, Period, Length or Tag headings to sort.

The page loads your 500 most recent backtests.

Row actions

Action What it does
Preserve backtest results Archives the run so it is kept. The same icon then offers Discard backtest results to undo it.
Create bot from backtest settings Builds a new bot from the settings that produced this result — the quickest path from a promising test to a live bot.
Edit custom backtest tag Sets or changes your own label for the run, which is also searchable.
Delete backtest result Removes the run permanently.

To clear out several at once, tick the checkbox on each row — or use Toggle all to select everything currently listed — and then use the delete button that appears.

Warning

Deleting is permanent, and Toggle all selects every row matching the current filter and search, not only the rows in view. Check what is selected before confirming.