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

What you can review
Section titled “What you can review”- 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
Find local and cloud backtests with SQL
Section titled “Find local and cloud backtests with SQL”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.

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.
Example filters
Section titled “Example filters”Find runs with a return above 0.5% and a profit factor of at least 1.2:
SELECT * FROM backtest bWHERE b.return > 0.5 AND b.profit_factor >= 1.2Show 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 NULLAND date >= '2026-10-01'Available fields and syntax
Section titled “Available fields and syntax”| Fields | Use |
|---|---|
strategy, id, date, source | Identify the run; source is 'local' or 'cloud', and dates use ISO-formatted text. |
sweep_id, hyper_seed, is_public | Find sweep groups, individual seeds, or published results; publication is a boolean. |
symbol, timeframe, currency | Match market metadata; a symbol field can contain several symbols. |
starting_cash, final_equity | Compare capital and final equity in the run’s account units. |
return, win_rate, drawdown | Use displayed percentage units: 0.5 means 0.5%, not 50%. |
profit_factor, sharpe, sortino, payoff, expectancy, trades | Filter performance metrics and trade counts. |
average_trade_held_secs | Compare 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.
Review a run step by step
Section titled “Review a run step by step”- Open Backtests and select the result you want to investigate. Check its strategy, date range and, for a sweep, its seed.
- Open Trade Log to inspect entries and exits. Select an insight to read its quantities, protection levels, execution fragments and state history.
- 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.
- Use Market Data to put a trade in its historical price context.
- 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.
Why it matters
Section titled “Why it matters”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.
Working with backtest data
Section titled “Working with backtest data”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.
Reviewing fees
Section titled “Reviewing fees”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_logrows include the commission and swap attached to each entry or close event.round_tripscombine entry commission, exit commission, swap, and gross PnL into net PnL.account_historyincludes accrued commission over time.
Net PnL uses the same AQE accounting rule as the paper broker:
gross PnL + swap - total commissionSet 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.
We use essential cookies and storage for sign-in, account security, colour theme preferences, this notice, and required PostHog internal usage, session quality, and reliability metrics. We do not use advertising cookies.
