Sector Mean Reversion on Hong Kong: 6.51% CAGR, -1.51% vs S&P 500

Growth of HKD 10,000 in Sector Mean Reversion Hong Kong (HKSE) vs S&P 500 from 2000 to 2025

Hong Kong's sector mean reversion result is a mixed picture. Over 26 years, the strategy returned 6.51% annualized in HKD, trailing the S&P 500's 8.02% by 1.51% per year. But the year-by-year story is anything but flat. 2009 delivered +105.53%, the second-highest single-year return in the entire 14-exchange study. 2008 was -53.09%, worse than SPY. 2023 was -15.66% while SPY gained +26%. HKSE produces dramatic individual years that don't average out to competitive long-run performance.

Contents

  1. Method
  2. What is Sector Mean Reversion?
  3. Most Selected Sectors (of 97 invested quarters)
  4. The Screen
  5. What We Found
  6. 26 years. -1.51% annual gap vs the S&P 500.
  7. Year-by-Year Returns
  8. Notable Periods
  9. 2003: SARS recovery, +73.88%
  10. 2007: Pre-GFC China boom, +42.59%
  11. 2008-2009: The crash and the recovery
  12. 2013-2014: Two years near zero
  13. 2021-2023: Three years of persistent underperformance
  14. 2025: Sharp reversal, +42.35%
  15. Backtest Methodology
  16. Limitations
  17. Takeaway
  18. Part of a Series
  19. References
  20. Run This Screen Yourself

Method

  • Data source: Ceta Research (FMP financial data warehouse)
  • Universe: HKSE (Hong Kong Stock Exchange), market cap > HKD $3B (~USD $400M)
  • Period: 2000-2025 (26 years, 104 quarterly periods)
  • Rebalancing: Quarterly (January, April, July, October)
  • Signal: Buy all stocks in the bottom 2 sectors by 12-month trailing equal-weighted return
  • Portfolio construction: Equal weight all qualifying stocks in selected sectors
  • Benchmark: S&P 500 Total Return (SPY)
  • Cash rule: Hold cash if fewer than 5 stocks qualify
  • Currency note: Returns are in HKD (local currency). Benchmark is SPY in USD.

Historical financial data with 45-day lag to prevent look-ahead bias. Full methodology: backtests/METHODOLOGY.md


What is Sector Mean Reversion?

The strategy is simple. At each quarterly rebalance, we rank all sectors by their equal-weighted 12-month trailing return. We buy every qualifying stock in the bottom 2 sectors. Next quarter, we re-rank and rotate.

The academic basis comes from Moskowitz and Grinblatt (1999), who showed that industry-level momentum explains much of the stock momentum anomaly. The reverse holds too: sectors that have underperformed for a full year tend to carry suppressed valuations and depressed sentiment that eventually normalize.

Hong Kong is a structurally unusual market for this strategy. It's classified as a developed market, but a large portion of its listed companies are mainland Chinese firms (H-shares, Red Chips) that trade in Hong Kong but operate under PRC regulatory and economic conditions. The sector underperformance that drives the strategy's signal in HK often reflects policy risk, regulatory crackdowns, and real estate sector stress, not the sentiment-driven cycles that fuel reversion in Western markets. That structural difference shows up in the results.

With an average of 72.3 stocks per quarter across the two selected sectors, the portfolio is more concentrated than the US (603 stocks) but comparable to other Asian markets.

Most Selected Sectors (of 97 invested quarters)

Sector Quarters Selected
Communication Services 31 (32%)
Technology 22 (23%)
Real Estate 22 (23%)
Healthcare 21 (22%)
Basic Materials 20 (21%)
Energy 18 (19%)

Communication Services leads at 32%. HK's telecom and media stocks were beaten down repeatedly through the study period. Tech and Real Estate tie at 22 quarters each, with Real Estate reflecting the Evergrande-era stress that began in 2020 and accelerated through 2022-2023. Healthcare's 22-quarter presence reflects the biotech and pharmaceutical segment that repeatedly underperformed before recovering. The sector mix reflects a market where China-linked sectors cycle through regulatory and macro risk as much as sentiment.


