Portfolio Lab

Portfolio Comparison

In brief

The Comparison tab is the tool with which you put two or more portfolios side by side and let it show, clearly, which prevails and why. It’s one of the most valuable tabs during development: instead of remembering “by eye” how yesterday’s configuration compared to today’s, you actually compare them — both visually, overlaying equities, and numerically, aligning portfolio metrics in a single table.

In simple terms: in the Builder you generate many variants — you change a filter, a threshold, Money Management — and each produces a different portfolio. The Comparison tab lets you “photograph” these variants as snapshots and then compare up to eight in parallel. The chart shows at a glance which curve climbs better with less pain; the table, colouring cells from green (better) to red (worse), tells you metric by metric who wins; and a composite score with a related ranking summarizes it all into an order — number 1 is the one that, according to a weighted mix of metrics, prevails over the others.

An important premise. QANTHOS is an analysis, validation and discovery tool, not a financial advisor. The composite score and ranking are an orientation summary, built with a preset mix of metrics and weights: they help read the comparison, they don’t replace your judgement. Which portfolio is “better” for your objectives — and whether that edge will hold out of sample — remains your assessment, to be confirmed with Walk-Forward Analysis, validation and observation over time.

1. What a snapshot is and how it’s created

The Comparison tab’s building block is the snapshot: a photograph of a Builder configuration, saved with a name, ready to be recalled and compared later. A snapshot keeps the entire configuration producing a portfolio — filters, rotation, Money Management, Rebalancer, Correlation — together with the performance numbers computed for that configuration.

Created two ways: from the Portfolio Rules tab, with the 💾 Snapshot… button in the command bar, or from the Comparison tab itself, with the ➕ Save current button. Either way, the Save Configuration dialog opens, asking for:

Field Meaning
Name Required and unique. The label you’ll find the snapshot under in the list (e.g. “Balanced Pro + strict MaxDD”).
Description Optional notes on the configuration: useful to remember what you were trying.
Tags Comma-separated labels (e.g. “conservative, q1-2026”), to filter and organize snapshots.

Below the fields, a preview shows the configuration you’re saving.

Snapshot isn’t “Mark as live”. Two different things, not to be confused. A snapshot is a comparable sample: save as many as you want, used to compare alternatives. Mark as live instead designates the single operational portfolio for Monitoring. Snapshot is for exploring; live is for trading. Details on marking live are in the dedicated sub-chapter.

2. The tab’s structure

The Comparison tab is organized into three zones.

On the left, the Saved Snapshots panel: the list of all snapshots, each with a checkbox. Check the ones you want to compare — from a minimum of two to a maximum of eight. A Filter tags dropdown narrows the list by label, and next to each name a badge flags the cache status: 🟢 ready to compare, 🟡 needs generating, 🔴 error. The context menu (right-click) offers Load, Details, Duplicate, Rename and Delete; at the bottom, ➕ Save current and 🔄 Refresh.

At the top, the action bar with the comparison’s main commands (described in §7).

In the centre, the results area, split into two sub-tabs that are the two ways of reading the comparison:

  • the table — the numeric comparison of metrics (§3);
  • the equity chart — the visual comparison of the curves (§5).
Portfolio Comparison tab
The Comparison tab: Saved Snapshots panel on the left, action bar at the top, central area with the Table and Equity Chart sub-tabs.

3. The numeric comparison: the table

The table places one column per selected snapshot and one row per metric, grouped by family. The at-a-glance read comes from colour: for each row, QANTHOS compares column values and tints them with a green → yellow → red gradient, where green is the best value and red the worst. So, scanning a row, you immediately see which snapshot wins on that metric; scanning a column, you see on how many metrics a given snapshot leads.

Metrics are organized into five families:

Family Metrics What it captures
Aggregate Performance Net Profit, Annualized Return, Max DD ($ and %), Sharpe, Sortino, Calmar, Recovery Factor, MM Efficiency The portfolio’s overall return and risk.
Stability Global RWC, RRWC last 10, ART (%) How stable strategy selection is from one rotation to the next (low turnover = more stable).
Rotation Average (weighted) Skill Index, # strategies with high Skill Index, total Δ Skill How well the rotation engine “picks up” strategies at the right time.
Composition # active strategies in the last rotation The current operational portfolio’s shape.
Anti-Overfitting Monthly Hit Rate, Equity R², Avg DD Recovery, Time Under Water The curve’s regularity and resilience: how linear it is, how much it stays below the peak, how long it takes to recover.

Each metric header has a tooltip explaining its meaning and, where it makes sense, its reference range. The table is sortable by clicking a column header, and columns auto-adjust to width.

