Investors who want active exposure to mid-cap equities often face a trade-off: mid-caps can offer higher growth and inefficiencies than large caps, but they also carry greater dispersion, liquidity constraints and episodic volatility. This guide walks you—step by step—through designing, implementing and monitoring a rules-based mid-cap portfolio that blends momentum and quality. The goal: a repeatable, measurable strategy you can run in a brokerage account or replicate with a spreadsheet or simple backtesting tool.
Why mid‑cap momentum + quality?
Combining momentum (price trends) with quality (fundamentals) aims to capture persistent price continuation while avoiding value traps and highly levered names. Momentum helps with timing; quality helps with downside control and long-term earnings durability. For mid-caps—typically defined below—you can exploit idiosyncratic mispricings while still finding adequate liquidity for small-to-medium-sized positions.
Definitions and scope
- Mid-cap filter: market capitalization between $2 billion and $15 billion (adjust to your brokerage universe).
- Momentum horizon: 6- to 12-month total return, typically excluding the most recent month to reduce short-term reversal noise.
- Quality metrics: ROIC, net margin stability, and leverage ratios (e.g., Net Debt / EBITDA).
- Target portfolio size: 50–100 stocks (balance diversification with edge).
10-step implementation plan
Step 1 — Define the investable universe
Download a broad US equity listing (exchange tickers or screener) and apply:
- Market cap between $2B and $15B.
- Average daily dollar volume (ADTV) > $2M (helps keep execution cost reasonable).
- Exclude ADRs or small foreign listings if you prefer simpler tax/timing.
Step 2 — Gather data and set timeframes
Required data fields:
- Daily or monthly total returns for momentum calculation.
- Fundamental fields: ROIC (or operating income / average invested capital), revenue year-over-year growth, Net Debt / EBITDA, and trailing operating margin.
- Float and shares outstanding for liquidity and position sizing.
Use reliable data sources: your brokerage API, commercial vendors, or free sources (Yahoo Finance, SEC filings) with the caveat of survivorship and look-ahead biases. Keep the momentum horizon to 6–12 months; we recommend 12-month total return excluding the most recent month (the 12,1 momentum) as a starting point.
Step 3 — Screen for basic quality and liquidity
Remove names that fail simple quality or liquidity thresholds:
- ROIC > 8% (or sector-adjusted ROIC above median).
- Net Debt / EBITDA < 3.0 (adjust if capital-intensive sectors like REITs or utilities are present).
- Revenue YoY growth > 5% (filter out stagnating companies).
- ADTV > $2M or float > 30M shares.
This step cuts obvious weak credits and thinly traded names where slippage would be large.
Step 4 — Score momentum and quality
Normalize and combine metrics to create a composite score.
- Compute z-scores for each metric across the screened universe: z_mom, z_ROIC, z_margin, z_leverage (negate leverage so higher is better).
- Build a composite score: Score = 0.65*z_mom + 0.35*(0.6*z_ROIC + 0.4*z_margin)
Why these weights? Momentum should dominate for return timing, while a quality sub-score reduces binary momentum trades on fragile names. Adjust weights and test sensitivity in backtests.
Step 5 — Rank and select the portfolio
Rank by composite scores and pick the top N names. Practical options:
- Top 50 for concentrated exposure.
- Top 75–100 for smoother drawdowns.
Ensure sector diversification by capping any single sector at 25% and any industry at 15% at rebalance.
Step 6 — Position sizing and risk limits
Two pragmatic sizing methods:
- Equal-weight: each position = 1 / N of portfolio, with a max position cap (e.g., 3–5%). Simple and effective.
- Volatility-scaling: target a portfolio volatility (e.g., 10% annual). Size each position inversely to its 90-day historical volatility. This reduces size in unstable names.
Implement maximum single-stock exposures (e.g., max 5%) and aggregate cap on top 10 positions (e.g., 40%).
Step 7 — Execution and transaction-cost assumptions
Set realistic trading assumptions: round-trip commission & slippage of 0.2–0.5% for liquid mid-caps is a conservative baseline. For small accounts, use limit orders and staggered execution to reduce market impact:
- Scale into positions over 1–3 days if size > 1% of ADTV.
- Rebalance with volume-based execution: only trade up to 10–20% of ADTV per day per name.
Step 8 — Rebalance schedule and turnover controls
Trade-off between responsiveness and costs:
- Quarterly rebalance is a reasonable default for momentum strategies (keeps turnover moderate).
- Apply turnover control: only replace holdings if the new candidate’s score exceeds the current holding by a threshold (e.g., z-score +0.5) or if a holding falls below the 70th percentile.
- Use staggered rebalancing windows to prevent market-timing concentrated trades on a single rebalance day.
Step 9 — Risk management and stop rules
Rules-based risk controls keep discipline:
- Maximum drawdown guardrail: if portfolio drawdown > 20% from peak, trim positions back to defensive holdings or pause new buys for one quarter.
- Single-stock stop: optional 20–30% trailing stop, but be aware of whipsawing momentum. Consider volatility-adjusted stops or replace hard stops with disciplined re-evaluation at rebalance.
- Event exceptions: suspend trading around known corporate events (earnings, major M&A) if you want to avoid headline risk.
Step 10 — Backtest, validate, and monitor
Run systematic backtests with attention to biases:
- Use survivorship-free historical data.
- Avoid look-ahead bias: only use fundamentals available at rebalance dates.
- Account for realistic execution costs and delays.
- Evaluate metrics: CAGR, volatility, Sharpe, Sortino, max drawdown, and annual turnover.
- Perform out-of-sample testing and simple walk-forward validation: optimize on a training window and test on a subsequent period, then roll forward.
Monitor live performance monthly and compare to benchmarks (Russell Midcap, Russell 2000, or a custom mid-cap blend). Track attribution: how much of performance is momentum vs quality?
Example: ranking mechanics (calculator-friendly)
Here is a compact pseudocode you can implement in Excel, Python or your backtesting platform:
For each rebalance date:
1. Universe = stocks with 2B < market cap < 15B and ADTV > $2M
2. For each stock:
- mom = 12m total return excluding last month
- ROIC, margin, NetDebt/EBITDA from last reported quarter
3. Compute z-scores across universe for mom, ROIC, margin, -NetDebt/EBITDA
4. quality_z = 0.6*ROIC_z + 0.4*margin_z
5. composite = 0.65*mom_z + 0.35*quality_z
6. Rank by composite, apply sector caps, select top N
7. Size positions equally or volatility-scale
8. Trade subject to ADTV limits and slippage model
Practical considerations and common pitfalls
- Data quality: fundamentals can be restated. Use trailing 12-month or quarter-delayed inputs to avoid look-ahead.
- Sector biases: momentum often skews to high-growth sectors. Enforce sector caps or include sector-neutral z-scores if you want fair representation.
- Overfitting: keep the model simple. Resist complex hyperparameter searches without out-of-sample validation.
- Tax efficiency: periodic rebalancing generates realized gains. Implement this strategy in tax-advantaged accounts when possible, and consider tax-loss harvesting in taxable accounts.
- Execution for small accounts: fractional shares or broker-supported batching can help reduce per-trade costs.
How to iterate and improve
Once live:
- Track factor exposures and monthly contribution to returns (momentum vs quality).
- Experiment with alternative quality metrics—free cash flow yield, earnings variability, or accruals—and measure incremental alpha after costs.
- Adjust momentum horizon: some mid-cap names show stronger 6-month signals; others benefit from 12-month horizons. Compare both.
- Consider an overlay: a lightweight defensive sleeve (short-duration bonds or cash) that increases after market stress triggers.
Final checklist before going live
- Confirm data feeds are survivorship-free and time-stamped correctly.
- Set realistic slippage and commission assumptions for your account size.
- Decide on rebalancing cadence and execution limits tied to ADTV.
- Document rules in a living strategy manual (screens, weights, stop rules).
- Start small: pilot with 10–20% of intended capital to validate live execution.
Building a rules-based mid-cap momentum–quality portfolio is a practical way to combine systematic timing with company-level durability. The framework above gives you a repeatable process—screening, scoring, sizing, and risk management—that you can tailor to your risk tolerance, account size and tax status. Start with conservative assumptions, backtest responsibly, and iterate with disciplined measurement.
If you want, I can convert these steps into an Excel template, Python pseudocode for common backtesting libraries, or a checklist tailored to a specific brokerage or account size.