Back to Research
Backtest Results 24:18

Golden Cross Trading Strategy: 20-Year Backtest on the S&P 500

The golden cross is one of the most recognized signals in technical analysis. When the 50-day moving average crosses above the 200-day moving average, traders take notice. But does it actually work? We backtested the golden cross on the S&P 500 over 20 years of market data to find out.

Published September 12, 2023 Updated February 25, 2026
Golden Cross Trading Strategy: 20-Year Backtest on the S&P 500

What Is a Golden Cross?

A golden cross occurs when a shorter-term moving average crosses above a longer-term moving average. The standard version uses the 50-day simple moving average (SMA) and the 200-day SMA. Traders interpret this crossover as a shift from bearish to bullish momentum.

The golden cross has three stages. First, the shorter moving average sits below the longer one while selling pressure dominates. Second, the 50-day SMA crosses above the 200-day SMA. Third, both averages trend upward as buyers take control.

Key Takeaway A golden cross is the 50-day SMA crossing above the 200-day SMA. It signals a potential shift from a downtrend to an uptrend. The opposite signal, a death cross, occurs when the 50-day crosses below the 200-day.

What Is a Death Cross?

The death cross is the inverse pattern. The 50-day SMA crosses below the 200-day SMA, signaling that short-term momentum has turned negative relative to the long-term trend. Headlines tend to amplify death cross events, but the actual predictive value is more nuanced than the name suggests.

Not every death cross leads to a market crash. Some produce brief pullbacks before the broader uptrend resumes. The 2020 death cross that occurred during the initial COVID sell-off preceded one of the fastest recoveries in market history.

Golden Cross vs. Death Cross

The golden cross is a bullish signal that occurs when the 50-day SMA crosses above the 200-day SMA, while the death cross is a bearish signal triggered when the 50-day crosses below the 200-day. Both signals are lagging indicators that confirm trend changes already underway.

Factor Golden Cross Death Cross
Signal 50 SMA crosses above 200 SMA 50 SMA crosses below 200 SMA
Interpretation Bullish momentum shift Bearish momentum shift
Typical action Enter long or add to positions Reduce exposure or hedge
Confirmation Rising volume on crossover Rising volume on crossover
Main weakness Lag: signal fires after the move starts Lag: sell-off often priced in already

20-Year Backtest Results: S&P 500

We tested a simple golden cross and death cross strategy on the S&P 500 from 2003 through 2023. The rules were straightforward: buy when the 50-day SMA crosses above the 200-day SMA, sell when it crosses below. No additional filters, no discretionary overrides.

The results reveal both the strengths and the limitations of this approach. The golden cross captured most major bull runs, including the recoveries after 2009 and 2020. However, it also produced whipsaw signals during sideways markets, where the averages crossed back and forth repeatedly.

Important Context Backtest results depend on the specific time period, instrument, and execution assumptions. Past performance does not guarantee future results. Always test strategies on your own data before trading real capital.

The golden cross works best in strongly trending environments. When the market chops sideways inside a range, both the golden cross and death cross generate false signals. Traders who combine the crossover with a trend filter or volatility measure tend to reduce the whipsaw problem.

What the Backtest Shows

Watch the full video above for the complete year-by-year breakdown. The data covers every golden cross and death cross on the S&P 500 across two decades, including how the strategy handled the 2008 financial crisis, the 2020 pandemic crash, and the 2022 bear market.

How to Build a Golden Cross Scanner in ThinkOrSwim

You can scan for golden cross signals across your entire watchlist using ThinkOrSwim's Stock Hacker. This ThinkScript code identifies stocks where the 50-day SMA just crossed above the 200-day SMA within the last 3 bars.

Golden Cross Scanner ThinkScript
# Golden Cross Scanner for ThinkOrSwim
# Scans for 50 SMA crossing above 200 SMA

input shortLength = 50;
input longLength = 200;
input lookback = 3;

def shortSMA = Average(close, shortLength);
def longSMA = Average(close, longLength);

plot signal = shortSMA crosses above longSMA
               within lookback bars;

To use this in ThinkOrSwim: open the Scan tab, go to Stock Hacker, add a custom filter, and paste the code above. Adjust the lookback period to widen or narrow your results. A value of 1 catches crossovers from the current bar only.

Golden Cross Alert Script

This version adds real-time alerts so you get notified the moment a golden cross or death cross occurs on any chart.

Golden Cross + Death Cross Alerts ThinkScript
# Golden Cross / Death Cross Alert
# Add to any chart for real-time signals

