2026-04-22 · ~12 min read

SQTS v4 · Industry Rotation with Combo-Equity Scoring

A monthly sector-rotation baseline — compressing prosperity, momentum, and crowding into a single composite score.

#SQTS-v4#rotation#a-share#monthly#baseline
47d
live days
9.1%
cagr (oos)
−6.2%
max dd
1.05
sharpe
0.57%
te (paper)

TL;DR

SQTS v4 is the fourth generation of my quantitative research framework. Phase 1, baseline B, is this strategy: 50 stocks, monthly-rebalanced, selected via an industry-rotation layer. Every month I score 30 SWS Level-1 industries on three factors (prosperity, momentum, crowding), pick the top few, then equal-weight 50 stocks within them. Paper trading has run for 47 days. NAV +3.59%, benchmark (HS300) +2.44%, TE 0.57%, NAV correlation 0.999.

It isn't some earth-shattering alpha. It's a baseline I can read, explain, and sit through a drawdown with. Every more complex variant I build later will have to justify itself against this thing first.


Why start with something this simple

My first law of quantitative research, learned the hard way:

A 7% annualized that you can reliably reproduce will always beat a 15% that only exists in a notebook.

Industry rotation is the oldest, least sexy, and most robust of the monthly A-share strategy flavors. It sidesteps two of the retail quant's graveyards:

  • Idiosyncratic single-stock risk. 50 stocks spread across several industries; a single blow-up is diluted to 2%.
  • Execution cost from high-frequency signals. Monthly rebalance, manageable turnover, honest 23bp round-trip assumption.

Together these two properties mean: even if the alpha is thin, it's psychologically easy to hold. For a new system in its first 12 months, this matters more than two extra points of CAGR.

The Combo-Equity Score — three factors

I assign each SWS Level-1 industry a composite score combo_eq between 0 and 1, equal-weighted across three factors:

1. Prosperity

Recent 3-6 month trend in EPS revisions and the percentile rank of forward consensus growth. Core idea: analysts aren't prophets, but they're the first people to see data change. If an industry keeps getting its earnings revised up for several months, something real is usually inflecting — it's rarely just noise.

2. Momentum

A robust weighted combination of 1M / 3M / 6M log returns on the industry index. Not a single lookback, three windows. This is the most "boring" factor and also the most effective — trend is just the vote count for whatever narrative the market is currently subscribing to. Ignoring momentum means fighting the weight of money on the other side. In A-shares, that's expensive.

3. Crowding

Percentile rank of turnover and trading volume ratio over the trailing 12 months. This is a penalty term: the higher the percentile, the more we subtract. Its job is to pull you back a step when prosperity and momentum are both screaming at the same hot industry. New energy in 2021, AI in 2023, low-altitude economy in 2025 — three times I almost chased, and it was this factor that held me back.


Backtest setup

ItemConfiguration
In-sample (IS)2016-01 through 2019-12
Out-of-sample (OOS)2020-01 through 2026-04
Trailing 4Y sample2022-01 through 2026-04
Rebalance frequencyFirst trading day of each month
Position count50 stocks (equal-weight within industries × equal-weight industries)
Trading cost23bp per side (commission + stamp duty + a slippage buffer)
BenchmarkCSI 300 Total Return

Deliberately conservative choices:

  • 23bp per side is harsher than broker default — retail accounts eat more slippage than institutional datasets suggest.
  • IS intentionally ends at 2019-12. The 2020-2024 period saw at least one full structural reversal for every factor, reserved for honest OOS testing.
  • Trailing 4Y is tracked separately — post-2022 A-share rotation dynamics differ noticeably from 2016-2020. I want to know whether the strategy still works in today's market.

Paper trading results

Running in paper trading since early 2026-02. After 47 trading days:

MetricStrategyBenchmark (HS300)
Cumulative return+3.59%+2.44%
Active return+1.15pp
Tracking error (annualized)0.57%
NAV correlation0.999
Max drawdown−0.8%−1.9%

The TE of 0.57% is suspiciously small — small enough that I'm not sure this is really an "industry rotation" strategy anymore, rather than a "slightly tilted index enhancement." I'm still thinking about this. If true, the alpha source is mostly spillover from prosperity in single-stock selection, not industry allocation itself. Next version I'll run a Brinson-Fachler attribution to separate "industry allocation" from "within-industry selection."

Known limitations

  • 47 days is statistically meaningless. +1.15pp could be pure luck. I need at least one full bull-bear cycle (3-5 years) before claiming anything is "validated."
  • Monthly is slow for A-shares. Rotation cycles sometimes run in weeks. Slow rebalance means arriving late to an industry's launch phase.
  • Prosperity depends on analyst consensus data, which is thin for some smaller / thematic industries (no coverage = unreliable score).
  • Crowding is the factor I'm least confident in. Currently just turnover + volume percentile. Doesn't yet include margin balance, northbound flows, ETF creation/redemption — finer-grained crowding signals.

What I want to do in the next few months

  1. Finish the TE attribution — find out if alpha is industry allocation or within-industry selection.
  2. Enrich the crowding factor — at minimum add margin balance percentile and northbound flow.
  3. Try a semi-monthly version (rebalance on the 1st and 15th trading day) — see the turnover / alpha tradeoff.
  4. When I hit 90 days of paper trading, write a full "first quarter" retrospective.

This post is written for the me of six months from now — the one trying to remember why past-me thought this baseline was worth betting on. If you've read this far, you also enjoy "doing one slow thing carefully." Find me on github and let's talk.

← back to home — czapple —