The Screen

The screen below runs live. It ranks HKSE sectors by their current 12-month equal-weighted return. The bottom rows are what the backtest would buy today.

WITH prices AS (
 SELECT e.symbol, e.adjClose, CAST(e.date AS DATE) AS trade_date
 FROM stock_eod e
 JOIN profile p ON e.symbol = p.symbol
 WHERE p.sector IS NOT NULL AND p.sector != ''
 AND p.marketCap > 3000000000
 AND p.exchange IN ('HKSE')
 AND CAST(e.date AS DATE) >= CURRENT_DATE - INTERVAL '400' DAY
 AND e.adjClose IS NOT NULL AND e.adjClose > 0
),
recent AS (
 SELECT symbol, adjClose AS recent_price
 FROM prices
 QUALIFY ROW_NUMBER() OVER (PARTITION BY symbol ORDER BY trade_date DESC) = 1
),
year_ago AS (
 SELECT symbol, adjClose AS old_price
 FROM prices
 WHERE trade_date <= CURRENT_DATE - INTERVAL '252' DAY
 QUALIFY ROW_NUMBER() OVER (PARTITION BY symbol ORDER BY trade_date DESC) = 1
),
stock_returns AS (
 SELECT r.symbol, pr.sector,
 (r.recent_price / ya.old_price - 1) * 100 AS return_12m
 FROM recent r
 JOIN year_ago ya ON r.symbol = ya.symbol
 JOIN profile pr ON r.symbol = pr.symbol
 WHERE ya.old_price > 0 AND r.recent_price > 0
 AND (r.recent_price / ya.old_price - 1) BETWEEN -0.99 AND 5.0
)
SELECT pr.sector,
 ROUND(AVG(sr.return_12m), 2) AS avg_return_12m_pct,
 COUNT(DISTINCT sr.symbol) AS n_stocks,
 ROW_NUMBER() OVER (ORDER BY AVG(sr.return_12m) ASC) AS rank_worst
FROM stock_returns sr
JOIN profile pr ON sr.symbol = pr.symbol
GROUP BY pr.sector
HAVING COUNT(DISTINCT sr.symbol) >= 5
ORDER BY avg_return_12m_pct ASC

What We Found

The strategy produced volatile, dramatic years that didn't compound into a market-beating outcome. The down capture of 87.28%, while better than the US strategy's 113.65%, wasn't enough to compensate for persistent underperformance in recent years.

Growth of HKD 10,000 invested in Sector Mean Reversion (HKSE) vs S&P 500 from 2000 to 2025
Growth of HKD 10,000 invested in Sector Mean Reversion (HKSE) vs S&P 500 from 2000 to 2025

26 years. -1.51% annual gap vs the S&P 500.

Metric Portfolio S&P 500
CAGR 6.51% 8.02%
Excess CAGR -1.51%
Volatility 27.82%
Max Drawdown -54.26% -45.53%
Sharpe Ratio 0.126
Sortino Ratio 0.212
Calmar Ratio 0.120
Win Rate vs SPY 47.12%
Up Capture 98.04%
Down Capture 87.28%
Avg Stocks per Period 72.3
Cash Periods 7 of 104

The numbers tell a consistent story. The strategy captures 98% of SPY's upside but still loses 87.28% of its downside, that combination doesn't generate alpha over 26 years. The Sharpe of 0.126 is among the lowest in the study. The -54.26% max drawdown is worse than SPY's -45.53%. The win rate of 47.12% means the strategy trailed SPY in the majority of quarters.

Seven cash periods versus 3 for the US reflects the thinner sector universe in Hong Kong. When markets were badly dislocated, the strategy occasionally couldn't find 5 qualifying stocks across two sectors.


Year-by-Year Returns

Sector Mean Reversion vs S&P 500 annual returns for HKSE from 2000 to 2025
Sector Mean Reversion vs S&P 500 annual returns for HKSE from 2000 to 2025

