๐Ÿ’ผ MarketFM Tactical โ€” Regime-Aware Multi-Asset Portfolio

A custom AI stock-selection model paired with a trend overlay that beats the S&P 500 on return and risk. In market uptrends it holds a large-cap momentum + quality stock portfolio; in downtrends it shifts to a defensive blend of stocks + bonds + gold (60% / 20% / 20%). Backtested 2005โ€“26 (net of cost): ~14%/yr vs the S&P 500's ~11%, Sharpe 0.88 vs 0.73, and a โˆ’35% worst drawdown vs the index's โˆ’49%.

What makes it different

  • ๐Ÿง  AI selection โ€” momentum+quality leaders from the ~1,000 largest US stocks (for liquidity), scored by a model trained on a ~11,800-name, survivorship-free, point-in-time panel.
  • ๐Ÿ”€ Regime-aware โ€” a 10-week / 40-week trend crossover flips between offense and defense, with fewer false signals than a single moving average.
  • ๐Ÿ›ก๏ธ Multi-asset defense โ€” keeps 60% in stocks and adds 20% bonds (AGG) + 20% gold (GLD), which tend to rise when stocks fall.
  • ๐Ÿ“‰ Lower drawdown than the index, every stock capped at 10%, fully tradeable (liquid stocks + 2 ETFs).

Recommended holdings

The signal. Each week we compare the S&P 500's 10-week average to its 40-week average. 10w above 40w = uptrend (Offense); 10w below 40w = downtrend (Defense). Using two moving averages (a crossover) instead of price-vs-one-average roughly halves the false signals. There's no fixed schedule โ€” the market decides when the trend turns.

