quantverse.
2026-09-05 · Quantverse Team

From pairs to portfolios: a note for Pair Trading Lab users

Pair Trading Lab shuts down on 1 October 2026 after fifteen years. Here is what we learned from running it, why the successor does not trade pairs, and what an AI-managed market-neutral portfolio means for people who used to manage pairs by hand.

Pair Trading Lab closes on 1 October 2026. We built it in 2011, ran it for fifteen years, and the same company, Quantverse OÜ, is building what comes next. This post is for the people who used it: who searched the pair database, argued with the backtester, kept portfolios of ratio and Kalman strategies, and ran PTL Trader against an Interactive Brokers account through more than one bad month.

If you are one of them, you already know most of what this post is about. Everything we are building now came out of watching what a pair does over time.

What a pair is, mechanically

Strip a pair trade down and it is a portfolio of two positions with one number tying them together. You estimate a hedge ratio on a window of history, form the spread, and trade its z-score against entry and exit thresholds. The ratio model did this with a moving average and a standard deviation. The residual model did it with a regression. The Kalman-grid model stopped asking you to pick a window at all: it ran a grid of Kalman filters side by side, ranked them with a learned model, and re-estimated the hedge ratio every day.

That last step is worth noticing. Kalman-grid was already the platform admitting that the hard part of pair trading is not finding a pair. It is keeping the relationship estimated correctly while it drifts, and knowing when to stop.

Where pairs break

Anyone who ran pairs for more than a year met the same three failure modes.

The relationship goes away and the spread does not come back. A pair that tested as cointegrated on two years of data is a statement about those two years. When one company is acquired, changes its business, or simply stops moving with the other, the spread walks off and the model keeps adding to the position because the z-score says it is cheap. With two names there is nothing else in the trade to absorb that.

Two names is not diversification. Every pair carried the full idiosyncratic risk of both legs. One earnings miss on the short leg was a full-position loss with no offset, and market neutrality at the pair level said nothing about the net exposure of ten such pairs held together. The portfolio tool let you hold them side by side, but it sized them one at a time and never showed you what the whole book was long and short of.

A database of ten million pairs is a multiple-testing machine. Screen enough pairs and some will pass a cointegration test by chance. The backtester could tell you how a pair would have done in-sample. It could not tell you how many pairs you had looked at to find it, and that count is what decides whether the result means anything.

None of these is a bug in Pair Trading Lab; they are properties of the two-name unit, and the fix is to change the unit.

What changes

In Quantverse, the unit of work is the whole market-neutral portfolio. A long basket against a short basket, sized together, with the net beta and factor exposures of the entire book measured and neutralized rather than assumed from pairwise construction. The things you used to do by hand map onto pieces of the platform:

You did this on Pair Trading LabThe platform does this
Search ten million pairs for cointegrationBuild daily co-movement clusters across the whole universe, so related names are grouped, not paired
Estimate one hedge ratio per pairBeta-neutralize a long book against a short basket at the portfolio level
Set a margin usage target per portfolioSize positions with fractional Kelly, a volatility target and a turnover penalty
Run one backtest on the pair's historyWalk-forward validation with purging and embargo, so the test period never leaks into training
Notice a regime change after the drawdownTag periods by realized volatility, dispersion, breadth and factor crowding, and attribute drawdowns to factor, idiosyncratic and regime components
Pick the pairs yourselfAn agent proposes a portfolio, runs the validation and writes the research note; you approve or reject

The identifier data behind this is live today; the clusters, features and labels open through the beta, and the data page shows which is which.

The data underneath is point-in-time. Every universe is built as it stood on the start date, including the companies that were later delisted or acquired, and identifiers are resolved as of each day rather than by today's ticker. We wrote about why that matters in the introduction to Quantverse. For a former pair trader the short version is that the names that ruined a pair are exactly the names that a survivorship-biased backtest cannot see.

What an agent run looks like

You give the platform a research brief in plain language, such as "market-neutral mean reversion in the Russell 2000 over the last three years". An agent builds the point-in-time universe, computes features under the same as-of discipline, runs the walk-forward folds, and produces a markdown note with the equity curve, the regime split and the drawdown attribution. You read it the way you used to read a backtest report, and then you decide.

The constraints are the part we care most about, because a pair trader knows how easy it is to fool yourself with a search.

  • Every query resolves through the point-in-time engine, so lookahead is not something the agent could do even if asked.
  • Universe size, feature width and fold counts are capped. The agent cannot widen the search until something looks good, which is the ten-million-pairs problem with the lid on.
  • Compute has hard per-run and per-day cutoffs.
  • Anything touching a brokerage or order flow requires a human to sign off.
  • Every skill call is signed and hashed, so a result can be reproduced from its record.

The full skill list is on the agents page.

What does not carry over

We want to be plain about this. Quantverse is not Pair Trading Lab version two.

  • There is no pair database, no pair backtester and no pair models. Your saved backtests and portfolios do not migrate, because the successor has no object to migrate them into.
  • Until 1 October 2026 the site works as before, so anything you want to keep from your backtests and portfolios should be saved before then.
  • PTL Trader is open source under GPLv3, and on 30 August we announced a new version that runs without the website and API. If you want to keep trading pairs through Interactive Brokers, that is the path, and it stays free.
  • Quantverse is entering open beta soon with a small group of funds and independent researchers. If you want a seat, subscribe to the newsletter on the home page or write to [email protected] and tell us you came from Pair Trading Lab.

The hedge ratio, one more time

A pair was a portfolio of two names and one hedge ratio, and fifteen years of running it taught us that the ratio was never the hard part. The hard part was everything around it: the search that found the pair, the regime that broke it, the ten other pairs in the same book, and the data that quietly forgot the companies that had disappeared. Quantverse is built around those four things, with the pair generalized to a book and the searching handed to an agent that has to show its work.

Thank you for fifteen years. The forum thread with the announcement is here, and we read the replies.

← back to blog