Year Portfolio S&P 500 Excess
2000 0.00% (cash) -10.50% +10.50%
2001 -1.16% -9.17% +8.01%
2002 -5.62% -19.92% +14.30%
2003 +73.88% +24.12% +49.76%
2004 -8.49% +10.24% -18.73%
2005 +4.74% +7.17% -2.43%
2006 +25.36% +13.65% +11.71%
2007 +42.59% +4.40% +38.19%
2008 -53.09% -34.31% -18.78%
2009 +105.53% +24.73% +80.80%
2010 +11.98% +14.31% -2.33%
2011 -20.66% +2.46% -23.12%
2012 +19.94% +17.09% +2.85%
2013 +0.90% +27.77% -26.87%
2014 +0.45% +14.50% -14.05%
2015 -8.92% -0.12% -8.80%
2016 +16.45% +14.45% +2.00%
2017 +16.38% +21.64% -5.26%
2018 -19.61% -5.15% -14.46%
2019 +24.16% +32.31% -8.15%
2020 +5.11% +15.64% -10.53%
2021 +2.07% +31.26% -29.19%
2022 +5.11% -18.99% +24.10%
2023 -15.66% +26.00% -41.66%
2024 +6.90% +25.28% -18.38%
2025 +42.35% +17.88% +24.47%

Notable Periods

2003: SARS recovery, +73.88%

SARS crushed Hong Kong in early 2003. Retail, travel, and hospitality-linked sectors were decimated. By mid-2003, the epidemic was contained and the China-driven economic boom resumed. Beaten-down sectors that the strategy had loaded up on. Communication Services and Technology among them, recovered hard. The +49.76% excess over SPY was the single best year for HK's strategy until 2009.

2007: Pre-GFC China boom, +42.59%

The run-up to the Global Financial Crisis was a period of exceptional performance for Chinese and HK-listed companies. Mainland Chinese companies were listing in Hong Kong, and capital was flowing into the China growth story. The strategy's selected sectors caught the tail end of that boom: +42.59% vs SPY's +4.40%, a 38-point gap. In retrospect, the concentration of risk was building. 2008 would collect it.

2008-2009: The crash and the recovery

2008 was -53.09%, against SPY's -34.31%, an 18.78-point gap in the wrong direction. HK's heavy exposure to mainland Chinese financial and real estate companies amplified the GFC shock. Property stocks and banks that had surged in 2007 collapsed.

2009 then produced +105.53%, the second-highest single-year return in the entire 14-exchange study. Only China's 2007 result exceeded it. This is sector mean reversion working exactly as designed, the sectors most destroyed in 2008 recovered most violently in 2009. Communication Services, Technology, and Real Estate all contributed. The +80.80% excess over SPY in 2009 is remarkable in isolation.

The problem is sequencing. Losing 53% then gaining 106% gets you back to roughly where you started. The compounding math is unforgiving. The strategy needed the 2009 recovery just to recover 2008 losses, not to build on them.

2013-2014: Two years near zero

2013: +0.90%. 2014: +0.45%. Combined excess: -40.92% over two years. SPY returned +27.77% and +14.50% in those same years. HK's strategy was effectively in suspended animation while global equities rallied. The sectors selected. Real Estate and Communication Services, were facing structural headwinds: HK's real estate market was cooling under government cooling measures, and telecom competition was eroding margins. The sentiment signal didn't find tradeable undervaluation. It found genuine fundamental weakness.

2021-2023: Three years of persistent underperformance

This is the period that defines the modern HK experience. The Chinese regulatory crackdown on tech, education, and fintech companies (2021) hit HK-listed stocks directly. Evergrande's collapse and the subsequent Chinese real estate contagion (2021-2023) demolished Real Estate and related sectors. These weren't sentiment cycles. They were structural and regulatory shifts.

2021: +2.07% vs SPY +31.26% (-29.19% excess) 2022: +5.11% vs SPY -18.99% (+24.10% excess, one of the good years, as SPY fell hard and HK held up) 2023: -15.66% vs SPY +26.00% (-41.66% excess)

