H5 — M-Signal Portfolio vs SPY Buy-and-Hold ⚙ Scenario setup

M signals backtest · sector ETFs only (excl. QQQ, DIA, IWM) · n=100 signals · Jan 2015-Jun 2026 · entry T0+1 close · in-sample · generated 2026-07-06

Base — SPY buy and hold

$100k in SPY from 02 Jan 2015

$100,000 deployed into SPY on the first available OHLC date. Held throughout with no further action. Benchmark for the M-Signal Portfolio.

M-Signal Portfolio

SPY + sector rotation on M signals

Start in SPY. On each M signal (sector ETFs: XLB, XLC, XLE, XLF, XLI, XLK, XLP, XLRE, XLU, XLV, XLY): commit 10% of current total portfolio value (SPY balance + all open positions) to that ETF, sell SPY to fund it, enter at T0+1 close. At inception ($100k start, no open positions) that's $10,000. Exit after 38 trading days, re-enter SPY. Skip if SPY balance < position size.

Exit rule
Broad-market early exit: exit sector ETF at T0+1 close of the next SPY/QQQ/DIA/IWM M Signal that falls within the holding window (26 trigger dates)
Standard

Hold for the full slider period

Each sector ETF position runs for exactly 38 trading days, then exits back to SPY at close. No early exits. This is the baseline M-Signal Portfolio behaviour.

Broad-market early exit

Exit early on broad-market M Signal

At entry, each sector ETF position is assigned the next broad-market M Signal (SPY, QQQ, DIA, or IWM) that falls within its holding window as an early-exit date. If no broad signal falls within the window, it holds for the full period. Each position is evaluated independently — concurrent positions may exit on different dates. 26 trigger dates.

No distinction

Enter all M signals + early exit

Adds QQQ, DIA, and IWM as tradeable positions alongside the sector ETFs. Each position still uses broad-market early exit: if a SPY/QQQ/DIA/IWM M Signal fires within the holding window, the position exits early at that signal's T0+1 close. SPY M signals are not entered (already in SPY).

Profit-Target Exit (v7)

Jensen's Alpha (vs SPY)

CAGR − rf − β(SPY CAGR − rf)

Beta (vs SPY)

market exposure

Sharpe Ratio

vs base Sharpe —

Risk-free rate
%
US T-bill default
⚠️ Minimising Beta may favour low-allocation combos with sparse signal. Optimal combo may not be meaningful. ×
Best risk-adjusted (Sharpe-optimal)
Best raw alpha (Max Jensen's α)
Holding period (trading days)🔒 objective locked
trading days median alpha-peak (H4)
Allocation per signal🔒 objective locked
% ≈$10,000 at $100k inception

M-Signal final value

total return

Base final value

total return

CAGR (M-Signal)

base CAGR —

Max drawdown

base MDD —

Trades / skipped

— skipped

Portfolio equity ($)

M-Signal Portfolio Base (SPY buy-hold)

Equity curve snaps to nearest 10-day / 5% allocation bucket. Stats reflect exact slider values.

Jensen's Alpha by holding period

Drag sliders to explore.
Entry: T0+1 close. Same-day signals processed in order; skipped if SPY balance < position size.
Transaction Log
Entry dateTickerEntry pricePortfolio value Position sizeUnitsExit dateExit price P&L ($)P&L (%)
Time-Slice Portfolio Breakdown
Date:
PositionEntry dateEntry price Mark priceCurrent valueUnrealized P&L