Skip to content

Backtest Review

Backtest review in AQS is designed to make historical execution easy to interrogate before a strategy moves into live operation.

AQS backtest review showing performance metrics, an equity chart, and historical trade data.AQS backtest review showing performance metrics, an equity chart, and historical trade data.
  • headline performance metrics
  • equity curve development
  • trade logs
  • commission, swap, and net PnL per trade where available
  • insight-level inspection
  • state history and execution structure
  • rejected and cancelled insight outcomes

Open Backtests and use Filter with SQL to narrow the list across your local strategy results and backtests available through AQS Cloud. This filters metadata already loaded into AQS; it does not query trade files, execute SQL against the cloud database, or change saved results. Cloud results must be available to your signed-in account. If the cloud cannot be reached, local results remain available.

AQS Backtests showing read-only SQL filtering, local and cloud results, and hyperparameter sweep seeds.AQS Backtests showing read-only SQL filtering, local and cloud results, and hyperparameter sweep seeds.

Enter a complete SELECT * FROM backtest b WHERE … query, start with WHERE, or type just the condition. Results update as you type. Open Syntax & examples for built-in examples and field suggestions. Use the column headers to sort, rather than adding ORDER BY. Reset clears the filter and restores the default date order.

Find runs with a return above 0.5% and a profit factor of at least 1.2:

SELECT * FROM backtest b
WHERE b.return > 0.5 AND b.profit_factor >= 1.2

Show cloud results for a named strategy:

source = 'cloud' AND strategy = 'Three_Amigos'

Find local sweep runs from a given date:

source = 'local' AND sweep_id IS NOT NULL
AND date >= '2026-10-01'
FieldsUse
strategy, id, date, sourceIdentify the run; source is 'local' or 'cloud', and dates use ISO-formatted text.
sweep_id, hyper_seed, is_publicFind sweep groups, individual seeds, or published results; publication is a boolean.
symbol, timeframe, currencyMatch market metadata; a symbol field can contain several symbols.
starting_cash, final_equityCompare capital and final equity in the run’s account units.
return, win_rate, drawdownUse displayed percentage units: 0.5 means 0.5%, not 50%.
profit_factor, sharpe, sortino, payoff, expectancy, tradesFilter performance metrics and trade counts.
average_trade_held_secsCompare average holding time in seconds.

Combine conditions with AND, OR, NOT and parentheses. Comparisons, BETWEEN, IN, LIKE, ILIKE, IS NULL and IS NOT NULL are supported. Quote text values. For example, symbol ILIKE '%BTC%' matches a symbol field containing BTC without case sensitivity; % matches any sequence of characters and _ matches one character.

Missing metrics are not zero: use sortino IS NULL to find runs without a saved Sortino ratio. Sorting places missing values last. This is a filtering language, not a general SQL console: joins, aggregates, subqueries, LIMIT and write statements are not supported.

If a query is incomplete or invalid, AQS displays an error and keeps the last valid results. Bulk sweep actions are paused until the filter is valid again. A sweep filter can match local and cloud metadata, but sweep management acts only on local seed runs.

  1. Open Backtests and select the result you want to investigate. Check its strategy, date range and, for a sweep, its seed.
  2. Open Trade Log to inspect entries and exits. Select an insight to read its quantities, protection levels, execution fragments and state history.
  3. Use Analysis to investigate trade distributions, performance patterns, risk, exposure and trade quality. These sections load progressively; wait for each result before interpreting an empty panel. Features marked as coming soon do not contain completed analysis.
  4. Use Market Data to put a trade in its historical price context.
  5. Open Settings to verify the feed, paper execution, date window, timeframe, fees and saved parameter values that produced this result.

For local hyperparameter sweeps, the analysis view can compare a seed with sibling results. Keep the seed and settings when investigating a promising run; the highest return alone is not sufficient evidence of robustness.

The backtest surface mirrors the same inspection model used in live strategy views. That makes it easier to move from research into deployment without changing how you read strategy behaviour.

AQE stores backtest results on disk, and AQS reads those results into the desktop review surfaces. You can also inspect the same SQLite files directly in a database client when you need lower-level access.

Backtests always execute through PaperBroker, so commission and swap in a backtest come from the fee configuration used for that run. MT5 live deal commission is not inferred during historical execution.

AQS displays fee data from the backtest database:

  • trade_log rows include the commission and swap attached to each entry or close event.
  • round_trips combine entry commission, exit commission, swap, and gross PnL into net PnL.
  • account_history includes accrued commission over time.

Net PnL uses the same AQE accounting rule as the paper broker:

gross PnL + swap - total commission

Set or review brokerFees in the Strategy Editor runtime/backtest configuration before starting the run. Changing fees after a run does not rewrite existing backtest results.