The -41.66% excess in 2023 is the largest single-year underperformance gap in the HK backtest and one of the largest in the entire study. The sectors the strategy was buying. Real Estate, Communication Services, didn't recover. They kept falling as the China real estate crisis worsened and regulatory uncertainty persisted.

2025: Sharp reversal, +42.35%

2025 delivered +42.35% vs SPY's +17.88%, a +24.47% excess. Sectors beaten down through 2023-2024 finally reverted. Whether this marks a regime change or a temporary bounce remains to be seen.


Backtest Methodology

Parameter Value
Signal 12-month trailing equal-weighted sector return
Selection Bottom 2 sectors each quarter
Universe HKSE, market cap > HKD $3B
Portfolio Equal weight all qualifying stocks in selected sectors
Rebalancing Quarterly (Jan, Apr, Jul, Oct)
Cash rule Hold cash if < 5 qualifying stocks
Transaction costs Size-tiered model
Data lag 45 days (prevents look-ahead bias)
Period 2000-2025 (104 quarterly periods)
Benchmark S&P 500 Total Return (SPY)

Limitations

Mainland China exposure creates non-cyclical risk. The biggest issue for sector mean reversion in Hong Kong is that a large portion of the HKSE universe is mainland Chinese companies (H-shares, Red Chips). Their underperformance often reflects regulatory decisions, political risk, and policy shifts, not the sentiment-driven cycles that this strategy is designed to exploit. The 2021-2023 period is the clearest example: Real Estate underperformance was driven by Evergrande and PRC policy, not temporary investor pessimism.

-54.26% max drawdown. Worse than SPY's -45.53% and worse than most other exchanges in the study. HK's combination of GFC sensitivity (2008) and China regulatory risk (2021-2023) produced a deeper drawdown profile than a diversified global portfolio.

87.28% down capture doesn't offset 98.04% up capture. You need the down capture to be substantially lower than the up capture to generate alpha. At 98% up and 87% down, the math produces slightly negative excess returns. Compare Korea (108% up, 37% down) to see what the asymmetry needs to look like.

Currency. Returns are in HKD. The HKD is pegged to the USD within a narrow band (7.75-7.85), so currency risk is minimal for USD-based investors, the currency itself isn't the issue.

Thin universe relative to US. At 72.3 stocks per quarter, the portfolio is diversified but concentrated enough that a few bad sectors can have a large impact. The 7 cash periods (vs 3 for the US) show that the smaller universe occasionally hits the 5-stock minimum rule.

Survivorship bias. Exchange membership uses current profiles, not historical. Companies that were delisted, acquired, or privatized aren't tracked.


Takeaway

Sector mean reversion on HKSE doesn't work over 26 years. The -1.51% annual underperformance reflects a structural problem: Hong Kong's sector underperformance cycles are often driven by China-specific regulatory and policy risk, not the temporary sentiment dislocations that fuel reversion in Western and even other Asian markets.

The headline numbers look dramatic, 2009 was +105.53%, 2003 was +73.88%, 2025 was +42.35%. But those standout years are matched by crashes (-53.09% in 2008) and multi-year stagnation (2013-2014, 2021-2023). The strategy generates extreme variance without generating excess return.

The 87.28% down capture is the one genuine positive. In bad markets, the strategy tends to fall less than SPY. But it's not low enough to compensate for the underperformance in good markets.

HK sits in an unusual position in this study: enough volatility to produce dramatic individual years, not enough structural mean reversion to compound into positive long-run alpha.


Part of a Series

This analysis is part of our Sector Mean Reversion global exchange comparison. We tested the same strategy across multiple exchanges: - Sector Mean Reversion on US Stocks (NYSE + NASDAQ + AMEX), 10.59% CAGR, +2.57% vs SPY - Sector Mean Reversion on Indian Stocks (BSE + NSE), 16.42% CAGR, +8.40% vs SPY - Sector Mean Reversion on Korean Stocks (KSC), 14.65% CAGR, best risk-adjusted of 14 exchanges - Sector Mean Reversion on Taiwanese Stocks (TAI + TWO), 14.61% CAGR - Sector Mean Reversion on Swedish Stocks (STO) - Sector Mean Reversion: Global Exchange Comparison