input shortLength = 50;
input longLength = 200;

def shortSMA = Average(close, shortLength);
def longSMA = Average(close, longLength);

def goldenCross = shortSMA crosses above longSMA;
def deathCross = shortSMA crosses below longSMA;

AddLabel(goldenCross, "GOLDEN CROSS", Color.GREEN);
AddLabel(deathCross, "DEATH CROSS", Color.RED);

Alert(goldenCross, "Golden Cross", Alert.BAR, Sound.Ding);
Alert(deathCross, "Death Cross", Alert.BAR, Sound.Ring);

When the Golden Cross Works (and When It Fails)

Strong Performance

The golden cross tends to perform well after extended bear markets. When the broader trend reverses from down to up, the crossover catches the early stages of the new bull market. The signal after the March 2009 bottom and the April 2020 bottom both preceded sustained rallies.

Trending sectors also produce reliable golden cross signals. If a sector is rotating into favor based on macro conditions, the crossover on individual stocks within that sector can confirm the move.

Poor Performance

Range-bound markets generate the most false signals. When price oscillates around the 200-day average without committing to a direction, the 50-day and 200-day averages weave around each other. Each cross triggers a trade, and each reversal triggers a stop. The result is a series of small losses that compound.

The golden cross also struggles during sharp V-shaped reversals. By the time the 50-day crosses above the 200-day, the recovery move may already be 15-20% off the bottom. Traders who wait for the golden cross confirmation enter well above the low.

Reducing False Signals Combine the golden cross with a volume confirmation filter or a volatility measure like the TTM Squeeze. Crossovers that occur on above-average volume are more reliable than those on thin volume. You can also require the 200-day SMA to be rising (not flat) at the time of the cross.

Combining the Golden Cross with Other Indicators

The golden cross produces more reliable results when combined with volume confirmation, volatility filters, or moving average slope requirements. Using the crossover as one input among several reduces false signals in choppy markets.

Volume confirmation. Require volume on the crossover bar to exceed its 50-day average. This filters out weak crossovers that occur during low-participation trading days.

Squeeze filter. Use the Multi-Timeframe Squeeze to confirm that volatility is contracting before the cross. A golden cross that coincides with a squeeze release on the weekly timeframe carries more weight than one firing in isolation.

Moving average slope. Only take golden cross signals where the 200-day SMA is rising or flat. If the 200-day is still declining at the crossover point, the long-term trend has not turned yet. Our Moving Average Crossover Backtester lets you test different slope requirements on historical data.

Tools for Golden Cross Analysis

TOS Indicators provides free backtesting and scanning tools for golden cross strategies. The Moving Average Crossover Backtester tests any combination of moving average lengths on historical data for any ticker.

The standard golden cross uses the 50-day simple moving average (SMA) and the 200-day SMA. When the 50-day crosses above the 200-day, it forms a golden cross. Some traders substitute exponential moving averages (EMA) for faster signal generation, though the SMA version is more widely followed.
On the S&P 500, golden crosses occur roughly once or twice per year on average. The exact frequency varies by market conditions. Extended bull markets produce fewer crossovers because the 50-day stays above the 200-day for long stretches. Volatile, choppy markets produce more frequent crossovers as the averages weave around each other.
The golden cross is a lagging indicator. Both the 50-day and 200-day moving averages are calculated from past price data, so the crossover confirms a trend change that has already begun. By the time the signal fires, the market may have moved 10-20% off the bottom. This lag is the primary criticism of the strategy.
The 50/200-day golden cross is a daily-timeframe signal not suited for day trading. However, you can apply the same concept to intraday charts using shorter moving average periods. For example, a 10-period and 50-period crossover on a 5-minute chart follows the same logic. Test any intraday variation thoroughly before trading it live.
A golden cross uses simple moving averages of price (50 SMA and 200 SMA). The MACD uses exponential moving averages (12 EMA and 26 EMA) and adds a signal line (9-period EMA of the MACD). The MACD generates signals faster because it uses shorter periods, but it also produces more false signals. The golden cross is a slower, higher-timeframe confirmation.
The golden cross applies to any instrument with enough liquidity and trading history to produce meaningful moving averages. Individual stocks, ETFs, futures, and forex pairs all show golden cross patterns. Results vary by instrument. Highly volatile stocks produce more false crossovers than broad indices like the S&P 500.

Ready to Trade With an Edge?

Join 40,000+ traders using institutional-grade tools for ThinkOrSwim.

Get the Bundle