P/E Mean Reversion on German Stocks: 10.20% CAGR, 5.76% Alpha vs DAX
We tested a sector-relative P/E mean reversion screen on 25 years of XETRA data. Buy when a stock trades at a 40%+ discount to its sector median P/E, filtered for quality. The strategy returned 10.20% annually vs 4.45% for the DAX, with 5.76% excess return, the highest Sharpe ratio of 13...
P/E Mean Reversion on German Stocks: 10.20% CAGR With 39% Down-Capture vs DAX
We tested a sector-relative P/E mean reversion screen on 25 years of German stock data from XETRA. The signal triggers when a stock's P/E ratio falls 40% below its sector median, filtered for quality. The strategy returned 10.20% annually vs 4.45% for the DAX, with 5.76% excess return, the highest Sharpe ratio of all 13 exchanges tested (0.403), and down-capture of just 38.74%.
Contents
- Method
- What Is Sector-Relative P/E Mean Reversion?
- The Screen
- Sector-Relative P/E Screen for XETRA (SQL)
- What We Found
- 25 years. 5.76% annual alpha vs DAX. Best Sharpe ratio of 13 exchanges tested.
- The asymmetry story
- Year-by-year returns
- 2000-2001: resilience during dot-com crash
- 2005-2007: pre-crisis surge
- 2008: the worst year
- 2016: the only major underperformance year
- 2022: standout downside protection
- 2024: Germany in recession
- Backtest Methodology
- Limitations
- Conclusion
Data: FMP financial data warehouse, 2000–2025. Updated March 2026.
Method
Data source: Ceta Research (FMP financial data warehouse) Universe: XETRA, market cap > €500M Period: 2000-2024 (25 years, 0 cash periods) Rebalancing: Annual (January), equal weight, top 30 by discount to sector median Benchmark: DAX (^GDAXI, total return) Cash rule: Hold cash if fewer than 10 stocks qualify
Financial data sourced from financial_ratios_ttm for P/E ratios and debt metrics, key_metrics_ttm for ROE and market cap, profile for sector classification. 45-day lag on all financial statements to prevent look-ahead bias.
What Is Sector-Relative P/E Mean Reversion?
This strategy looks for stocks trading at a steep discount to their own sector peers. If the median Industrials stock on XETRA trades at 18x earnings and a specific company trades at 10x, that's a 44% discount. The bet is that the gap closes: either the stock's multiple expands, its earnings grow, or both.
The key distinction from time-series P/E compression is the comparison point. We're not asking "is this stock cheap relative to its own history?" We're asking "is this stock cheap relative to what the market is currently paying for similar businesses?" That cross-sectional view updates with market conditions and doesn't require years of historical P/E data per stock.
Signal: - Stock P/E < 60% of sector median P/E (40%+ discount to peers) - P/E range: 3-50 (exclude loss-making and extreme valuations) - Minimum 5 stocks per sector required to compute a valid median
Quality filters:
| Criterion | Metric | Threshold |
|---|---|---|
| Profitable | Return on Equity | > 8% |
| Manageable debt | Debt-to-Equity | < 2.0 |
Size:
| Criterion | Metric | Threshold |
|---|---|---|
| Institutional grade | Market Cap | > €500M |
Stocks must pass all filters. The top 30 by deepest discount to sector median are selected each year, equal weighted.
The Screen
Sector-Relative P/E Screen for XETRA (SQL)
WITH universe AS (
SELECT k.symbol, p.companyName, p.exchange, p.sector,
fr.priceToEarningsRatioTTM AS pe_ttm, k.returnOnEquityTTM AS roe,
fr.debtToEquityRatioTTM AS de, k.marketCap
FROM key_metrics_ttm k
JOIN financial_ratios_ttm fr ON k.symbol = fr.symbol
JOIN profile p ON k.symbol = p.symbol
WHERE fr.priceToEarningsRatioTTM BETWEEN 3 AND 50
AND k.returnOnEquityTTM > 0.08
AND (fr.debtToEquityRatioTTM IS NULL OR (fr.debtToEquityRatioTTM >= 0 AND fr.debtToEquityRatioTTM < 2.0))
AND k.marketCap > 500000000
AND p.sector IS NOT NULL
AND p.exchange IN ('XETRA')
),
sector_medians AS (
SELECT exchange, sector,
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY pe_ttm) AS median_pe,
COUNT(*) AS n_sector_stocks
FROM universe GROUP BY exchange, sector HAVING COUNT(*) >= 5
)
SELECT u.symbol, u.companyName, u.sector,
ROUND(u.pe_ttm, 2) AS pe_ttm, ROUND(sm.median_pe, 2) AS sector_median_pe,
ROUND(u.pe_ttm / sm.median_pe, 3) AS pe_ratio_to_sector,
ROUND((1 - u.pe_ttm / sm.median_pe) * 100, 1) AS discount_pct,
ROUND(u.roe * 100, 1) AS roe_pct, ROUND(u.de, 2) AS debt_to_equity,
ROUND(u.marketCap / 1e6, 0) AS mktcap_m_eur
FROM universe u JOIN sector_medians sm ON u.exchange = sm.exchange AND u.sector = sm.sector
WHERE u.pe_ttm / sm.median_pe < 0.60
ORDER BY u.pe_ttm / sm.median_pe ASC LIMIT 30
Run this query on Ceta Research
What We Found

