Strategies
Browse our full list of strategies. If a strategy is clickable you can freely watch the backtest video. If it isn’t, and it’s one you want, simply request access to it using the link provided within each strategy overview.
Unless a strategy states otherwise, Backtested Strategies (BTS) uses the standardized settings documented on the Methodology page.
Featured
- January Confirmation Indicator
- 10-Month SMA Timing Model
- Connors RSI(2) Mean Reversion
- Turn of the Month Effect
- Golden Cross and Death Cross
Index
- 10-Month SMA Timing Model
- 52-Week High Momentum
- Advance–Decline Line Breadth Confirmation Filter
- Amihud Illiquidity Long–Short Sort
- Betting Against Beta
- Bollinger %B Mean Reversion
- Bollinger Bands Volatility Breakout
- Cointegration Pairs Trading
- Connors RSI(2) Mean Reversion
- Connors Double 7s
- Constant Proportion Portfolio Insurance
- Day of the Week Effect
- Distance Pairs Trading
- Dividend Aristocrats
- Donchian Channel Breakout
- Dual Momentum
- Elder Triple Screen System
- ETF Pairs Trading
- Global Tactical Asset Allocation
- Golden Cross and Death Cross
- Guppy Multiple Moving Average
- Halloween Effect
- Ichimoku Cloud
- Idiosyncratic Volatility Anomaly
- Industry Momentum
- January Confirmation Indicator
- Kaufman Adaptive Moving Average
- Keltner Channel Breakout
- Larry Williams Volatility Breakout
- Leveraged ETF Volatility Decay
- Long-Term Reversal
- Low Volatility / Minimum Variance
- Maximum Daily Return Effect / Lottery Demand
- Moving Average Crossover
- N-Day Low Pullback
- Narrow Range 7 Breakout
- Opening Gap Fade
- Opening Range Breakout
- Overnight Drift
- Parabolic SAR
- Percent of Stocks Above Moving Average
- Pivot Point Breakout
- Pre-Holiday Effect
- Presidential Cycle Effect
- Residual Momentum
- Risk Parity
- Santa Claus Rally
- Sector ETF Pairs Trading
- Short Volatility via VIX ETPs
- Short-Term Reversal
- SuperTrend
- Three Down Days Mean Reversion
- Time-Series Momentum
- Turn of the Month Effect
- Turn of the Quarter Effect
- Turn of the Year Effect
- VIX Regime Filter
- Volatility Targeting
- Volatility-Adjusted Momentum
- Winners Minus Losers Momentum
10-Month SMA Timing Model
Overview:
A slow, monthly trend filter that holds SPY when the month-end close is above its 10-month SMA and moves to cash when it falls below.
Rules:
- On the last trading day of each calendar month, compute the 10-month SMA from the most recent 10 month-end closes (including the current month-end close).
- Enter long SPY when the month-end close is strictly above the 10-month SMA.
- Exit to cash when the month-end close is strictly below the 10-month SMA.
- If the month-end close equals the 10-month SMA, maintain the prior position. Until the 10-month SMA is defined, the strategy remains in cash. Execute entries and exits at the month-end close.
Universe: SPY
Category: Trend / Time-Series Momentum / Market-Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate
Holding Period: Monthly (signals at month-end)
Assumptions: BTS defaults (see Methodology)
Overrides: No T-bill proxy
Credit: Mebane Faber (A Quantitative Approach to Tactical Asset Allocation)
52-Week High Momentum
Overview:
A monthly cross-sectional momentum factor that ranks stocks by nearness to their 52-week highs, going long the strongest and short the weakest in a dollar-neutral long–short portfolio with overlapping 6-month cohorts.
Rules:
- At each month-end, compute each stock’s trailing 52-week high using daily highs over the prior 252 trading days.
- Compute nearness-to-high = month-end close / (52-week high).
- Rank stocks by nearness-to-high and form a dollar-neutral long–short portfolio with 100% long / 100% short gross exposure: enter long the top 30% and enter short the bottom 30%, equal-weighted within each leg.
- Use six overlapping 6-month cohorts. Allocate total long and total short notional equally across active cohorts (1/6 each at steady state); during ramp-up, split equally across active cohorts and maintain portfolio-level dollar neutrality.
- Hold each monthly cohort for 6 months. Open a new cohort each month and close the cohort opened 6 months ago. Rebalance monthly.
Universe: BTS default liquid U.S. common-stock universe
Category: Cross-Sectional Momentum / Relative Strength
Orientation: Relative-Value / Long–Short
Risk Level: Moderate
Holding Period: Monthly formation with 6-month holding (overlapping)
Assumptions: BTS defaults (see Methodology)
Credit: Thomas J. George and Chuan-Yang Hwang
Request this backtest video >>
Advance–Decline Line Breadth Confirmation Filter
Overview:
A breadth confirmation overlay on SPY that requires both SPY and the S&P 500 advance–decline line (computed from point-in-time constituents) to be above SMA(200).
Rules:
- Trade SPY and use S&P 500 point-in-time members as the breadth universe.
- Each day, compute net advances = (# constituents with Close > prior Close) – (# constituents with Close < prior Close).
- Compute the A/D line as the cumulative sum of daily net advances.
- Enter long SPY when both SPY Close > SMA(200) and the A/D line > SMA(200).
- Exit to cash when either SPY Close falls below SMA(200) or the A/D line falls below SMA(200).
Universe: SPY (trading) and S&P 500 point-in-time members (breadth)
Category: Breadth / Market-Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Low to Moderate
Holding Period: Intermediate (weeks–months)
Assumptions: BTS defaults (see Methodology)
Request this backtest video >>
Amihud Illiquidity Long–Short Sort
Overview:
A monthly long–short liquidity anomaly that ranks stocks by the Amihud illiquidity measure and holds a 1:1 equal-dollar long and short portfolio.
Rules:
- At each month-end, compute ILLIQ for each stock as the average over the prior 252 trading days of |daily return| divided by daily dollar volume (Close × Volume), where daily return is Close/previous Close − 1.
- Rank eligible stocks by ILLIQ at the month-end close and split the ranked list into deciles.
- Enter long the highest-ILLIQ decile and enter short the lowest-ILLIQ decile in equal dollar amounts, equal-weighted within each leg.
- Define eligible stocks as those with a full 252-trading-day ILLIQ lookback at formation; exclude all others.
- Rebalance monthly: evaluate at the month-end close and trade the next open.
Universe: BTS default liquid U.S. common-stock universe
Category: Factor / Cross-Sectional Anomaly
Orientation: Relative-Value / Long–Short
Risk Level: Moderate
Holding Period: Monthly (rebalance at month-end)
Assumptions: BTS defaults (see Methodology)
Credit: Yakov Amihud
Request this backtest video >>
Betting Against Beta
Overview:
A monthly market-neutral factor that is long low-beta stocks and short high-beta stocks, scaled to target net beta 0.
Rules:
- At each month-end, estimate each stock’s market beta using daily returns over the prior 252 trading days versus SPY.
- Rank stocks by beta and form a low-beta portfolio from the bottom decile and a high-beta portfolio from the top decile, equal-weighted within each side.
- Compute beta_L as the equal-weight average beta of the low-beta leg and beta_S as the equal-weight average beta of the high-beta leg; set long notional N_L = 2×beta_S/(beta_L+beta_S) and short notional N_S = 2×beta_L/(beta_L+beta_S) so N_L+N_S=2 (100% long and 100% short gross exposure) and N_L×beta_L = N_S×beta_S (net beta 0).
- If beta scaling is ill-conditioned (beta_L ≤ 0.05, beta_S ≤ 0.05, or beta_L/beta_S > 5.0), carry forward prior weights; if this occurs at inception, remain in cash until the first valid rebalance.
- Rebalance monthly at month-end.
Universe: BTS default liquid U.S. common-stock universe
Category: Factor / Cross-Sectional Anomaly
Orientation: Relative-Value / Long–Short
Risk Level: Moderate
Holding Period: Monthly (rebalance at month-end)
Assumptions: BTS defaults (see Methodology)
Credit: Andrea Frazzini and Lasse Heje Pedersen
Request this backtest video >>
Bollinger %B Mean Reversion
Overview:
A short-term mean-reversion system on SPY that uses Bollinger Bands and %B to identify downside excursions and then exit on a snap-back.
Rules:
- Compute Bollinger Bands using a 20-day SMA and ±2 standard deviations and compute %B = (Close-Lower)/(Upper-Lower).
- Trade long only when Close > SMA(200) at the close.
- Enter long when %B < 0.10 at the close; trade the next open.
- Exit to cash when %B > 0.50 at the close; trade the next open.
Universe: SPY
Category: Mean Reversion (Price/Returns)
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate to High
Holding Period: Until %B > 0.50 (typically days)
Assumptions: BTS defaults (see Methodology)
Credit: John Bollinger
Request this backtest video >>
Bollinger Bands Volatility Breakout
Overview:
A Bollinger Band “Squeeze” volatility-breakout system on SPY that enters on band breakouts following a volatility contraction.
Rules:
- Compute Bollinger Bands on the close using a 20-day simple moving average and bands at 2 standard deviations.
- Compute BandWidth as (Upper Band – Lower Band) divided by the Middle Band.
- Identify a Squeeze when BandWidth is the lowest value in the most recent 125 trading days (including today).
- Enter long when High is above the Upper Band and a Squeeze occurred within the most recent 5 trading days (including today) at the close; trade the next open.
- Enter short when Low is below the Lower Band and a Squeeze occurred within the most recent 5 trading days (including today) at the close; trade the next open.
- Exit to cash when Low is at or below the Lower Band at the close; trade the next open.
- Exit to cash when High is at or above the Upper Band at the close; trade the next open.
- If both the long and short entry conditions are true on the same session, take no trade.
Universe: SPY
Category: Breakout / Volatility Breakout
Orientation: Return-Seeking (Directional, Long–Short)
Risk Level: Moderate to High
Holding Period: Short to intermediate (days–weeks)
Assumptions: BTS defaults (see Methodology)
Credit: John Bollinger
Request this backtest video >>
Cointegration Pairs Trading
Overview:
A market-neutral pairs framework that trades mean reversion in cointegrated pairs using rolling formation and trading windows, with z-score entries and explicit stop and time-stop rules.
Rules:
- Refresh the tradable pair set monthly using a 252-trading-day formation window and a 126-trading-day trading window.
- Within the formation window, test candidate pairs for cointegration (Engle–Granger) and retain only cointegrated pairs with p-value ≤ 0.05; select the 10 retained pairs with the lowest p-values for trading.
- For each retained pair, estimate log(A) = alpha + beta × log(B) + epsilon over the formation window and define the spread S = log(A) − (alpha + beta × log(B)); compute the spread mean mu and standard deviation sigma over the formation window and freeze mu and sigma for the subsequent trading window.
- During the subsequent trading window, compute z = (S − mu) / sigma at each close; enter long the spread when z ≤ −2.0 and enter short the spread when z ≥ +2.0.
- Construct trades using the hedge ratio: for fixed pair gross exposure G, set the dollar notional in A to G/(1+|beta|) and the dollar notional in B to |beta|·G/(1+|beta|), with opposite sign to A; reverse signs for short-spread trades. Exit when z crosses 0.0 at the close.
- Apply a 7% stop-loss and a 50-trading-day maximum holding period per position (entry day = Day 0; if still open at the close of Day 50, signal exit and exit at the next session open). Stop-loss is pair-level mark-to-market P&L since entry, based on end-of-day closes, evaluated daily at the close; when cumulative pair P&L ≤ -7% of pair gross exposure, signal exit and exit both legs at the next session open.
Universe: U.S. common stocks (NYSE/Nasdaq/NYSE American), price ≥ $5, top 500 by 63-trading-day average dollar volume
Category: Pairs / Statistical Arbitrage / Market-Neutral
Orientation: Market-Neutral / Spread
Risk Level: Moderate to High
Holding Period: Intermediate (up to 126 trading days)
Assumptions: BTS defaults (see Methodology)
Credit: Robert F. Engle and Clive W. J. Granger (cointegration); Caldeira and Moura (published ratio-band lifecycle)
Request this backtest video >>
Connors Double 7s
Overview:
A Connors-style mean-reversion strategy on SPY that enters long on a 7-day closing low in an uptrend and exits on a 7-day closing high.
Rules:
- Trade long only when Close > SMA(200) at the close.
- Enter long when Close is the lowest Close of the most recent 7 trading days (including today) at the close; trade the next open.
- Exit to cash when Close is the highest Close of the most recent 7 trading days (including today) at the close; trade the next open.
- Long-only.
Universe: SPY
Category: Mean Reversion (Price/Returns)
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate to High
Holding Period: Until a 7-day closing high (typically days)
Assumptions: BTS defaults (see Methodology)
Credit: Larry Connors and Cesar Alvarez
Request this backtest video >>
Connors RSI(2) Mean Reversion
Overview:
A short-term mean-reversion system in SPY that buys sharp pullbacks in uptrends using RSI(2) and SMA filters, then exits on the snap-back.
Rules:
- Trade only when Close > SMA(200) (uptrend filter).
- Require a short-term pullback with Close below SMA(5).
- Enter long when RSI(2) < 10 at the close while the two filters above are true (Wilder RSI).
- Exit when price closes back above SMA(5).
- Long-only; one position at a time; no leverage.
Universe: SPY
Category: Mean Reversion (Price/Returns)
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate to High
Holding Period: Short-term (days)
Assumptions: BTS defaults (see Methodology)
Credit: Larry Connors and Cesar Alvarez
Constant Proportion Portfolio Insurance
Overview:
A dynamic allocation overlay that scales SPY exposure to the portfolio’s cushion above a fixed floor (90% of initial portfolio value) using a 4× multiplier, rebalanced daily.
Rules:
- Define t as signal time. Define Floor as 90% of initial portfolio value and hold it constant; at Close(t), compute Cushion = Portfolio Value – Floor.
- Set risky allocation = min(Portfolio Value, 4 × Cushion) and cap it between 0% and 100% (no leverage).
- Allocate the remainder to cash; if Cushion ≤ 0, allocate 0 to the risky asset.
- Rebalance daily: evaluate allocations at Close(t) and trade at Open(t+1).
Universe: SPY (risky) and cash (safe)
Category: Allocation / Portfolio Insurance / Risk Management
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: High
Holding Period: Daily rebalanced (path-dependent)
Assumptions: BTS defaults (see Methodology)
Credit: Fischer Black, John Jones, and André F. Perold
Request this backtest video >>
Day of the Week Effect
Overview:
A calendar timing rule on SPY that holds only during the trading week and stays in cash over the weekend.
Rules:
- Define the entry day as the first trading day of the week and the exit day as the last trading day of the week (to handle Monday/Friday market holidays).
- Enter long SPY at the open of the entry day.
- Exit to cash at the close of the exit day.
- Stay in cash from the exit-day close through the next entry-day open.
Universe: SPY
Category: Seasonality / Calendar / Microstructure Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Low to Moderate
Holding Period: Weekly (first trading day open to last trading day close)
Assumptions: BTS defaults (see Methodology)
Credit: Frank Cross (1973) and Kenneth R. French (1980)
Request this backtest video >>
Distance Pairs Trading
Overview:
A market-neutral pairs framework that selects pairs based on historical comovement and trades deviations from the typical spread using rolling formation and trading windows.
Rules:
- During the formation period, normalize each stock’s price series to 1.0 on the first day of the 252-trading-day window and compute pair distance as the sum of squared differences between the two normalized price series.
- At each month-end, select the top 20 closest pairs as candidates.
- During the trading period, compute the spread = normalized(A) − normalized(B) and its z-score versus the formation mean and standard deviation.
- Enter when |z| ≥ 2.0: if z ≥ +2.0, enter short A and enter long B; if z ≤ −2.0, enter long A and enter short B; size legs 1:1 dollar-neutral.
- Exit when z crosses 0.0 at the close.
- Hold each monthly cohort for 126 trading days; open a new cohort each month and close the cohort opened 126 trading days ago.
Universe: U.S. common stocks (NYSE/Nasdaq/NYSE American), price ≥ $5, top 500 by 63-trading-day average dollar volume
Category: Pairs / Statistical Arbitrage / Market-Neutral
Orientation: Market-Neutral / Spread
Risk Level: Moderate to High
Holding Period: Up to 6 months (126 trading days; overlapping monthly cohorts)
Assumptions: BTS defaults (see Methodology)
Credit: Evan Gatev, William N. Goetzmann, and K. Geert Rouwenhorst (2006)
Request this backtest video >>
Dividend Aristocrats
Overview:
A long-only index-replication strategy that holds the point-in-time constituents of the S&P 500 Dividend Aristocrats index, equal-weighted, rebalanced quarterly with membership updates implemented at the next session open.
Rules:
- Use the point-in-time constituent list of the S&P 500 Dividend Aristocrats index as the eligible universe.
- Hold all current constituents long-only, equal-weighted.
- Rebalance quarterly at the close of the last trading day of each calendar quarter.
- If index membership changes on any other date, trade at the next session open to add/remove names and re-equal-weight across the updated constituent set.
- No additional filters are applied; adding filters changes the strategy from index replication to a custom proxy.
Universe: S&P 500 Dividend Aristocrats index point-in-time constituents
Category: Factor / Cross-Sectional Anomaly
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate
Holding Period: Ongoing (quarterly rebalance; update on index changes)
Assumptions: BTS defaults (see Methodology)
Credit: S&P Dow Jones Indices (S&P 500 Dividend Aristocrats Index)
Request this backtest video >>
Donchian Channel Breakout
Overview:
A breakout trend-following system on SPY that enters on N-day highs/lows and exits on shorter counter-breakouts.
Rules:
- Compute Donchian channels using N=20 (entry) and M=10 (exit).
- Enter long when today’s High is ≥ the highest High of the prior N trading days (excluding today) and enter short when today’s Low is ≤ the lowest Low of the prior N trading days (excluding today).
- Exit long when today’s Close is below the lowest Low of the prior M trading days (excluding today) and exit short when today’s Close is above the highest High of the prior M trading days (excluding today).
- One position at a time; no pyramiding.
Universe: SPY
Category: Breakout / Range / Volatility Breakout
Orientation: Return-Seeking (Directional, Long–Short)
Risk Level: Moderate to High
Holding Period: Intermediate (weeks–months)
Assumptions: BTS defaults (see Methodology)
Credit: Richard Donchian; Richard Dennis and William Eckhardt (Turtle Trading)
Request this backtest video >>
Dual Momentum
Overview:
A momentum allocation framework that selects the strongest asset among candidates (relative momentum) but only holds it when its momentum exceeds a cash benchmark (absolute momentum); otherwise it shifts to a defensive asset.
Rules:
- At each month-end close, compute 12-1 momentum as trailing 252-trading-day total return excluding the most recent 21 trading days for SPY, EFA, and BIL.
- Select the candidate risk asset with the higher 12-1 momentum.
- Hold the selected risk asset only if its 12-1 momentum exceeds BIL; otherwise hold IEF.
Universe: SPY, EFA, IEF, BIL
Category: Trend / Time-Series Momentum / Market-Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate
Holding Period: Intermediate (weeks–months)
Assumptions: BTS defaults (see Methodology)
Credit: Gary Antonacci
Request this backtest video >>
Elder Triple Screen System
Overview:
A multi-timeframe system on SPY that filters trades with a weekly trend and times entries on daily pullbacks using RSI(2) and a simple trigger.
Rules:
- Require a higher-timeframe uptrend with weekly Close above EMA(26) on weekly bars computed from daily data.
- On the trading timeframe (daily), wait for an oscillator pullback with RSI(2) below 10.
- Enter long when the daily Close is above the prior day’s High while the primary trend remains up.
- Exit to cash when the weekly Close falls below EMA(26).
Universe: SPY
Category: Trend / Time-Series Momentum / Market-Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate
Holding Period: Short-term (days–weeks)
Assumptions: BTS defaults (see Methodology)
Credit: Alexander Elder
Request this backtest video >>
ETF Pairs Trading
Overview:
A market-neutral mean-reversion strategy applied to pairs of ETFs that track the same or extremely similar indexes. It trades temporary price ratio/spread deviations with systematic z-score triggers and tight risk control.
Rules:
- Compute R = ln(SPY / IVV) and its z-score over the prior 252 trading days.
- When the z-score is ≥ +2.0 or ≤ −2.0 at the close, enter a market-neutral pair at the next session open with 1:1 dollar-neutral legs (long the cheap ETF and short the rich ETF).
- When the z-score crosses 0.0 at the close, signal exit and exit at the next session open; or after 20 trading days in the position (entry day = Day 0; if still open at the close of Day 20, signal exit and exit at the next session open).
Universe: SPY, IVV
Category: Pairs / Statistical Arbitrage / Market-Neutral
Orientation: Market-Neutral / Spread
Risk Level: Moderate to High
Holding Period: Short-term (up to 20 trading days)
Assumptions: BTS defaults (see Methodology)
Request this backtest video >>
Global Tactical Asset Allocation
Overview:
A multi-asset trend-following allocation strategy that holds a diversified set of ETFs when they are above their 10-month SMA and allocates the remainder to SHY, evaluated and rebalanced monthly.
Rules:
- At each month-end close, compute each asset’s 10-month SMA on month-end closes (monthly bars).
- Allocate equally to assets whose month-end close is above their 10-month SMA; allocate the remainder to SHY.
- Rebalance monthly; keep position weights equal among qualifying assets.
Universe: SPY, EFA, IEF, VNQ, DBC, SHY
Category: Trend / Time-Series Momentum / Market-Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate
Holding Period: Intermediate (weeks–months)
Assumptions: BTS defaults (see Methodology)
Credit: Mebane Faber
Request this backtest video >>
Golden Cross and Death Cross
Overview:
A simple long-term trend/timing archetype based on moving-average crossovers. It holds SPY when SMA(50) is above SMA(200) (Golden Cross) and moves to cash when SMA(50) falls below SMA(200) (Death Cross).
Rules:
- Calculate SMA(50) and SMA(200) on daily closes.
- Enter long when SMA(50) crosses above SMA(200), the Golden Cross.
- Exit to cash when SMA(50) crosses below SMA(200), the Death Cross.
- Long-only; no leverage.
Universe: SPY
Category: Trend / Time-Series Momentum / Market-Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate
Holding Period: Long-term (months–years)
Assumptions: BTS defaults (see Methodology)
Guppy Multiple Moving Average
Overview:
A trend framework that trades SPY based on alignment between short-term and long-term EMA groups, entering in bullish alignment and exiting when alignment breaks.
Rules:
- Compute the short-term EMA group (3, 5, 8, 10, 12, 15) and the long-term EMA group (30, 35, 40, 45, 50, 60).
- Enter long when EMA(15) > EMA(60) and the long EMA group is in bullish alignment (EMA(30) > EMA(35) > EMA(40) > EMA(45) > EMA(50) > EMA(60)).
- Exit to cash when EMA(15) < EMA(60) or when the long EMA group is not in bullish alignment (EMA(30) ≤ EMA(35) or EMA(35) ≤ EMA(40) or EMA(40) ≤ EMA(45) or EMA(45) ≤ EMA(50) or EMA(50) ≤ EMA(60)).
Universe: SPY
Category: Trend / Time-Series Momentum / Market-Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate
Holding Period: Intermediate (weeks–months)
Assumptions: BTS defaults (see Methodology)
Credit: Daryl Guppy
Request this backtest video >>
Halloween Effect
Overview:
A seasonality strategy based on the “Sell in May” effect that holds SPY during November through April and stays in cash during May through October.
Rules:
- Enter long SPY at the close of the last trading day of October.
- Exit to cash at the close of the last trading day of April.
- Stay in cash during May–October; repeat annually.
Universe: SPY
Category: Seasonality / Calendar / Microstructure Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Low to Moderate
Holding Period: Very long (6 months in market / 6 months out)
Assumptions: BTS defaults (see Methodology)
Credit: Sven Bouman and Ben Jacobsen
Request this backtest video >>
Ichimoku Cloud
Overview:
An indicator suite that trades SPY using cloud-based trend and support/resistance signals from Tenkan-sen, Kijun-sen, and the Kumo.
Rules:
- Compute standard Ichimoku components (Tenkan-sen 9, Kijun-sen 26, Senkou Span A and Senkou Span B 52 with the cloud), with 26-period forward displacement for Senkou spans and cloud values aligned to the decision day to avoid lookahead.
- Enter long when price closes above the cloud and Tenkan‑sen is above Kijun‑sen (bullish alignment).
- Exit to cash when price closes back into or below the cloud, or when Tenkan-sen crosses below Kijun-sen.
- Require a bullish cloud with Span A above Span B.
Universe: SPY
Category: Trend / Time-Series Momentum / Market-Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate
Holding Period: Intermediate (weeks–months)
Assumptions: BTS defaults (see Methodology)
Credit: Goichi Hosoda
Request this backtest video >>
Idiosyncratic Volatility Anomaly
Overview:
A long–short anomaly that ranks stocks by idiosyncratic volatility (residual volatility), going long low-idiosyncratic-volatility stocks and short high-idiosyncratic-volatility stocks, rebalanced monthly.
Rules:
- Estimate each stock’s idiosyncratic volatility as the residual volatility from a CAPM regression versus SPY on daily returns over the prior 252 trading days.
- Rank stocks by idiosyncratic volatility; enter short the highest idio-vol decile and enter long the lowest idio-vol decile in equal dollar amounts.
- Rebalance monthly.
Universe: BTS default liquid U.S. common-stock universe
Category: Factor / Cross-Sectional Anomaly
Orientation: Relative-Value / Long–Short
Risk Level: Moderate
Holding Period: Monthly (rebalance monthly)
Assumptions: BTS defaults (see Methodology)
Credit: Andrew Ang, Robert Hodrick, Yuhang Xing and Xiaoyan Zhang
Request this backtest video >>
Industry Momentum
Overview:
A cross-sectional momentum approach applied to sector ETFs that ranks sectors at month-end and holds the strongest subset, rebalanced monthly.
Rules:
- Use the S&P 500 sector ETF universe (XLB, XLE, XLF, XLI, XLK, XLP, XLU, XLV, XLY).
- At each month-end, rank sectors by trailing total return over the prior 126 trading days.
- Allocate 100% across the top 3 sectors, equal-weighted, and rebalance monthly.
Universe: XLB, XLE, XLF, XLI, XLK, XLP, XLU, XLV, XLY
Category: Cross-Sectional Momentum / Relative Strength
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate
Holding Period: Monthly (rebalance monthly)
Assumptions: BTS defaults (see Methodology)
Credit: Tobias Moskowitz and Mark Grinblatt
Request this backtest video >>
January Confirmation Indicator
Overview:
A once-per-year risk-on/risk-off regime filter that combines January breadth in the Russell 3000 Index (RUA) with three confirmation windows on the RUA/VIX ratio.
Rules:
- Determine January breadth using the Russell 3000 Index (RUA). January breadth is positive if RUA close on the last trading day of January is strictly higher than RUA close on the last trading day of December.
- Compute the daily close ratio RUA/VIX. A window is “up” if the ratio’s end-of-window close is strictly higher than its start-of-window close; otherwise (end-of-window close is less than or equal to the start-of-window close), treat the window as not up.
- Full January is up if RUA/VIX close on the last trading day of January is strictly higher than RUA/VIX close on the last trading day of December.
- The first 5 trading days of January are up if RUA/VIX close on the fifth trading day of January is strictly higher than RUA/VIX close on the first trading day of January.
- The last 5 trading days of January are up if RUA/VIX close on the last trading day of January is strictly higher than RUA/VIX close on the fifth-to-last trading day of January.
- When January breadth is positive, classify the calendar year as risk-on if at least 2 of the 3 windows are up; otherwise classify it as risk-off.
- When January breadth is not positive, classify the calendar year as risk-on only if both the first 5 trading days and last 5 trading days windows are up; otherwise classify it as risk-off.
Universe: RUA and VIX (signal inputs)
Category: Seasonality / Breadth / Volatility / Regime Filter
Orientation: Regime Filter (risk-on / risk-off classifier)
Risk Level: Moderate
Holding Period: Annual (one signal per year)
Assumptions: BTS defaults (see Methodology)
Credit: Brian Ernest Metzger
Kaufman Adaptive Moving Average
Overview:
A trend-following approach that uses an adaptive moving average (KAMA) designed to respond quickly in trends and smooth noise in ranges. It is applied to SPY as a medium-term trend filter.
Rules:
- Compute KAMA with ER=10, fast=2, and slow=30.
- Enter long SPY when Close crosses above KAMA.
- Exit to cash when Close crosses below KAMA.
Universe: SPY
Category: Trend / Time-Series Momentum / Market-Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate
Holding Period: Intermediate (weeks–months)
Assumptions: BTS defaults (see Methodology)
Credit: Perry Kaufman
Request this backtest video >>
Keltner Channel Breakout
Overview:
A channel breakout strategy on SPY that uses Wilder ATR-based bands around an EMA, entering on band breakouts and exiting on a return back through the centerline.
Rules:
- Compute Keltner Channels using EMA(20) and bands at ±2×Wilder ATR(10).
- Enter long when Close is above the upper band, and enter short when Close is below the lower band.
- Exit long when Close crosses below EMA(20), and exit short when Close crosses above EMA(20).
Universe: SPY
Category: Breakout / Range / Volatility Breakout
Orientation: Return-Seeking (Directional, Long–Short)
Risk Level: Moderate to High
Holding Period: Short to intermediate (days–weeks)
Assumptions: BTS defaults (see Methodology)
Credit: Chester W. Keltner; popularized by Linda Bradford Raschke
Request this backtest video >>
Larry Williams Volatility Breakout
Overview:
A daily-data proxy for Larry Williams’ intraday volatility breakout on SPY that sets ATR-based breakout levels around the open, flags breakouts using the session’s High/Low as a touch proxy, and executes the trade on the next session from open to close.
Rules:
- Compute Wilder ATR(10) from daily bars, using only data through the prior close.
- At each session open, set breakout levels at Open ± 0.5×ATR(10).
- At the close, flag an upper breakout if High is ≥ the upper level and flag a lower breakout if Low is ≤ the lower level.
- If both an upper breakout and a lower breakout are flagged on the same session, take no trade.
- If only an upper breakout is flagged, enter long at the next session open and exit at that session’s close.
- If only a lower breakout is flagged, enter short at the next session open and exit at that session’s close.
Universe: SPY
Category: Breakout / Range / Volatility Breakout
Orientation: Return-Seeking (Directional, Long–Short)
Risk Level: Moderate to High
Holding Period: Very short (1 day)
Assumptions: BTS defaults (see Methodology)
Credit: Larry Williams
Request this backtest video >>
Leveraged ETF Volatility Decay
Overview:
A market-neutral strategy that shorts both the leveraged bull and leveraged bear ETFs on the same underlying index to capture volatility decay and fee drag.
Rules:
- Select the matched leveraged ETF pair SPXL and SPXS (S&P 500 3×).
- Enter a market-neutral short-volatility position by shorting both ETFs in equal dollars.
- Rebalance daily to maintain dollar neutrality and exit after 21 trading days in the position (entry day = Day 0; if still open at the close of Day 21, signal exit and exit at the next session open).
- No additional exits are used beyond the 21-trading-day holding horizon.
Universe: SPXL and SPXS
Category: Pairs / Statistical Arbitrage / Market-Neutral
Orientation: Market-Neutral / Spread
Risk Level: High
Holding Period: Short to intermediate (days–weeks)
Assumptions: BTS defaults (see Methodology)
Request this backtest video >>
Long-Term Reversal
Overview:
A low-turnover equity anomaly that buys long-term losers and shorts long-term winners, rebalanced annually with sector-neutral long and short books.
Rules:
- At each year-end close, compute past returns over the prior 756 trading days.
- Rank stocks by long-term past performance; enter long the bottom decile (long-term losers) and enter short the top decile (long-term winners).
- Hold for 1 year and rebalance annually.
- Start from equal weights within each leg and compute each leg’s sector totals using GICS sectors.
- For each sector, scale the overweight side in that sector down pro rata so the sector’s long and short totals are equal; if one side has no names in a sector, set the other side’s weights in that sector to zero; then scale both legs by the same constant so total long and total short notionals each equal 100%.
Universe: U.S. common stocks (NYSE/Nasdaq/NYSE American), price ≥ $5, top 1,000 by 63-trading-day average dollar volume
Category: Mean Reversion (Price/Returns)
Orientation: Relative-Value / Long–Short
Risk Level: Moderate to High
Holding Period: Long (years)
Assumptions: BTS defaults (see Methodology)
Credit: Werner De Bondt and Richard Thaler
Request this backtest video >>
Low Volatility / Minimum Variance
Overview:
A defensive equity anomaly that holds a long-only portfolio of the lowest-volatility stocks, rebalanced monthly with 25% sector caps.
Rules:
- Estimate each stock’s trailing volatility from daily returns over the prior 252 trading days.
- Form an equal-weighted portfolio of the lowest-volatility stocks (bottom quintile).
- Rebalance monthly at month-end.
- Impose 25% sector caps using GICS sectors: start from equal weights; if any sector exceeds 25%, scale that sector down pro rata to 25% and redistribute the excess pro rata across the remaining stocks; iterate until all sector weights are ≤ 25%.
- Trade long-only.
Universe: U.S. common stocks (NYSE/Nasdaq/NYSE American), price ≥ $5, top 1,000 by 63-trading-day average dollar volume
Category: Factor / Cross-Sectional Anomaly
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate
Holding Period: Monthly (rebalance monthly)
Assumptions: BTS defaults (see Methodology)
Credit: Robert A. Haugen and Nardin L. Baker; Clarke, de Silva and Thorley
Request this backtest video >>
Maximum Daily Return Effect / Lottery Demand
Overview:
A monthly long–short anomaly that shorts “lottery-like” stocks with extreme maximum daily returns and goes long low maximum-daily-return stocks.
Rules:
- For each stock, compute MAX as the maximum daily return over the prior 21 trading days.
- Rank stocks by MAX; enter short the highest-MAX decile and enter long the lowest-MAX decile in equal dollar amounts.
- Exclude stocks with 20-day average dollar volume below $10 million.
- Rebalance monthly.
- Cap single-name weights at 2% per side: within each leg, start from equal weights; if any name exceeds 2%, set it to 2% and redistribute the excess pro rata across remaining uncapped names; iterate until all names are ≤ 2%.
Universe: U.S. common stocks (NYSE/Nasdaq/NYSE American), price ≥ $5, top 1,000 by 63-trading-day average dollar volume
Category: Factor / Cross-Sectional Anomaly
Orientation: Relative-Value / Long–Short
Risk Level: Moderate
Holding Period: Monthly (rebalance monthly)
Assumptions: BTS defaults (see Methodology)
Credit: Turhan Bali, Nusret Cakici and Robert F. Whitelaw
Request this backtest video >>
Moving Average Crossover—SMA(20) / SMA(50)
Overview:
A trend-following market-timing strategy on SPY that participates in uptrends when the fast moving average is above the slow moving average and sits out otherwise.
Rules:
- Define t as the signal time evaluated at Close(t).
- Compute SMA(20) and SMA(50) on Close(t).
- Enter long SPY at Open(t+1) when SMA(20,t) > SMA(50,t) and SMA(20,t−1) ≤ SMA(50,t−1).
- Exit to cash at Open(t+1) when SMA(20,t) < SMA(50,t) and SMA(20,t−1) ≥ SMA(50,t−1).
- If SMA(20,t) = SMA(50,t), maintain the prior position.
- Do not generate signals until SMA(50,t) is defined.
- Do not generate entry signals on the last in-range bar when Open(t+1) is unavailable.
Universe: SPY
Category: Trend / Time-Series Momentum / Market-Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate
Holding Period: Regime-based (evaluated daily)
Assumptions: BTS defaults (see Methodology)
Request this backtest video >>
N-Day Low Pullback
Overview:
A short-term mean-reversion strategy on SPY that enters long on an N-day closing low in an uptrend and exits on a defined short-term bounce.
Rules:
- Trade long only when Close is above SMA(200).
- Enter long when Close is the lowest close of the prior 5 trading days (N = 5).
- Exit when Close closes above SMA(5).
- If the exit signal does not occur, exit after 10 trading days in the position (entry day = Day 0; if still open at the close of Day 10, signal exit and exit at the next session open).
Universe: SPY
Category: Mean Reversion (Price/Returns)
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate to High
Holding Period: Short-term (days)
Assumptions: BTS defaults (see Methodology)
Credit: Larry Connors and Cesar Alvarez
Request this backtest video >>
Narrow Range 7 Breakout
Overview:
A volatility contraction breakout strategy applied to SPY that identifies the narrowest-range day of the prior seven sessions, flags breakouts using the next session’s High/Low as a touch proxy, and enters at the following session open.
Rules:
- At the close, identify an NR7 day when today’s range (High − Low) is the narrowest of the prior 7 trading days (including today).
- Record the NR7 day’s High and Low as breakout levels.
- On the next trading session, at the close, flag an upside breakout if High is at or above the NR7 High and flag a downside breakout if Low is at or below the NR7 Low.
- If both an upside breakout and a downside breakout are flagged on the same session, take no trade.
- If only an upside breakout is flagged, enter long at the next session open.
- If only a downside breakout is flagged, enter short at the next session open.
- Exit at the close 2 trading days after entry (entry day = Day 0).
Universe: SPY
Category: Breakout / Range / Volatility Breakout
Orientation: Return-Seeking (Directional, Long–Short)
Risk Level: Moderate to High
Holding Period: Very short (1–3 days)
Assumptions: BTS defaults (see Methodology)
Credit: Toby Crabel
Request this backtest video >>
Opening Gap Fade
Overview:
A short-horizon mean-reversion trade that fades large overnight gap-down opens in SPY and exits on the close of the entry day.
Rules:
- Compute the overnight gap = (Open − prior Close) / prior Close.
- Enter long at the open when the overnight gap is ≤ −2.0%.
- Exit on the close of the entry day.
- Stay in cash on all other sessions.
Universe: SPY
Category: Intraday / Overnight / Microstructure Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Low to Moderate
Holding Period: Very short (intraday to 1 day)
Assumptions: BTS defaults (see Methodology)
Request this backtest video >>
Opening Range Breakout
Overview:
A daily-data proxy for opening-range breakout logic that defines “opening strength” using a break of the prior day’s range at the open and exits on the close of the entry day.
Rules:
- Enter long at the open when Open is above the prior day’s High.
- Enter short at the open when Open is below the prior day’s Low.
- Exit on the close of the entry day.
- Stay in cash on all other sessions.
Universe: SPY
Category: Breakout / Range / Volatility Breakout
Orientation: Return-Seeking (Directional, Long–Short)
Risk Level: Moderate to High
Holding Period: Very short (intraday to 1 day)
Assumptions: BTS defaults (see Methodology)
Credit: Toby Crabel
Request this backtest video >>
Overnight Drift
Overview:
An intraday anomaly where index returns tend to accrue overnight rather than during the regular session; it holds SPY from the close to the next open and stays flat during the session.
Rules:
- Enter long at the close and exit at the next session’s open.
- Stay in cash during the regular trading session (open to close).
- Repeat daily.
- Use close and next-open prices for fills.
Universe: SPY
Category: Intraday / Overnight / Microstructure Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Low to Moderate
Holding Period: Very short (overnight)
Assumptions: BTS defaults (see Methodology)
Request this backtest video >>
Parabolic SAR
Overview:
A trend-following stop-and-reverse indicator (Parabolic SAR) applied to SPY to stay long in uptrends and exit to cash in downtrends.
Rules:
- Compute Parabolic SAR using Wilder’s parameters Step = 0.02 and Max Step = 0.20.
- Enter long SPY when Close crosses above SAR.
- Exit to cash when Close crosses below SAR.
- Re-enter long on the next Close cross above SAR.
Universe: SPY
Category: Trend / Time-Series Momentum / Market-Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate
Holding Period: Intermediate (weeks–months)
Assumptions: BTS defaults (see Methodology)
Credit: J. Welles Wilder Jr
Request this backtest video >>
Percent of Stocks Above Moving Average
Overview:
A breadth timing overlay on SPY based on the percentage of S&P 500 constituents above SMA(200), using point-in-time members.
Rules:
- Compute the percent of S&P 500 constituents with Close above SMA(200), using point-in-time constituents.
- Hold SPY when this percent is ≥ 50%.
- Exit to cash when this percent is < 50%.
Universe: S&P 500 constituents (signal) and SPY (trading)
Category: Breadth / Market-Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate
Holding Period: Intermediate (weeks–months)
Assumptions: BTS defaults (see Methodology)
Request this backtest video >>
Pivot Point Breakout
Overview:
A daily-data proxy for a floor-trader pivot-point breakout system on SPY that defines prior-day support/resistance levels and flags breakouts using the session’s High/Low as a touch proxy.
Rules:
- Compute P = (High + Low + Close) / 3 from the prior day; compute R1 = 2P − Low and S1 = 2P − High.
- At the close, flag an upside breakout if today’s High is ≥ R1 and flag a downside breakout if today’s Low is ≤ S1.
- If both an upside breakout and a downside breakout are flagged on the same session, take no trade.
- If only an upside breakout is flagged, enter long at the next session open and exit at that session’s close.
- If only a downside breakout is flagged, enter short at the next session open and exit at that session’s close.
Universe: SPY
Category: Breakout / Range / Volatility Breakout
Orientation: Return-Seeking (Directional, Long–Short)
Risk Level: Moderate to High
Holding Period: Very short (1 day)
Assumptions: BTS defaults (see Methodology)
Request this backtest video >>
Pre-Holiday Effect
Overview:
A calendar effect strategy that holds SPY only on the trading day immediately before U.S. market holidays.
Rules:
- For each NYSE full-day holiday, identify the final trading session immediately preceding the holiday.
- Enter long SPY at that session’s open.
- Exit on the close of the entry day.
- Stay in cash on all other sessions.
Universe: SPY
Category: Seasonality / Calendar / Microstructure Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Low
Holding Period: Very short (1 day, event-driven)
Assumptions: BTS defaults (see Methodology)
Credit: Robert Ariel
Request this backtest video >>
Presidential Cycle Effect
Overview:
A U.S. election-cycle seasonal pattern that claims equity returns are stronger in Years 3–4 of the presidential term and weaker in Years 1–2.
Rules:
- Define Year 1 as the first calendar year after a U.S. presidential election year; Year 4 is the next election year.
- Hold SPY during Years 3 and 4.
- Hold cash during Years 1 and 2.
- Rebalance on the first trading day of each calendar year.
Universe: SPY
Category: Seasonality / Calendar / Macro Regime
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate
Holding Period: Long (years)
Assumptions: BTS defaults (see Methodology)
Credit: Yale Hirsch (Stock Trader’s Almanac); Jeffrey Hirsch; Sam Stovall
Request this backtest video >>
Residual Momentum
Overview:
A factor-neutral equity anomaly that ranks stocks by residual momentum to isolate stock-specific trends after controlling for market exposure.
Rules:
- Estimate beta versus SPY using daily returns over the prior 252 trading days.
- Compute daily residual return = stock daily return − beta × SPY daily return; compute residual momentum as the sum of daily residual returns over the prior 252 trading days excluding the most recent 21 trading days.
- At each month-end, enter long the top decile and enter short the bottom decile by residual momentum, equal-weighted, and rebalance monthly.
Universe: U.S. common stocks (NYSE/Nasdaq/NYSE American), price ≥ $5, top 1,000 by 63-trading-day average dollar volume
Category: Cross-Sectional Momentum / Relative Strength
Orientation: Relative-Value / Long–Short
Risk Level: Moderate
Holding Period: Monthly (rebalance monthly)
Assumptions: BTS defaults (see Methodology)
Credit: David Blitz, Joop Huij and Martin Martens
Request this backtest video >>
Risk Parity
Overview:
An asset-allocation approach that sizes positions inversely to recent volatility so each sleeve contributes similar risk, rebalanced monthly.
Rules:
- Estimate each ETF’s volatility using the prior 63 trading days of daily returns.
- Set weights by inverse volatility and normalize weights to sum to 100%.
- If any ETF’s weight exceeds 50%, cap it at 50% and redistribute the excess proportionally across the other included ETFs.
- If a volatility estimate is missing for an ETF, exclude it and renormalize the remaining weights; if all ETFs are excluded, stay in cash.
- Rebalance monthly at month-end.
Universe: SPY, IEF, GLD, DBC
Category: Allocation / Risk-Parity / Target-Vol
Orientation: Diversified / Multi-Asset
Risk Level: Moderate
Holding Period: Monthly (rebalance monthly)
Assumptions: BTS defaults (see Methodology)
Credit: Edward Qian; Qian, Siegel and Russell; Bridgewater Associates (risk-parity concept)
Request this backtest video >>
Santa Claus Rally
Overview:
A seasonal strategy on SPY that holds during the last five trading days of December and the first two trading days of January.
Rules:
- Define the Santa Claus window as the last 5 trading sessions of December plus the first 2 trading sessions of January.
- Enter long SPY at the close of the session immediately preceding the first session in the window.
- Exit at the close of the final session in the window.
- Stay in cash outside the window.
Universe: SPY
Category: Seasonality / Calendar / Microstructure Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Low to Moderate
Holding Period: Very short (7 trading days per year)
Assumptions: BTS defaults (see Methodology)
Credit: Yale Hirsch (Stock Trader’s Almanac)
Request this backtest video >>
Sector ETF Pairs Trading
Overview:
A simple market-neutral relative-value trade between two sector ETFs, implemented by z-scoring the price ratio and betting on mean reversion.
Rules:
- Compute the log-price ratio ln(XLK / XLF) and its 60-day z-score.
- When |z-score| ≥ 2.0 at the close, enter at the next session open (long the underperformer and short the outperformer in equal dollars).
- When the z-score crosses back through 0.0 at the close, signal exit and exit at the next session open.
Universe: XLK and XLF
Category: Pairs / Statistical Arbitrage / Market-Neutral
Orientation: Market-Neutral / Spread
Risk Level: Moderate to High
Holding Period: Short to intermediate (days–weeks)
Assumptions: BTS defaults (see Methodology)
Request this backtest video >>
Short Volatility via VIX ETPs
Overview:
A volatility risk-premia strategy that holds SVXY when VXX is below SMA(20) and VXX is below VXZ, with an SVXY SMA(10) risk stop.
Rules:
- Hold SVXY when VXX is below SMA(20) and VXX is below VXZ.
- Exit to cash when either condition is false.
- Apply a risk stop by exiting SVXY when SVXY closes below SMA(10).
Universe: SVXY (trading) with VXX and VXZ (signals)
Category: Volatility / Risk-Premia / Target-Vol
Orientation: Return-Seeking (Directional or Risk Premia Bias)
Risk Level: High
Holding Period: Intermediate (months–years)
Assumptions: BTS defaults (see Methodology)
Request this backtest video >>
Short-Term Reversal
Overview:
A high-turnover equity anomaly that goes long recent losers and short recent winners over very short horizons (days to weeks), implemented as a systematically rebalanced long–short portfolio.
Rules:
- Each week at Friday close, compute each stock’s 5-trading-day total return.
- Enter long the bottom decile and enter short the top decile by 5-day return, equal-weighted.
- Hold for 5 trading days and rebalance weekly.
Universe: U.S. common stocks (price ≥ $5; top 1,000 by 63-day average dollar volume)
Category: Mean Reversion (Price/Returns)
Orientation: Relative-Value / Long–Short
Risk Level: Moderate to High
Holding Period: Short-term (days–weeks)
Assumptions: BTS defaults (see Methodology)
Credit: Bruce Lehmann; Narayan Jegadeesh
Request this backtest video >>
SuperTrend
Overview:
A volatility-adjusted trend indicator strategy that follows price using an ATR-based trailing band (SuperTrend) to stay long in uptrends and exit to cash when the trend flips.
Rules:
- Compute SuperTrend using Wilder ATR length = 10 and multiplier = 3.
- Enter long when Close crosses above the SuperTrend line.
- Exit to cash when Close crosses below the SuperTrend line.
- Stay in cash until the next long entry signal.
Universe: SPY
Category: Trend / Time-Series Momentum / Market-Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate
Holding Period: Intermediate (weeks–months)
Assumptions: BTS defaults (see Methodology)
Credit: Olivier Seban
Request this backtest video >>
Three Down Days Mean Reversion
Overview:
A pullback-buyer on SPY that enters after three consecutive down closes when the broader trend is up, and exits on a bounce.
Rules:
- Trade long only when Close is above SMA(200).
- Enter long when Close has been down three sessions in a row (Close < prior Close for 3 consecutive sessions).
- Exit on the first up close (Close > prior Close).
- If no up close occurs, exit after 5 trading days in the position (entry day = Day 0; if still open at the close of Day 5, signal exit and exit at the next session open).
Universe: SPY
Category: Mean Reversion (Price/Returns)
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate to High
Holding Period: Short-term (days)
Assumptions: BTS defaults (see Methodology)
Credit: Larry Connors and Cesar Alvarez
Request this backtest video >>
Time-Series Momentum
Overview:
A regime-following model that holds SPY when its trailing 12-month return is positive and holds cash otherwise.
Rules:
- At each month-end, compute SPY’s trailing 12-month total return using the prior 252 trading days.
- Enter long SPY when that 12-month return is > 0.
- Exit to cash when that 12-month return is ≤ 0.
Universe: SPY
Category: Trend / Time-Series Momentum / Market-Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate
Holding Period: Monthly (signals at month-end)
Assumptions: BTS defaults (see Methodology)
Credit: Tobias Moskowitz, Yao Hua Ooi and Lasse Heje Pedersen
Request this backtest video >>
Turn of the Month Effect
Overview:
A calendar-seasonality strategy on SPY that holds only from the last trading day of each month through the third trading day of the next month.
Rules:
- Identify the last trading day of each month.
- Enter long SPY at that close.
- Exit at the close of the third trading day of the new month.
- Stay in cash outside this window.
Universe: SPY
Category: Seasonality / Calendar / Microstructure Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Low to Moderate
Holding Period: Very short (4 trading days per month)
Assumptions: BTS defaults (see Methodology)
Credit: Lakonishok and Smidt (1988) and McConnell and Xu (2008)
Turn of the Quarter Effect
Overview:
A calendar-seasonality strategy on SPY that holds only from the last trading day of each quarter through the third trading day of the next quarter.
Rules:
- Identify the last trading day of each calendar quarter.
- Enter long SPY at that close.
- Exit at the close of the third trading day of the new quarter.
- Stay in cash outside this window.
Universe: SPY
Category: Seasonality / Calendar / Microstructure Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Low to Moderate
Holding Period: Very short (4 trading days per quarter)
Assumptions: BTS defaults (see Methodology)
Request this backtest video >>
Turn of the Year Effect
Overview:
A seasonal strategy that targets small caps around year-end and early January, reflecting the “turn of the year” effect.
Rules:
- Enter long IWM at the close of the last trading day of December.
- Exit at the close of the fifth trading day of January.
- Stay in cash outside this window.
- Repeat annually.
Universe: IWM
Category: Seasonality / Calendar / Microstructure Timing
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Low to Moderate
Holding Period: Very short (6 trading days per year)
Assumptions: BTS defaults (see Methodology)
Credit: Michael Rozeff and William Kinney; Donald Keim
Request this backtest video >>
VIX Regime Filter
Overview:
A volatility-regime overlay on SPY that uses VXX versus SMA(200) to toggle between holding SPY and cash.
Rules:
- Hold SPY when VXX is below SMA(200).
- Exit to cash when VXX is at or above SMA(200).
Universe: SPY (trading) and VXX (signal)
Category: Volatility / Risk-Premia / Target-Vol
Orientation: Return-Seeking (Directional or Risk Premia Bias)
Risk Level: High
Holding Period: Intermediate (weeks–months)
Assumptions: BTS defaults (see Methodology)
Request this backtest video >>
Volatility Targeting
Overview:
A daily volatility-targeting overlay on SPY that scales exposure up or down to target a fixed portfolio volatility using realized volatility estimates.
Rules:
- Estimate realized volatility as the annualized sample standard deviation of the prior 20 close-to-close simple returns (annualize with the square root of 252).
- Set weight at the close as min(1.0, 10% / realized vol) and allocate the remainder to cash; apply weights at the next session open.
- Rebalance daily.
Universe: SPY
Category: Volatility / Risk-Premia / Target-Vol
Orientation: Return-Seeking (Directional or Risk Premia Bias)
Risk Level: High
Holding Period: Daily (rebalance daily)
Assumptions: BTS defaults (see Methodology)
Credit: Pedro Barroso and Pedro Santa-Clara; Alan Moreira and Tyler Muir (volatility-managed portfolios)
Request this backtest video >>
Volatility-Adjusted Momentum
Overview:
A momentum stock-selection approach that ranks stocks by trend strength and sizes positions by volatility so each holding targets similar risk, rebalanced weekly.
Rules:
- On a weekly schedule, compute each stock’s momentum score as follows: run an OLS regression of ln(Close) on time over the prior 90 trading days; annualize the slope as b×252; compute trend = exp(b×252) – 1; multiply by R²; momentum score = trend × R².
- Rank the universe by this momentum score and select the top 20 stocks.
- For each selected stock i, compute ATR_i = Wilder ATR(20) at the close; set raw shares_i = (0.01 × Portfolio Equity) / (2 × ATR_i) and raw dollars_i = raw shares_i × Close; if total raw dollars exceeds Portfolio Equity, scale all raw dollars down proportionally so total equals Portfolio Equity; convert final dollars to shares at the next session open by rounding down to whole shares; any leftover capital remains in cash.
- Rebalance weekly and remove names that drop out of the top 20; on each weekly rebalance date, if SPY Close is below SMA(100) at the close, exit all positions to cash.
Universe: U.S. common stocks (NYSE/Nasdaq/NYSE American), price ≥ $5, top 1,000 by 63-trading-day average dollar volume
Category: Cross-Sectional Momentum / Relative Strength
Orientation: Return-Seeking (Directional Long Bias)
Risk Level: Moderate
Holding Period: Weekly (rebalance weekly)
Assumptions: BTS defaults (see Methodology)
Credit: Andreas F. Clenow (‘Stocks on the Move’)
Request this backtest video >>
Winners Minus Losers Momentum
Overview:
The classic momentum factor that goes long recent winners and short recent losers based on trailing returns over a formation window, rebalanced monthly.
Rules:
- On a monthly schedule, compute each stock’s return over months 2–12 (i.e., the past 252 trading days excluding the most recent 21 trading days).
- Rank stocks by past return; enter long the top decile (winners) and enter short the bottom decile (losers) in 1:1 equal-dollar notional, equal-weighted within each leg.
- Hold for 1 month and rebalance monthly.
Universe: U.S. common stocks (NYSE/Nasdaq/NYSE American): Price ≥ $5 and average daily dollar volume ≥ $5M over the prior 63 trading days
Category: Cross-Sectional Momentum / Relative Strength
Orientation: Relative-Value / Long–Short
Risk Level: Moderate
Holding Period: Intermediate (months)
Assumptions: BTS defaults (see Methodology)
Credit: Narayan Jegadeesh and Sheridan Titman
