Skip to content
Level 4 · Trading System ResearcherLessonPart 29 · page 2 of 628 min
28Minutes
1AFL functions
4Sources
StandardRequires
AFL functions taught here1

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 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.

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 % 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.

  1. 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.
  2. Compare on CAR/MaxDD, not on RAR. 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.
  3. 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.
  4. 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’.
  5. 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

Question 1. A backtest turns 50,000 into 90,000 over exactly 1,095 calendar days. Which figure does AmiBroker report as Annual Return %?
Show the answer and why

Answer: About 21.6 per cent, from compounding

AmiBroker compounds: (90,000 / 50,000) ^ (365 / 1,095) − 1 = 1.8 ^ (1/3) − 1, which is about 0.216. The 26.7 per cent figure is the linear annualisation the User’s Guide explicitly identifies as wrong and over-optimistic. The 80 per cent figure is Net Profit %, which is a total and is a different row.

Question 2. System X reports Annual Return % of 5.0 and Exposure % of 10.0. What does its Risk Adjusted Return % of 50.0 tell you?
Show the answer and why

Answer: That 5.0 was divided by 0.10, because the system had capital at work only a tenth of the time

Risk Adjusted Return % is Annual Return % divided by Exposure % as a fraction, and nothing else. It contains no volatility term, no drawdown term and no measure of safety. A high value is a statement about how little the system was invested, and turning it into money would require running several uncorrelated copies of the system at once — a claim the report cannot support.

Question 3. Which of these are true of the modern portfolio backtester’s report? Select all that apply.
Show the answer and why

Answer: Positions still open at the end of the range are included in the trade statistics, Exposure % is computed from the value of open positions relative to portfolio equity, bar by bar

Open positions are included and closed out at the close price; Exposure % is value-weighted per bar. Total commissions paid is an old-backtester row and is absent from the modern documented metric list — you add it as a custom metric if you want it. Net Profit % is a total return; the annualised figure is Annual Return %.

Question 4. You are comparing a 90 per cent exposure system with a 15 per cent exposure system. Why does the settings interest rate deserve attention?
Show the answer and why

Answer: Because uninvested cash earns the settings interest rate, which flows into Net Profit and therefore into Annual Return %, and the low-exposure system holds far more cash

Cash that is not invested earns the annual interest rate from the settings, and that income is part of Net Profit. With 85 per cent of capital idle for the whole test, a meaningful share of the low-exposure system’s reported return can be deposit interest rather than trading. The modern report has no separate interest row to subtract, so set the rate to zero deliberately or model it deliberately.

Sources for this lesson

4 verified · checked 2026-08-31

  1. 01AmiBroker User's Guide — System test report window§ New backtester reportamibroker.com/guide/w_report.html2026-08-31
  2. 02AmiBroker User's Guide — Portfolio-level backtestingamibroker.com/guide/h_portfolio.html2026-08-31
  3. 03AmiBroker User's Guide — Portfolio Backtester Interface Reference§ Stats object metric namesamibroker.com/guide/a_custombacktest.html2026-08-31
  4. 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.