Watch the sign for “lower is better” metrics. For metrics like Max Drawdown, Time Under Water or Avg DD Recovery, a smaller value is better: the colouring accounts for direction, so green still goes to the preferable value. When a value isn’t computable (for example a metric requiring more rotations than are available), the cell shows “—” instead of a made-up number.

Metrics comparison table
The comparison table: snapshot columns, rows by family, colour-coded cells, and at the bottom the Composite Score and Rank rows.

4. The composite score and ranking

At the bottom of the table two rows sum things up: Composite Score (0-100) and Rank. They’re how the tab answers, in a single number, the question “which prevails?”.

The Composite Score is a weighted average of a selected group of metrics, where each metric is first normalized against the other snapshots in the comparison (not in absolute terms) and then weighted. The weights favour risk-adjusted return and stability:

Metric Weight
Sortino Ratio 0.22
Calmar Ratio 0.18
Global RWC 0.13
Average Skill Index 0.13
Monthly Hit Rate 0.09
Probabilistic Sharpe Ratio 0.09
Equity R² 0.05
Avg DD Recovery (lower is better) 0.06
Time Under Water (lower is better) 0.05

The Rank then orders the snapshots by descending score: #1 is the one that prevails.

There’s a trait of this score worth understanding well, because it determines correct use:

The score is relative, not absolute. Normalization is a min-max across the snapshots you’re comparing: the best on a metric gets 100, the worst 0, the others in between. This means the score depends on the group being compared — adding or removing a snapshot recalculates all scores. It’s therefore not a universal “quality grade”, but a measure of who wins in that comparison. With only one snapshot selected the score doesn’t exist (you need at least two terms of comparison).

And this is precisely where the “why it prevails” lies, not just the “who”. The ranking gives you the order; the colour-coded table above tells you on which metrics that order was formed. Maybe one snapshot wins because it has higher Sortino and Calmar and a more contained drawdown; another produces more raw Net Profit but with a jumpier curve and a worse Time Under Water. Reading score and colours together turns the comparison from “this is better” into “this is better because it’s more risk-efficient, even though it earns a bit less” — exactly the kind of understanding needed during development.

5. The visual comparison: the equity chart

The Equity Chart sub-tab overlays the equity curves of the selected snapshots, one per colour, so you can see their shape by eye: which climbs more, which is more regular, which suffers more in difficult moments. Above the chart, a row of statistics summarizes the common period shared by the compared portfolios (and its duration in years), the best recovery (the snapshot with the best Recovery Factor) and the worst day (the worst day and which snapshot it belongs to).

The controls above the chart let you read the curves as fairly as possible:

Control Options What it’s for
Y Scale Percentage (%) (default), Absolute ($), Logarithmic The percentage scale compares relative growth and is fairest when starting capitals differ; absolute shows dollars; logarithmic makes compound growth over long periods readable.
Alignment Common period (default), Full period Common period cuts all curves to the interval they share (apples-to-apples comparison); full period shows each curve over its full extent.
Also show RAW on/off Overlays the RAW curve (one contract, no Money Management) alongside the actual one. See §6.
Show rotations on/off Highlights rotation points. Available only when a single snapshot is selected.

The three equity projections compared

The Y Scale doesn’t change the data, but the way you look at it — and it’s a choice that greatly affects which comparison you’re really making.

Percentage (%) — the default, and generally the fairest. All curves are rebased to 100 at the starting point (a dashed line marks the 100% level), so what you see is relative growth: how much capital grew, proportionally, regardless of how much it started with. The right mode when comparing portfolios starting from different capital, because it puts them all on the same footing — a curve reaching 150% earned 50%, whether it started from 50,000 or 200,000.

Absolute ($) — shows equity in real dollars. Useful when you care about the actual size of gains and losses, not just the proportion: how much money that portfolio really made. The downside is that if portfolios start with different capital, slopes are no longer directly comparable — a curve can look “steeper” simply because it works on larger capital.

Logarithmic — shows dollars on a logarithmic axis, where the ratio between values matters, not the absolute difference. The key property: equal vertical distance corresponds to equal percentage change. This gives two advantages. First: constant compound growth appears as a straight line, so you instantly see whether a portfolio grows at a steady pace or accelerates/decelerates. Second: it makes curves of very different magnitude and very long periods readable together, where on an absolute scale the early years would appear squashed and unreadable next to the later ones.

A detail on drawdown. The drawdown sub-chart follows the chosen scale: in Absolute mode it shows drawdown in dollars, while in Percentage and Logarithmic it shows it in percentage (a drawdown is always negative, so a log scale wouldn’t make sense there: percentage is its natural companion).

The chart has the standard toolbar (zoom, pan, image save). Selecting a row in the table highlights the corresponding curve, so table and chart read together.

Stale cache and approximated curve. If a snapshot has metrics saved with an older format version, the chart falls back to a per-rotation (coarser) curve instead of trade-by-trade, and a warning appears. Regenerating that snapshot (see §7) is enough to get the detailed curve.