References

Moskowitz, T. J., & Grinblatt, M. (1999). Do industries explain momentum? Journal of Finance, 54(4), 1249-1290.


Run This Screen Yourself

Via web UI: Run the sector screen on Ceta Research Data Explorer. Paste the SQL above, set exchange to HKSE, and hit Run to see current sector rankings.

Via Python:

import requests, time

API_KEY = "your_api_key" # get one at cetaresearch.com
BASE = "https://tradingstudio.finance/api/v1"

query = """
WITH prices AS (
 SELECT e.symbol, e.adjClose, CAST(e.date AS DATE) AS trade_date
 FROM stock_eod e
 JOIN profile p ON e.symbol = p.symbol
 WHERE p.sector IS NOT NULL AND p.sector != ''
 AND p.marketCap > 3000000000
 AND p.exchange IN ('HKSE')
 AND CAST(e.date AS DATE) >= CURRENT_DATE - INTERVAL '400' DAY
 AND e.adjClose IS NOT NULL AND e.adjClose > 0
),
recent AS (
 SELECT symbol, adjClose AS recent_price
 FROM prices
 QUALIFY ROW_NUMBER() OVER (PARTITION BY symbol ORDER BY trade_date DESC) = 1
),
year_ago AS (
 SELECT symbol, adjClose AS old_price
 FROM prices
 WHERE trade_date <= CURRENT_DATE - INTERVAL '252' DAY
 QUALIFY ROW_NUMBER() OVER (PARTITION BY symbol ORDER BY trade_date DESC) = 1
),
stock_returns AS (
 SELECT r.symbol, pr.sector,
 (r.recent_price / ya.old_price - 1) * 100 AS return_12m
 FROM recent r
 JOIN year_ago ya ON r.symbol = ya.symbol
 JOIN profile pr ON r.symbol = pr.symbol
 WHERE ya.old_price > 0 AND r.recent_price > 0
 AND (r.recent_price / ya.old_price - 1) BETWEEN -0.99 AND 5.0
)
SELECT pr.sector,
 ROUND(AVG(sr.return_12m), 2) AS avg_return_12m_pct,
 COUNT(DISTINCT sr.symbol) AS n_stocks,
 ROW_NUMBER() OVER (ORDER BY AVG(sr.return_12m) ASC) AS rank_worst
FROM stock_returns sr
JOIN profile pr ON sr.symbol = pr.symbol
GROUP BY pr.sector
HAVING COUNT(DISTINCT sr.symbol) >= 5
ORDER BY avg_return_12m_pct ASC
"""

resp = requests.post(f"{BASE}/data-explorer/execute", headers={
 "X-API-Key": API_KEY, "Content-Type": "application/json"
}, json={
 "query": query,
 "options": {"format": "json", "limit": 100},
 "resources": {"memoryMb": 16384, "threads": 6}
})
task_id = resp.json()["taskId"]

while True:
 result = requests.get(f"{BASE}/tasks/data-query/{task_id}",
 headers={"X-API-Key": API_KEY}).json()
 if result["status"] in ("completed", "failed"):
 break
 time.sleep(2)

print("Sector rankings (worst to best, 12-month return):")
for r in result["result"]["rows"]:
 flag = " <-- BUY" if r["rank_worst"] <= 2 else ""
 print(f"#{r['rank_worst']} {r['sector']:30s} {r['avg_return_12m_pct']:+.1f}% ({r['n_stocks']} stocks){flag}")

Get your API key at cetaresearch.com. The full backtest code (Python + DuckDB) is on GitHub.


Part of a Series: US | Global | Global | US | UK | Thailand | Taiwan | Taiwan

Data: Ceta Research, FMP financial data warehouse. Universe: HKSE, market cap > HKD $3B. Quarterly rebalance, equal weight, 2000-2025. Returns in HKD. Past performance doesn't guarantee future results.

Read more