Quantitative Sector Rotation

Quantitative sector rotation allocates capital across industries using systematic signals rather than a discretionary macro narrative. The intuition is straightforward: business cycles, inflation shocks, rates, and earnings revisions do not affect every sector equally. The hard part is separating a persistent relative-return signal from noisy macro storytelling and factor exposures already embedded in sector indexes.

What a sector signal must explain

Sector returns are mixtures of common market beta, style exposures, constituent momentum, and industry-specific shocks. A technology overweight may be a growth bet; an energy overweight may be a commodity bet. Start with relative returns versus a market benchmark and report factor-adjusted returns alongside raw returns.

Signal familyExamplePrimary risk
Relative momentum6- or 12-month sector returnTrend reversal
Earnings revisionsUp/down estimate breadthVendor revisions lag
ValuationSector EV/EBITDA relative historyValue traps
Macro sensitivityInflation/growth/rates betasRegime instability
FlowsETF creation/redemptionCrowding and short horizon

Momentum is often the most robust starting point. It is the sector-level cousin of cross-sectional momentum, but concentration means only a handful of positions drive the result.

import pandas as pd

def sector_momentum_weights(prices: pd.DataFrame, lookback=126, skip=21):
    """Long top ranks, short bottom ranks; inputs are total-return series."""
    score = prices.pct_change(lookback).shift(skip)
    ranks = score.rank(axis=1, pct=True)
    raw = (ranks - 0.5)
    return raw.div(raw.abs().sum(axis=1), axis=0)

The skip month reduces mechanical short-term reversal, but it must be validated across regions and pre-specified horizons. Optimize neither lookback nor number of sectors on a single economic cycle.

Build macro signals as conditional tilts

Macro variables are more useful as a conditioning layer than as a standalone forecasting machine. For example, rising inflation surprises may tilt a momentum portfolio toward energy and materials, while a deteriorating growth signal can reduce cyclicals. Estimate these relations on rolling data and shrink coefficients heavily; sector composition and policy regimes change.

expected sector return = momentum
                       + beta_growth × growth_surprise
                       + beta_inflation × inflation_surprise
                       - valuation_penalty

Use release timestamps and vintage data. Revised GDP or inflation data are unavailable at the original decision date, a particularly common macro-backtest error.

Portfolio construction

Long-only allocators can tilt benchmark weights subject to active-risk and turnover budgets. Market-neutral allocators can long strong sectors and short weak sectors, but must control beta and style exposures. Equal weight is rarely equal risk: volatile, concentrated sectors need smaller allocations.

ConstraintPurpose
Active sector capAvoid a single forecast dominating
Volatility scalingEqualize risk contribution
Beta and style boundsPrevent disguised factor bets
Turnover penaltyProtect net returns
Liquidity capacityKeeps ETF/future trades executable

For long-only mandates, compare against a sector-neutral benchmark. For long-short books, report both dollar neutrality and predicted beta neutrality. A defensive-sector long can still have substantial negative beta.

Research traps

Sector classifications change, ETF histories have inception bias, and today’s sector definitions are not historical truth. Use historical constituents where possible. Total returns must include dividends; otherwise high-yield sectors appear artificially weak. Avoid selecting signals after observing the same episode—such as choosing energy features because they explained one inflation surge.

Also account for tax, spreads, and rebalance timing. Monthly rotation can be cheap in liquid ETFs; weekly rotation often converts a slow factor into turnover. Apply the discipline of volatility targeting and drawdown control when macro uncertainty rises rather than relying on a binary “risk-on/risk-off” label.

Evaluation that survives a benchmark

Evaluate a rotation model against capitalization-weighted, equal-weight, and simple momentum baselines. This separates selection skill from the mechanical benefit of deconcentrating a benchmark. Attribute returns to allocation, interaction, and trading costs; report turnover-adjusted information ratio, maximum active drawdown, and exposure to the largest constituents. A model that outperforms only by avoiding one expensive mega-cap complex is less portable than one that works across regions and classifications.

Walk forward through fixed decision dates. Freeze lookbacks, sector caps, and macro transforms before the out-of-sample period. Sector narratives make accidental correlations sound persuasive, so parameter governance is part of the investment process.

Key takeaways

  • Sector rotation is a relative-return strategy, not merely macro prediction.
  • Momentum, revisions, valuation, and macro sensitivity should be tested separately.
  • Use vintage macro releases and historical sector classifications.
  • Neutralize market and style exposures before claiming industry alpha.
  • Constrain active risk and turnover; sector concentration makes forecasts fragile.
#sector rotation #momentum #macro #ETFs #quantitative strategies