Return Metrics: Net Profit, CAR, RAR and Exposure
Four rows near the top of the statistics page carry the numbers everyone quotes, and
three of them are ratios whose denominator most people never look at. This lesson defines
all four exactly as AmiBroker defines them, works the arithmetic, and then spends its
second half on the one that changes the meaning of the other three: Exposure %.
By the end you should be able to say, for any return figure in the report, what it is a return on, over what period, and with how much of the capital actually at work.
Net Profit and Net Profit %
Section titled “Net Profit and Net Profit %”Net Profit is the total profit of the strategy over the test in account currency.
Net Profit % expresses the same thing as a percentage of initial capital. Note the
capitalisation and the space before the percent sign — AmiBroker writes Net Profit %,
not “Net profit%”. The corresponding programmatic names are "NetProfit" and
"NetProfitPercent".
Three things about them are easy to get wrong.
Net Profit % is a total return, not an annual one. A 76 per cent Net Profit % says
nothing about the pace at which it arrived. That is what Annual Return % is for, and
mixing them up is the single most common way people accidentally inflate a claim by a
factor of five.
Open positions are included. In the modern portfolio backtester, positions still open at the end of the tested range are part of the trade statistics and are closed out at the close price. The old, pre-portfolio backtester counted only closed trades and reported open positions in a separate row. Run the same formula through both engines and Net Profit differs, legitimately.
There is no commissions row. The old backtester reported Total commissions paid and
Interest earned. The modern backtester’s documented metric list contains neither. If you
want total costs on the report — and you should, at least once, to see how large they are
relative to Net Profit — you must add them yourself as a custom metric. Part 36
introduces the interface that does it.
Annual Return % — the row that is called CAR everywhere except in the report
Section titled “Annual Return % — the row that is called CAR everywhere except in the report”The report row is Annual Return %. Its metric string is "CAR", and the docs and the
composite ratio CAR/MaxDD both use that abbreviation, which is why everyone calls it CAR
in conversation. It is the compounded annual return.
Two names it is not: it is not “CAGR”, which AmiBroker never uses, and it is not
“Annual Profit %”, although the colour-coding section of the User’s Guide slips and calls
it that. If you search the documentation and find Annual Profit %, that is the same
number under a mistaken label.
Why AmiBroker’s annualisation differs from other packages
Section titled “Why AmiBroker’s annualisation differs from other packages”The guide is unusually direct about this. Many programs annualise linearly:
simple_annualized_percentage_return = percentage_return * ( 365 / days_in_test )which reports 22 per cent a year for a system that gained 44 per cent over two years. AmiBroker uses proper compounding:
correctly_annualized_perc_return = 100% * ( (final_value/initial_value) ^ ( 365 / days_in_test ) - 1 )Work it through with an account that goes from 100,000 to 144,000 over 730 days:
| Method | Arithmetic | Result |
|---|---|---|
| Linear | 44 × (365 / 730) | 22.00 per cent |
| Compounded (AmiBroker) | (144,000 / 100,000) ^ (365 / 730) − 1 | 20.00 per cent |
The compounded figure is the correct one: 100,000 growing at 20 per cent for two years is 100,000 → 120,000 → 144,000. The linear method is not a rounding difference, it is wrong, and it is wrong in the flattering direction.
The 365 in that formula is calendar days
Section titled “The 365 in that formula is calendar days”days_in_test is calendar days between the first and last bar, not trading days, and the
exponent uses 365. Short tests are therefore very sensitive to exactly where the range
starts and ends. Take the same 44 per cent total gain and vary only the length of the
window:
| Calendar days in test | Annual Return % |
|---|---|
| 700 | 20.94 |
| 730 | 20.00 |
| 760 | 19.14 |
Two months of difference in the date range moves the headline number by nearly two percentage points, with the underlying trading completely unchanged. On a two-year test this is large. On a twenty-year test it is negligible. Knowing which situation you are in is part of reading the number.
Exposure %
Section titled “Exposure %”Exposure % is the market exposure of the system, computed bar by bar. A single bar’s
exposure is the value of open positions divided by portfolio equity; those per-bar
exposures are summed and divided by the number of bars. Metric string
"ExposurePercent".
So a system holding four positions at 10 per cent of equity each has a bar exposure of 0.4 on that bar; a system entirely in cash has 0. Averaged over the test, that gives the proportion of your capital that was actually at work.
The two risk-adjusted returns, and what “risk-adjusted” means here
Section titled “The two risk-adjusted returns, and what “risk-adjusted” means here”AmiBroker reports two exposure-adjusted returns, and they are built on different numerators:
| Report row | Metric string | Definition |
|---|---|---|
Net Risk Adjusted Return % |
"NetRAR" |
Net Profit % divided by Exposure % |
Risk Adjusted Return % |
"RAR" |
Annual Return % divided by Exposure % |
The guide’s own worked example fixes the arithmetic: a system that gained 10 per cent over one year with 50 per cent exposure has an adjusted return of 20 per cent, because 10 / 0.5 = 20. Exposure enters as a fraction, not as a percentage point count.
Why exposure changes the meaning of a return
Section titled “Why exposure changes the meaning of a return”Take two illustrative systems, both run on the same universe over the same five years with the same costs. The figures are invented to make the arithmetic legible; they are not results.
| System A | System B | |
|---|---|---|
Net Profit % (whole test) |
76.23 | 33.82 |
Annual Return % |
12.00 | 6.00 |
Exposure % |
90.0 | 15.0 |
Net Risk Adjusted Return % |
84.7 | 225.5 |
Risk Adjusted Return % |
13.33 | 40.00 |
Read only the last row and System B looks like three times the system A is. Read the whole table and B earned half the annual return; its risk-adjusted figure is large because it divides by 0.15.
The division is arithmetically correct and the interpretation people put on it is not.
Risk Adjusted Return % answers a counterfactual: what would the return have been if
this capital had been fully deployed the whole time in something with these
characteristics? To convert that back into money you would need six or seven
simultaneous, independent copies of System B’s opportunity — which requires that the
opportunities exist at other times, that they are not correlated with each other, and that
the market has the capacity to absorb six or seven times the position size. None of those
three claims is in the report. All three are claims about the world.
The interest trap, which bites low-exposure systems specifically
Section titled “The interest trap, which bites low-exposure systems specifically”In a portfolio backtest, cash that is not invested earns the annual interest rate set in
the settings. That interest lands in Net Profit, and therefore in Net Profit % and in
Annual Return %.
For a system at 90 per cent exposure this barely matters. For one at 15 per cent exposure,
85 per cent of the capital is sitting in a deposit for the whole test, and a meaningful
share of the reported return may be interest rather than trading. Set
SetOption( "InterestRate", 0 ) — as the reference formula does — unless you specifically
intend to model the deposit, in which case say so in your record and justify the rate.
Comparing systems with different exposure, fairly
Section titled “Comparing systems with different exposure, fairly”There is no metric that solves this. There is a protocol.
- Hold everything else constant. Same universe, same date range, same data source, same initial equity, same commission and slippage assumptions, same interest rate. Differences in any of those swamp the difference you are trying to measure.
- Compare on
CAR/MaxDD, not onRAR. The next lesson defines it. It relates return to the worst decline actually experienced, which is a comparison between things that both happened, rather than between one thing that happened and one that was imagined. - Look at both equity curves. A 6 per cent annual return that arrives in three concentrated bursts and a 6 per cent annual return that accrues steadily are different propositions, and no summary row distinguishes them.
- If you actually intend to run them together, test that. The honest way to find out what a low-exposure system contributes to a portfolio is to model the portfolio, not to infer it from a ratio. Combine the rules in one formula, or run the combination and compare its report with the components’.
- Ask what the idle capital is doing in real life. In the backtest it is a number. In your account it is a decision — cash, a bond fund, another strategy — and each of those has its own return and its own risk that the report knows nothing about.
Net Profit and Net Profit % are totals, include positions still open at the end, and
come with no commissions row in the modern report. Annual Return % is the compounded
annual return, correctly annualised over calendar days, and it is what everyone means by
CAR even though the row does not say so. Exposure % is value-weighted and bar-by-bar,
and it is the denominator of both Net Risk Adjusted Return % and Risk Adjusted Return % — neither of which adjusts for anything except time spent invested.
The next lesson takes the other side of the ledger: drawdown, the ratios built on it, and the one thing about drawdown that AmiBroker does not report at all.
Check your understanding
Sources for this lesson
4 verified · checked 2026-08-31
- 01AmiBroker User's Guide — System test report window§ New backtester reportamibroker.com/guide/w_report.html2026-08-31
- 02AmiBroker User's Guide — Portfolio-level backtestingamibroker.com/guide/h_portfolio.html2026-08-31
- 03AmiBroker User's Guide — Portfolio Backtester Interface Reference§ Stats object metric namesamibroker.com/guide/a_custombacktest.html2026-08-31
- 04AFL Function Reference — SetOptionamibroker.com/guide/afl/setoption.html2026-08-31
Every technical claim on this page was checked against the official AmiBroker documentation on the date shown. Where the course disagrees with folklore, the source is how you can tell which one to trust.