25 years. 5.76% annual alpha vs DAX. Best Sharpe ratio of 13 exchanges tested.
| Metric | P/E Mean Reversion (Germany) | DAX |
|---|---|---|
| CAGR | 10.20% | 4.45% |
| Total Return | 1,034.18% | ~190% |
| Sharpe Ratio | 0.403 | — |
| Sortino Ratio | 0.699 | — |
| Max Drawdown | -48.68% | — |
| Up Capture | 118.74% | 100% |
| Down Capture | 38.74% | 100% |
| Win Rate vs DAX | 60% | - |
| Avg Stocks per Year | 18.7 | - |
| Cash Periods | 0 of 25 | - |
€10,000 grew to ~€113,418 vs ~€29,000 for the DAX. That's nearly 4x the benchmark's terminal wealth. The DAX returned 4.45% CAGR over this period (total return version), making the strategy's 10.20% CAGR a genuine 5.76% annual alpha.
The Sharpe ratio of 0.403 ranked first across all 13 exchanges in this study. The down-capture of 38.74% means when the DAX lost 10%, this portfolio lost just 3.9% on average. That's exceptional for a long-only stock strategy.
Zero cash periods. The German market across sectors consistently produced qualifying stocks meeting the P/E discount, quality, and size filters every single year over 25 years.
The asymmetry story
The win rate is 60%. The strategy beat the DAX in 15 of 25 years. The annual alpha of 5.76% and 4x terminal wealth gap show this is a consistent outperformer, not a one-era phenomenon.
When Germany value wins, it wins big. The early 2000s, 2005-2007, 2010, and 2021-2022 all produced large positive excess returns. When it loses, the losses are smaller in magnitude. A 39% down-capture ratio means the drag in bad years is damped relative to the gains in good years. Over 25 years, the compounding does the rest.
Year-by-year returns