Comparison equity chart
The Equity Chart sub-tab: overlaid curves, statistics row (common period, best recovery, worst day) and scale/alignment controls.

6. RAW and MM: isolating selection from sizing

An idea running through the whole tab is the distinction between RAW and MM equity. The MM curve is the real one, with Money Management applied (actual sizes). The RAW curve is the “one contract per strategy” one, with no sizing at all.

Comparing the two serves to separate two distinct qualities: how good strategy selection is (visible on RAW, unaffected by sizes) and how much value sizing adds (the difference between RAW and MM). The MM Efficiency metric in the table summarizes exactly this ratio. In the chart, the Also show RAW option lets you see the two curves side by side. A way to understand whether a portfolio “wins” thanks to better strategies or thanks to more aggressive sizing — two very different things when assessing robustness.

7. The cache: comparing and generating

The comparison is fast because each snapshot’s metrics, once computed, are cached and found again between sessions without recalculation. The badge next to the name says the status: 🟢 ready (cached and consistent metrics), 🟡 needs generating (metrics missing or no longer valid), 🔴 error.

The action bar governs this cycle:

Command What it does
⚖️ Compare Compares the selected snapshots. Ones without a valid cache appear as “needs generating”: the comparison shows only the ready ones.
▶ Generate selected For each selected snapshot, applies its exact configuration and regenerates the portfolio, saving the metrics tied to that config. The slow operation, but it’s what takes a snapshot from 🟡 to 🟢.
🗑 Invalidate cache Invalidates the selected snapshots’ cache, forcing regeneration.
📤 Export for PBO Exports the comparison data as JSON for multi-configuration PBO analysis (needs many configurations — at least a dozen — to be statistically meaningful).

Why a snapshot becomes “needs generating”. Cached metrics are tied to the exact configuration they were computed with, via a fingerprint. If you modify a snapshot’s configuration — or if the universe of available strategies changes — the fingerprint no longer matches, and QANTHOS automatically invalidates those metrics so as not to show you numbers that no longer belong to that config. It’s a safeguard: better an honest 🟡 than a silently wrong comparison. Just press Generate selected to realign.

8. Common issues and notes

I selected the snapshots but the comparison is empty or partial. The snapshots are probably 🟡 “needs generating”: the comparison only shows ones with cached metrics. Select the 🟡 ones and press Generate selected.

The Compare button doesn’t activate / blocks me. You need at least two selected snapshots (the score is relative and needs a term of comparison) and no more than eight. With a single snapshot there’s no comparison to do.

A snapshot’s score changed without me touching it. Normal: the score is relative to the compared group. Adding or removing a snapshot from the comparison recalculates normalization, and therefore all scores. Always compare the same set if you want stable numbers.

The chart shows a “stale cache” warning. That snapshot has metrics in an older format: the curve is approximated (per-rotation). Regenerate it with Generate selected for the trade-by-trade curve.

The curves start from very different points. Set Y Scale to Percentage and Alignment to Common period: you’ll compare relative growth over the same time window, the fairest comparison when capital and durations differ.

9. An example workflow

A typical path during development, not a prescription.

  1. In the Portfolio Rules tab build a configuration and press 💾 Snapshot…; give it a clear name and tags. Repeat for the variants you want to compare.
  2. Open the Comparison tab and, in the left panel, check the snapshots to compare (2 to 8).
  3. If any are 🟡, select them and press ▶ Generate selected to compute their metrics.
  4. Press ⚖️ Compare.
  5. In the Table sub-tab, read the colour-coded cells to see on which metrics each one wins, and look at Score and Rank for the summary.
  6. In the Equity Chart sub-tab, compare the curves (Y Scale in % and Alignment on Common period for a fair comparison); enable Also show RAW to distinguish selection quality from Money Management’s contribution.
  7. Use what you’ve learned to go back to Portfolio Rules, refine the winning configuration, and — once convinced — validate it (Lock-box) and make it operational (Mark as live).

The Comparison tab’s value is making evident and grounded what would otherwise remain an impression. But “wins in this comparison” doesn’t mean “wins absolutely”: a good result here is a promising hypothesis, to be confirmed out of sample before taking it into operation.

10. To learn more

  • Portfolio Rules — creating snapshots from the command bar, with 💾 Snapshot….
  • Live Portfolio — the difference between snapshot (comparison) and Mark as live (operations).
  • Money Management — the sizing that separates the MM curve from RAW.
  • Builder tabs — Equity (including the Lock-box Validation sub-tab), Filters Analysis.
QANTHOS is an analysis, validation and discovery tool, not a financial advisory service. The metrics and values shown are illustrative and describe past behaviour. Trading leveraged financial instruments carries a significant risk of loss.