> For the complete documentation index, see [llms.txt](https://docs.optionomega.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.optionomega.com/backtesting/backtest-results.md).

# Backtest Results

Congratulations — you’ve made it to the backtest results screen.

Unless you’ve triggered this screen below, you should have a bunch of data. [If you've triggered the screen below, here's a list of common reasons why that may have happened](https://docs.optionomega.com/backtesting/backtesting-faq#my-trade-didnt-work...why-not-another-version-is-this-my-test-worked-but-it-doesnt-have-a-trade-i-th).

<figure><img src="/files/mt1T24LE7SD4O1FXvxUv" alt=""><figcaption></figcaption></figure>

## Primary Metrics

<figure><img src="/files/iJZfKqJKl9pESGxWutWJ" alt="An example backtest results screen for an SPX trade, showing key metrics."><figcaption><p>Example backtest results screen</p></figcaption></figure>

The Backtest Name (if saved) is displayed at the top, along with sharing link (if enabled), tags, and backtest description. Below, you will see key metrics from the backtest:

* **Strategy Setup**
  * **Underlying**: This displays the tickers for the options being backtested.
  * **Dates:** The range the test ran.
  * **Legs:** Shows the leg(s) of the test.
  * **Entry Conditions:** Details the entry conditions selected.
  * **Exit Conditions:** Details the exit conditions selected.
  * **Misc:** Details any Misc conditions.
* **Backtest Results**
  * **P/L:** Shows the overall realized profit or loss of the strategy during the time range. Unrealized P/L from open trades will not be included. To include open trades in the trade log and in realized P/L use: ‘Close Open Trades on Test Completion’
  * **CAGR:** The compound annual growth rate of the strategy during the test. CAGR is based upon net liquidity, which uses EOD values including any open trades. See: [CAGR](https://www.investopedia.com/terms/c/cagr.asp). To include any open trades in the trade log, use: ‘Close Open Trades on Test Completion’
  * **Max Drawdown:** The max drawdown at EOD. If a trade is open, then the EOD value is used for MDD calculations. If the trade closes, then the loss is used for MDD calculations. (Please note: This is different from the max loss column on the trade log, which is intraday).
  * **MAR Ratio:** CAGR / MDD. See: [MAR Ratio](https://www.investopedia.com/terms/m/mar-ratio.asp).
  * **Sharpe:** The calculated Sharpe Ratio, or realized returns in excess of the risk-free rate, per unit of total volatility, computed on the same net-liquidity, end-of-day basis as CAGR. The Sharpe Ratio can be negative when excess returns are negative. See: [Sharpe Ratio](https://www.investopedia.com/terms/s/sharperatio.asp).
  * **Sortino:** The calculated Sortino Ratio, or realized returns in excess of the risk-free rate, per unit of downside volatility, computed on the same net-liquidity, end-of-day basis as CAGR. The Sortino Ratio can be negative when excess returns are negative. See: [Sortino Ratio](https://www.investopedia.com/terms/s/sortinoratio.asp).
  * **Win Percentage:** % of trades that are profitable
  * **Total Premium**: The total amount of credit or debit.
  * **Capture rate:** The % of the trade value that was realized. The capture rate only shows if net premium is positive.
  * **Starting capital:** The amount of $ at the beginning of the backtest.
  * **Ending capital:** Starting capital +/- profit loss from closed backtests.
  * **Average per trade:** The average amount of $ either profited or lost during the backtest period.
  * **Average winner per lot:** Average amount collected during a winning trade per lot.
  * **Average loser per lot:** Average amount lost during a losing trade per lot.
  * **Max winner:** Highest amount profited during any closed trade (or an ongoing trade if one is open at test completion).
  * **Max loser:** Highest amount lost during any closed trade (or an ongoing trade if one is open at test completion).
  * **Average days in trade:** The average amount of time spent with an open trade.
  * **Trades:** Total number of trades, including an ongoing trade if one is open at test completion.
  * **Open Trades:** This indicates the presence of open trades in the backtest. Open trades will not appear in the trade log, but their EOD values are used for NLV-based metrics including CAGR, MDD, and MAR. Use ‘Close Open Trades on Test Completion’ to report these trades in the trade log and include their final values in the total realized P/L.
  * **Winners:** Total number of winning trades, including an ongoing trade if one is open at test completion.
  * **Net Liquidity (Net Liq)**: The sum of the portfolio’s cash, added to the mid-value of any open options position

## Secondary tabs

Below the primary metrics, you'll see a few different tabs at the bottom:

* **Summary** - a snapshot of P/L over time as well as annualized return and max drawdown per calendar year
* **Trade log** - a detailed breakdown of every trade that was run as part of the backtest
* **Analyze** - various analytics and visuals to glean deeper insights into the backtest results
* **Optimizations** - recently run parameter sweeps that originated from the backtest

### Summary Screen

At the bottom of the backtest results screen is the summary screen. It has two main tabs, the Summary and the Trade Log. The summary section has two parts:

<figure><img src="/files/7FKi8BksSeRaQsskgNfT" alt=""><figcaption></figcaption></figure>

The first part is a graph visually representing the trading funds by date in the backtest. For a backtest, the graph will only update when trades close. Tip: In order to see intra-trade drawdowns of a multi-day trade, you can put the backtest into a portfolio.

Annual metrics bar chart. This is the return of the backtest as well as its maximum drawdown. If the test is multi year, the metric will display the yearly return and the maximum cumulative drawdown in that year (e.g. if the test ends the year 2023 with a 10% MDD, and the drawdown continues an additional 5% in 2024 before recovering, then the MDD shown in the annual metrics bar for 2024 would be 15%). Said another way, the MDD in the annual metrics bar will match the highest MDD reported in the daily log for that year.

### Trade Log

The Trade Log lists out every simulated trade that was run in the backtest.&#x20;

<figure><img src="/files/L4X7C5Lw2wpfGZBvYQWc" alt=""><figcaption></figcaption></figure>

At the top right of the screen there are several options for customizing the trade log.

<figure><img src="/files/CaqSRrGnGIhLFfisTyCp" alt=""><figcaption></figcaption></figure>

* Sort: Tests can be sorted by opened, closed and P/L, with results ascending or descending.
* Filter: The log can be filtered to view only winners or only losers.

#### **Trade Replay**

<figure><img src="/files/gnhZjGZ9YnscPF8Ct1RZ" alt=""><figcaption></figcaption></figure>

If you click the three vertical lines on the left, you will be able to see the Trade Replay — how the trade behaved over time. The graph also shows VIX and the underlying.

<figure><img src="/files/48fpeGRrvaTYWlQMYYY7" alt=""><figcaption></figcaption></figure>

A few notes about the Trade Replay chart:<br>

1. The trade replay is based on 1 minute data, so if you’re using IMSL, that will not be reflected.
2. You can click on the Trade, Underlying, and VIX blocks on the upper legend to show or hide each of these plots.
3. You can also mouseover nodes on the line chart to see the exact trade value, underlying price, or VIX level at each point:<br>

   <figure><img src="/files/sMW45qEmw24R9DRvuUaz" alt="" width="563"><figcaption></figcaption></figure>
4. For longer duration trades, the chart defaults to an Overview of the entire trade, scaled appropriately based on the duration. You can switch a Weekly View using the selector on the bottom left to zoom in for a minute-by-minute analysis:<br>

   <figure><img src="/files/dO7pNwrvXfc4VxCeN5mg" alt="" width="328"><figcaption></figcaption></figure>

#### Export to CSV

This will export the trade log to a `.csv` file, so it can be opened and used in Microsoft Excel, Google Sheets, iOS, etc.

When a backtest is exported to CSV, the context given in the visual trade log on the backtest results screen is lost. Specifically, if you’re wondering about a certain value, for example why your max profit is that number, it is helpful to refer to the trade log to see which values are percentages vs. raw numbers.

#### Trade Log Settings

The gear icon will open up a screen with additional customization choices.

<figure><img src="/files/lGS5i35EpUaMYQGxYVYg" alt=""><figcaption></figcaption></figure>

Clicking the red and green eye option on the right side of the screen will allow the selection to be turned on or off in the trade log. The selections are described below:

* **Opened On:** The day, date and time the trade opened.
* **Opening Price:** Price of the underlying at the time the trade opened.
* **Strategy**: The name of the strategy, for use when analyzing multiple strategies on a spreadsheet.
* **Legs:** The quantity, date, strike and type (put/call) of the leg.
* **Premium:** The amount of debit or credit at the time of trade open (impacted by slippage if used).
* **Closing Price:** Price of the underlying at the time the trade closed.
* **Closed On:** The day, date, and time the trade was closed.&#x20;
* **Days In Trade:** The number of whole days the trade was open. 0 DTE trades will show 0 DIT.&#x20;
* **Closing Cost:** The amount of debit or credit at the time of trade close (impacted by slippage if used).
* **Reason for close:** The trigger that exited the trade. Reasons may include specified exit conditions (e.g. Above Delta, VIX9D Move Down), profit targets, stop losses, closure due to exercise/assignment risk, or expiration.&#x20;
* **P/L:** The amount the trade profited or lost (measured in $)
* **P/L %:** P/L expressed as a percentage of initial premium (for credit trades, max profit = 100%; for debit trades, max loss = –100%).
* **Max Loss:** The maximum loss the trade was “down” (measured in %)
* **Max Profit:** The maximum gain the trade was “up” (measured in %)
* **Margin Req’d:** While we have made every effort to have accurate and realistic margin modeling, margin requirements DO vary between brokerages.
* **Funds at close:** Current funds after the trade closed.
* **Opening S/L ratio**: Total short premium divided by total long premium at time of trade open.
* **Closing S/L ratio:** Total short premium divided by total long premium at time of trade close.
* **Opening VIX:** VIX at time of trade open (will not display unless VIX is an entry condition).
* **Closing VIX:** VIX at time of trade closed (will not display unless VIX is an exit condition).
* **Gap:** Underlying price gap from close of previous day to opening of current day
* **Movement:** Underlying price movement from open of day to opening the trade

#### Sorting the trade log

It is possible to sort the trade log using several filters, including Max Profit/Loss, P/L, and Opening /Closing.

You can also sort ascending or descending, and filter winners or losers.

<figure><img src="/files/Ct2xNf0YYNlY8ERhiSed" alt=""><figcaption></figcaption></figure>

### Analyze

The Analyze tab goes beyond the summary numbers to help you drill down into other considerations before trading the strategy live. It there real edge, or could it just be luck? How big were the losers, or how long are the losing streaks? How does it behave when it is sized diﬀerently or if results are sequenced diﬀerently?&#x20;

<figure><img src="/files/XyV4gawNNEEn1MqLhBjF" alt=""><figcaption><p>The Analyze tab contains a number of metrics, charts, and simulation tools for deeper analysis.</p></figcaption></figure>

* **Sizing Mode:** Both Analyze views include a Sizing Mode toggle at the top. When Normalize to 1-lot is on, trade-level panels treat every trade as a single contract, so position sizing and compounding don't skew the per-trade picture. When it is oﬀ, panels use your trades exactly as sized in the test. Each section is labeled with a badge — PER 1 LOT or ACTUAL SIZING — so you always know which basis you're looking at. Account-level panels (drawdowns, position sizing, Monte Carlo) always retain actual position sizes, no matter the toggle.
* **Strategy Health Verdict:** A quick health check of your strategy. Each card grades one trait — green is good, gold means watch it, red flags a concern. Hover any card in the app to see how it is graded.
  * **Sample Size**: How many trades the test produced. Small samples make every other number less trustworthy.
  * **Profit Factor**: Gross profits divided by gross losses.
  * **Sharpe Ratio**: Risk-adjusted return computed from the daily equity curve.
  * **Max Drawdown**: The worst peak-to-trough decline in end-of-day net liquidity.
  * **Tail Risk**: How large the worst losses are relative to typical results.
  * **Recovery Factor**: Total profit relative to max drawdown — how well the strategy earns its way out ofits worst stretch.
  * **Edge Margin**: How far the strategy's win rate sits above the break-even win rate implied by its payoﬀ ratio.
* **Advanced Performance Metrics**: Additional metrics beyond the summary screen. Each card includes a definition and a scale showing how your value compares.
  * **Ulcer Index**: Penalizes both the depth and the duration of drawdowns. A long, shallow grind hurts more here than a quick, sharp dip. Under 2 is calm; over 5 is psychologically uncomfortable.
  * **Time in Drawdown**: The share of days spent below a previous account high. Lower means the account recovers quickly and spends more of its life making new highs.
  * **Probabilistic Sharpe**: A screening estimate of the probability that the trade-level Sharpe is above zero, adjusted for skew and kurtosis. Treat it as supporting evidence, not proof.
  * **Skewness**: The shape of your P/L distribution. Negative = many small wins with occasional big
  * losses (typical for premium sellers). Positive = many small losses with occasional big winners.
  * **Payoﬀ Ratio**: Average winner divided by average loser. Premium-selling strategies often sit below 1 — combine with win rate to assess true edge.
  * **Expectancy / Trade**: Average dollar P/L per trade. Must exceed your typical fees plus slippage to be truly profitable live.
  * **Trade Eﬃciency**: The average percentage of peak unrealized profit captured on winning trades. Low eﬃciency suggests exits are coming too early.
  * The **Edge Trend** tile below the metrics compares per-lot expectancy in the first and second halves of the test, with a bootstrap interval that tells you whether the change is signal or noise.
* **Drawdown Over Time**: Percentage drawdown from the running peak, plotted across the entire test. The curve sits at 0% whenever the account is at an all-time high. Drawdown is measured on end-of-day net liquidity, so open positions are marked to market — this is the drawdown you would have actually experienced.&#x20;
  * The **Top Drawdown Periods** table below it lists the five worst declines with how long each took to bottom out and how long to recover to a new high.
* **Monthly P/L Heatmap & Performance Table**: Total P/L per calendar month, color-coded by magnitude — useful for spotting seasonal patterns and year-over-year consistency. Expand the Monthly Performance Table for trade count, P/L, win rate, intra-month drawdown, and best/worst trade per month. Months with fewer than five trades are dimmed: not enough data to draw conclusions.
* **Trade Streaks**: Your longest consecutive winning and losing streaks, in the order trades closed. Reveals how wins andlosses cluster — and what a bad stretch actually looks like for this strategy.
* **Performance by VIX Regime:** Trades bucketed by the VIX level at entry. Shows how dependent the strategy's edge is on the volatility regime it was tested in — and what might happen if the regime flips.
* **P/L Distributions**:
  * **P/L Distribution**: A histogram of trade-level P/L showing the shape of returns. Long left tails are the classic "nickels in front of a steamroller" profile.
  * **P/L Cumulative Distribution**: The curve at any point tells you what percentage of trades made at most that amount. This chart is always per-lot, because compounded dollar sizes would dominate the distribution.
* **MAE / MFE Distribution**
  * **MFE** (Maximum Favorable Excursion) is the peak unrealized profit during a trade; **MAE** (Maximum Adverse Excursion) is the deepest unrealized loss. Together they help refine profit targets and stop-loss levels based on where trades actually peaked and bottomed.
* **Return on Margin & Holding Duration**
  * **Return on Margin**: Profit as a percentage of buying power required, per trade — how much you earned per dollar tied up.
  * **Holding Duration**: The distribution of how long trades stayed open. Often surprising — many traders assume their hold time diﬀers from reality.
* **Exit Reason Breakdown**: Trades grouped by why they closed — expired, profit target, stop loss, and so on. Reveals which exit conditions actually drive your returns.
* **Win Rate vs Payoﬀ Breakeven**: Plots the win rate required to break even at any payoﬀ ratio. Your strategy is the green dot — anywhere above the red curve is profitable territory.
* **Position Sizing Simulator**: What would this exact trade sequence have done at a diﬀerent allocation? Drag the slider to re-run the equity curve live — contract rounding, compounding, drawdowns, and blow-ups included. This panel always uses actual recorded position sizes as its starting point.
*

```
<figure><img src="/files/2uLMZS6YXmhTcmXXiZJN" alt=""><figcaption><p>Build confidence with the Monte Carlo simulation, which randomizes trade sequence to estimate "worst case" scenarios with optionally injected additional losses.</p></figcaption></figure>
```

* **Monte Carlo Simulation**: Reorders your fixed historical dollar P/L using random or block resampling, with optional injected losses. It measures how sensitive the result is to trade order and reports how often the stressed balance reaches zero. It is a stress test of sequencing — not a forecast of future returns.

### Optimizations

The Optimizations tab will show recently run Optimizations. See [Optimizer](/backtesting/optimizer.md) for more information.

<figure><img src="/files/Gca3D05wc0evtZGFtTPk" alt=""><figcaption><p>Optimizer results can be found and accessed from the Optimizations tab</p></figcaption></figure>

### Save, Tag & Share a backtest

If you have a backtest that you want to save, click the down arrow at the backtest results screen.

<figure><img src="/files/sPStlrGomnntHDLUhDSi" alt=""><figcaption></figcaption></figure>

This will bring up the Save Backtest screen, which lets you either save a new backtest, or save over, or replace, an existing backtest.

<figure><img src="/files/ZgdkmiH9jfayFlBIcY1W" alt=""><figcaption></figcaption></figure>

If you select the “Create New Backtest” button, you can now name the backtest, along with a description, tags, and sharing settings.

<figure><img src="/files/eicNGLc7mXMxONaT3STt" alt=""><figcaption></figcaption></figure>

### Adding Tags

Tags are an easy way of organizing your backtests. You can add a new tag by typing and then hitting the plus button

<figure><img src="/files/z28wA0QskhKXxk77MDuG" alt=""><figcaption></figcaption></figure>

The tag will then show up in your backtest name (we have two tags here “Add new tags here!” and “CL” in this example).

[Here’s a video on tagging.](https://youtu.be/KU7wDKYtrV4?si=MFEX7-ekMA3rkwN6)

<figure><img src="/files/hka16hfIDExUea0tBGBM" alt=""><figcaption></figcaption></figure>

### Sharing a test

To share a test, select share test with others when you’re saving the backtest

<figure><img src="/files/XR6KQ12DU0vPkSBl8aLi" alt=""><figcaption></figcaption></figure>

To get the link to the test, just click the chain link button near the test name

<figure><img src="/files/gdydPTiKBacjWPwtzDRx" alt=""><figcaption></figcaption></figure>

[Here’s a video on saving & sharing a backtest](https://youtu.be/hEQskRrPGZw)
