Sharpe Ratio
Ann. Return
Max Drawdown
Avg Positions
Last Rebalance
Cumulative Return
Loading backtest data…
Current Positions
Loading weights…
Optimisation
Per-instrument Markowitz
Weights optimised directly on (ticker × strategy) pairs — not strategy-level aggregates. Ledoit-Wolf covariance shrinkage. Bayes-Stein expected return shrinkage (MV portfolios).
Rolling estimation
60-month window · monthly rebalance
Pairs require ≥ 36 months of history and rolling Sharpe > 0.5 to enter the universe. Covariance estimated on a 60-month lookback. First rebalance ~2010.
Constraints
Long-only · 7+ positions
Max 20% per (ticker, strategy) pair. Max 30% total per strategy group. Minimum 7 positions per rebalance. Quality filter relaxed when universe is small.
Monthly Growth Monthly · Defensive Monthly

Uses the 8 monthly-rebalancing strategies: TSMOM, LOW VOL, MA CROSS, XS MOM, RISK PAR, BAB, RISK MOM, MULTI TREND. Every position is held for a full calendar month — no intra-month changes.

Designed for investors who want to open their broker once a month, execute a short list of trades, and leave the portfolio alone until the next rebalance email arrives.

  • 1× monthly email with full rebalance allocation
  • List of positions to open, hold, or close
  • No action required between rebalances
  • Typical 10–20 positions, held all month
Active Growth Active · Defensive Active

Uses all 14 strategies including daily and weekly signals: BREAKOUT, TOM, GAP FILL, W52HIGH, MEAN REV VOL. Monthly rebalance sets the capital allocation per line; sub-monthly signals control when that capital is in the market within the month.

Designed for investors comfortable acting on signals as they arrive — unlocking higher Sharpe from short-term momentum strategies while keeping structure from monthly optimisation.

  • 1× monthly email: full rebalance + new allocation
  • Immediate email on every intra-month signal change
  • Idle allocation sits in cash / money market between signals
  • Typical 15–30 lines, with daily/weekly positions cycling