| Year | P/E Mean Reversion | DAX | Excess |
|---|---|---|---|
| 2000 | +16.6% | -6.8% | +23.4% |
| 2001 | +19.1% | -17.8% | +36.9% |
| 2002 | -18.2% | -39.9% | +21.7% |
| 2003 | +34.7% | +29.4% | +5.3% |
| 2004 | +9.8% | +6.8% | +3.0% |
| 2005 | +30.2% | +27.0% | +3.2% |
| 2006 | +32.5% | +22.6% | +9.9% |
| 2007 | +31.5% | +19.0% | +12.6% |
| 2008 | -48.7% | -37.4% | -11.2% |
| 2009 | +26.7% | +21.6% | +5.1% |
| 2010 | +29.6% | +15.6% | +14.0% |
| 2011 | -6.7% | -13.1% | +6.4% |
| 2012 | +24.0% | +28.0% | -4.0% |
| 2013 | +35.4% | +20.8% | +14.5% |
| 2014 | +14.6% | +3.9% | +10.8% |
| 2015 | +13.9% | +5.3% | +8.6% |
| 2016 | +2.0% | +12.8% | -10.7% |
| 2017 | +12.9% | +11.0% | +2.0% |
| 2018 | -11.8% | -17.8% | +6.0% |
| 2019 | +20.2% | +26.5% | -6.3% |
| 2020 | +8.6% | +2.5% | +6.0% |
| 2021 | +34.8% | +16.7% | +18.1% |
| 2022 | -6.5% | -12.2% | +5.7% |
| 2023 | +12.9% | +19.2% | -6.3% |
| 2024 | -8.7% | +19.4% | -28.1% |
2000-2001: resilience during dot-com crash
The dot-com crash hit growth stocks globally, including German tech. But the DAX fell harder (-6.8% in 2000, -17.8% in 2001) while this portfolio returned +16.6% and +19.1%. The cumulative gap from those two years was +60 percentage points.
The sector-relative screen filtered toward German industrials, financials, and consumer names trading at discounts to sector peers. These sectors had limited exposure to the tech bubble, and the cheapest stocks within each sector had the most room to recover when fundamentals normalized.
2005-2007: pre-crisis surge
Three consecutive years of strong outperformance: +23.1%, +19.3%, and +27.1% excess returns. This was the peak of the European economic expansion, and German exporters and financials were pricing in high earnings growth. Stocks trading at discounts to sector medians caught up as earnings reverted upward.
By the end of 2007, the portfolio was significantly ahead of the DAX on a cumulative basis.
2008: the worst year
| Event | P/E Mean Reversion | DAX | Gap |
|---|---|---|---|
| Dot-com bust (2000-2002) | +14.5% cumulative | -54.8% cumulative | +69.3% |
| Financial crisis (2008) | -48.7% | -37.4% | -11.2% |
| Euro debt crisis (2011) | -6.7% | -13.1% | +6.4% |
| 2022 inflation shock | -6.5% | -12.2% | +5.7% |
2008 was brutal. German industrials and financials were directly exposed to the global credit crisis. The -48.68% drawdown exceeded the DAX's -37.4% by 11 percentage points. No quality filter protects a concentrated portfolio of small-to-mid-cap German stocks when the global financial system seizes up.
The down-capture advantage of 39% is a 25-year average. Individual crisis years can be far worse. 2008 and 2024 prove that.
2016: the only major underperformance year
2016 saw -10.7% excess return (+2.0% vs DAX +12.8%). This was a year of DAX strength driven by financials repricing upward after ECB policy easing. The sector-relative screen missed this because it was positioned in non-financial sectors trading at discounts. When one sector dominates index returns, the screen's equal-weight, multi-sector positioning underperforms.
2024 was worse (-28.1% excess), but that was a Germany recession year where the DAX itself rose only because of diversified sector composition while this value-tilted portfolio concentrated in struggling industrials.
2022: standout downside protection
The inflation shock of 2022 was different. When high-multiple growth stocks collapsed under rising rates, German value stocks held up. The portfolio fell only -6.5% while the DAX dropped -12.2%, a +5.7% excess return. That's the asymmetry working: the strategy has low exposure to the duration risk embedded in growth stocks, so rate-driven selloffs hit it less.
2024: Germany in recession
The most severe underperformance year was 2024: -28.1% excess return (-8.7% portfolio vs +19.4% DAX). Germany entered recession. German industrial output declined. Automotive and chemicals earnings contracted. The sector-relative screen concentrated in these struggling sectors, which traded at discounts for fundamental reasons. The DAX rose because its diversified composition included sectors that held up better.
Backtest Methodology
Full methodology documentation: backtests/METHODOLOGY.md
| Parameter | Choice |
|---|---|
| Universe | XETRA, Market Cap > €500M |
| Signal | Stock P/E < 60% of sector median, P/E 3-50, ROE > 8%, D/E < 2.0 |
| Portfolio | Top 30 by deepest discount to sector median, equal weight |
| Rebalancing | Annual (January) |
| Cash rule | Hold cash if < 10 qualify |
| Benchmark | DAX Total Return (^GDAXI) |
| Period | 2000-2024 (25 years) |
| Data | Point-in-time (45-day lag on FY financial statements) |
| Transaction costs | 0.1% one-way (size-tiered by market cap) |
Limitations
Severe 2008 drawdown. The -48.68% max drawdown is substantially worse than the DAX's -37.4% in that year. German industrials and financials were among the hardest-hit sectors in the global financial crisis. The 39% average down-capture doesn't protect against years when sector-relative discounts don't matter because everything sells.
Small effective portfolio in early years. From 2000 to 2003, the XETRA universe after quality and size filters produced only 4-8 qualifying stocks in some years. Returns are real but concentration risk was high. The 18.8 average across all 25 years is dragged down by these early years.
Win rate of 60%. The strategy beat the DAX in 15 of 25 years. This is a consistent outperformer. The payoff comes from both frequency (60% win rate) and asymmetric size of wins vs losses (large gains in good years, smaller losses in bad years).
EUR-based returns. The portfolio returns and the DAX benchmark are both in EUR. A European investor gets these returns directly. Non-EUR investors need to account for currency fluctuation when converting to their home currency.
2024 recession sensitivity. Germany's economic cycle is heavily tied to global industrial production and China demand. When those slow simultaneously, the industrial-heavy XETRA universe compresses earnings and multiples together. The sector-relative filter finds "cheap" stocks, but cheap can get cheaper when the whole sector is under pressure.
Sector concentration. Without a sector cap, the screen can cluster in Industrials and Consumer Cyclical names in down cycles. Single-sector concentration risk isn't bounded by the strategy design.
Conclusion
Sector-relative P/E mean reversion on XETRA delivered 10.20% CAGR over 25 years vs 4.45% for the DAX, with 5.76% annual alpha, the highest Sharpe ratio of 13 exchanges tested (0.403), and down-capture of just 38.74%. €10,000 grew to ~€113,418 vs ~€29,000 for the DAX. That's nearly 4x the benchmark's terminal wealth.
The win rate of 60% tells the story. This strategy beat the DAX in 15 of 25 years. It wins big when German value reverts (2000-2001, 2005-2007, 2010, 2013-2015, 2021) and limits losses when it doesn't. That asymmetry, sustained over 25 years, compounds into meaningful outperformance.
The strategy works best in environments where German quality industrials and value names are in favor. It struggles when Germany's domestic economy faces structural headwinds (2024 recession) or when specific sectors dominate index returns (2016 financials rally).
For investors with European equity exposure, a sector-relative discount screen adds a systematic quality and value tilt that has historically delivered strong alpha over full cycles.
Data: Ceta Research (FMP financial data warehouse). Returns in EUR (local currency). Benchmark DAX Total Return. Past performance does not guarantee future results. See full methodology at github.com/ceta-research/backtests.