# Reading the backtest report

> Every number, what it means and how it is worked out.

Source: https://algobarsx.com/docs/the-report/

Everything in a report is derived from the trades the engine actually filled and the equity at each bar close, so any number can be traced back to a trade. Costs are never added or assumed: profit is the price difference ([E12](https://algobarsx.com/docs/rules-prices-distances-and-size/#E12)).

## How it went

| Number | What it means |
| --- | --- |
| Trades | How many trades completed. Trades still open when the test ends are closed at the last bar's close and marked “open at end” ([E24](https://algobarsx.com/docs/rules-results/#E24)). |
| Net profit | Gross profit minus gross loss. |
| Win rate | Winning trades as a share of all trades. |
| Profit factor | Gross profit ÷ gross loss. What it made for every unit it lost. |
| Expectancy | The average result per trade, in money and in R. In R it is the mean of every trade's R outcome. |
| Payoff | Average win ÷ average loss. |

## What it cost

| Number | What it means |
| --- | --- |
| Max drawdown | The deepest fall from a high in equity, in money and percent, with how many bars it stayed below that high. |
| Recovery factor | Net profit ÷ max drawdown. |
| Sharpe | Mean return ÷ the deviation of returns, annualised. |
| Sortino | The same, counting only downside deviation. |
| SQN | √(number of trades) × mean R ÷ deviation of R. How steady the R outcomes were. |
| Time in market | The share of bars with a trade open. |
| CAGR, Calmar, Ulcer index | Also calculated by the engine: compound annual growth, growth ÷ max drawdown percent, and the root mean square of drawdown percentages. |

## How the trades behaved

| Number | What it means |
| --- | --- |
| Bars per trade | Average length of a trade. |
| Average run-up | The best each trade saw while it was open (MFE). |
| Average drawdown in trade | The worst each trade saw while it was open (MAE). |
| Streaks, largest win and loss | The longest run of wins and of losses, and the single biggest of each. |
| R distribution | How many trades ended in each band of R. |

## Breakdowns

By the rule that opened the trade, by how the trade ended, by the confirmations that agreed, by side, by tag and by month. Name your rules with `as` and tag your orders, and these tables become much more useful.

## Labels worth noticing

- **Above requested risk**: the minimum lot carried more risk than the order asked for ([E11](https://algobarsx.com/docs/rules-prices-distances-and-size/#E11)).
- **Approximate intrabar**: a tick-evaluated run had no finer data for some bars, which are listed ([E2](https://algobarsx.com/docs/rules-timing/#E2)).
- **Unfilled**: a market order created on the last bar of the test ([E1](https://algobarsx.com/docs/rules-timing/#E1)).

> **Read this before trusting any number.** Backtests are hypothetical. They use historical data and contain no spread, commission, fees, swaps or slippage, so live results will differ. Past performance does not guarantee future results.