Offense (uptrends). Hold a large-cap momentum + quality portfolio โ€” 50 names, โ‰ค5 per sector, cap-weighted with a 10% single-name cap. The 50 are picked from the ~1,000 largest US stocks (a deliberate large-cap focus โ€” it's what lets the strategy keep pace with the cap-weighted index), ranked by the model's momentum + quality factors. (The underlying model is trained on the full ~11,800-name universe โ€” see below โ€” but the tradeable sleeve selects only from the large-cap slice.)

Defense (downtrends). Cut stock exposure to 60% and rotate 20% into bonds (AGG) and 20% into gold (GLD). Unlike low-volatility stocks (which still fall in crashes), bonds and gold tend to rise when equities sell off โ€” so the fund holds up instead of getting passed by the index in downturns.

Why it beats the index. Momentum captures the up-markets; the multi-asset defense limits the down-markets; the trend filter sidesteps the worst of major crashes โ€” the documented trend-following / tactical premium.

Caveats (read these). (1) The trend filter is slow โ€” sudden crashes (e.g. COVID-2020) can still hit it before it switches. (2) Choppy, trendless markets cause some switching cost. (3) Results are backtested on one history (2005โ€“26); trend-following has decades of academic support, but past performance โ‰  future. This is a research tool, not investment advice.

The data. A survivorship-free, point-in-time panel of ~11,800 US stocks โ€” 4.1 million stock-weeks, 1998โ†’today โ€” built so the model only ever sees what was knowable on each date (no hindsight; delisted/bankrupt companies kept in). Every stock-week carries 21 features, cross-sectionally rank-normalized within sector: multi-horizon returns, 12-1 momentum, volatility, distance-from-52w-high; plus point-in-time fundamentals โ€” FCF / earnings / sales yield, ROE, ROA, margins, EV/EBITDA, leverage, revenue growth.

The architecture. A gradient-boosted decision-tree ensemble (HistGradientBoosting) that learns the non-linear mapping from those 21 factors to each stock's 12-month forward, sector-neutral excess-return rank. Trees were a deliberate choice: in head-to-head tests a self-supervised transformer only tied the tree model (within noise) while being far heavier โ€” so the simpler, faster, interpretable GBT ships.

Validation. Walk-forward over 5 folds with a 52-week embargo (a 12-month label can never leak into training), net of cost. Rank-IC โ‰ˆ 0.13; using the full wide-universe breadth (~11,800 names) beat a top-1000 cut in every fold.

Model โ†’ portfolio. The Tactical strategy harvests the model's most robust signal โ€” large-cap momentum + quality โ€” for the 50-stock offense sleeve; the 10/40 trend overlay and the bonds/gold defense then wrap risk management around it.

The 21 factors the model sees

Every stock is scored each week on 21 point-in-time factors, each rank-normalized within its sector โ€” so a stock is measured against its peers, not on raw values. They span the well-established equity-factor families:

Family Factors
๐Ÿ“ˆ Momentum / trend (9) 1- / 4- / 13- / 26- / 52-week returns ยท 12-1 momentum ยท distance from 52-week high ยท price vs 10- & 40-week moving averages
๐Ÿ“‰ Low volatility (1) 13-week return volatility
๐Ÿ’ฐ Value (5) FCF yield ยท earnings yield ยท sales yield ยท book-to-price ยท EV/EBITDA
โญ Quality / profitability (4) ROE ยท ROA ยท net margin ยท gross margin
๐Ÿฆ Leverage / growth (2) debt-to-equity ยท YoY revenue growth

They were chosen by design from the factor literature โ€” not data-mined โ€” which is what keeps the model robust rather than overfit to the backtest.

Features we explored but did not add

To check the 21 aren't missing anything, we tested 18 additional fundamentals: earnings quality (accruals), gross & cash-based profitability, asset growth, buyback / shareholder yield, ROIC, EBIT yield, net-debt/EBITDA, interest coverage, current ratio, EPS growth, operating & EBITDA margins, asset turnover, payout, dividend yield.

Result: no improvement. A model on all 39 scored the same as on the 21 (rank-IC 0.130 โ†’ 0.129). Several new signals had respectable standalone power but added nothing incremental โ€” they were redundant, correlated with quality/value factors already present. The 21-factor set is effectively complete. (Auto-re-checked every 6 months โ€” see the Model-review section.)

Alternative data was tested too โ€” insider transactions (SF2), institutional / 13F flows and 'super-investor' holdings (SF3), and news sentiment (2022+). Insider buying is not predictive (mildly negative); the super-investor thesis fails significance; institutional holder-count shows a small signal (IC โ‰ˆ +0.04) that likely proxies size; news sentiment shows only a small, single-regime signal (IC โ‰ˆ +0.02, 2022โ€“2026 โ€” too short to validate across regimes). None clears the bar to enter the model. News is therefore used as live context (the ๐ŸŸข/๐ŸŸก/๐Ÿ”ด indicator), not as a return-prediction factor.

How the model ranks โ€” cross-sectional, not price prediction

The model does not forecast prices; a single stock's return is mostly idiosyncratic noise. Instead it ranks the universe: each week a gradient-boosted tree maps the 21 factors to each stock's predicted 12-month forward, sector-neutral excess-return rank. Skill is measured by rank-IC โ€” the correlation between the predicted ordering and what actually happened โ€” โ‰ˆ0.13 out-of-sample (walk-forward, 5 folds, 52-week embargo). A small but real per-name edge that becomes usable across a diversified basket.

From ~11,800 stocks to the 50 you hold

The tradeable strategy harvests the model's most regime-robust signal โ€” momentum + quality โ€” through a transparent funnel:

1. Universe โ€” ~11,800 survivorship-free, point-in-time US names. 2. Liquidity screen โ€” keep the top 1,000 by market cap (large-cap focus; it's what keeps pace with the cap-weighted index). 3. Score โ€” rank by 12-1 momentum + ROE (both sector-rank-normalized), the two most regime-robust factors. 4. Select โ€” take the top 50, capped at โ‰ค5 per sector. 5. Weight โ€” market-cap-weighted, each name clipped at 10% with the excess redistributed. 6. Regime overlay โ€” offense: hold the 50 at 100%; defense: scale to 60% and add 20% AGG + 20% GLD.

The full 21-factor model is used in research to identify the robust signal; the live sleeve applies momentum + quality directly โ€” simpler and more transparent than betting the book on every model prediction. Backtested, net of cost โ€” not investment advice.

We didn't assume gradient-boosted trees are best โ€” we ran two transformer architectures against the GBT, each on the same data, walk-forward and net of cost:

Test Transformer rank-IC GBT rank-IC Result
Wide universe SSL transformer (masked-feature, factor sequences) 0.108 0.102 tie (within noise)
Top-3000, raw daily PatchTST (patches of raw price + volume) 0.064 0.078 GBT predicts better

Verdict โ€” no transformer shows a reliable edge. On rank-IC (the robust metric, averaged over hundreds of weekly cross-sections) the GBT is tied-or-ahead; net-return differences flip from fold to fold (single-backtest luck). Meanwhile the GBT runs on CPU at ~1/20th the cost of a weekly GPU job, is fully interpretable (readable factor importances), and resists overfitting on noisy, non-stationary markets. When approaches tie, you ship the simpler, cheaper, more robust one โ€” so the GBT is the deployed model. An evidence-based choice, not a default. (A patch transformer on raw daily data was the most promising shot โ€” and it still didn't reliably win.)