Market-Specific15 min read

Stock Market Backtesting Guide

Master equity backtesting with dividend adjustments, stock splits, corporate actions, market hours, and sector rotation strategies.

Stock Market Fundamentals

What Makes Stocks Different?

  • Market Hours - 9:30am-4pm EST only (vs 24/5 forex, 24/7 crypto)
  • Dividends - Quarterly cash distributions to shareholders
  • Stock Splits - Price adjustments affecting historical data
  • Corporate Actions - Mergers, spinoffs, buyouts
  • Pattern Day Trading Rule - <$25K accounts limited to 3 day trades/week
  • Sector Correlation - Stocks grouped by industry move together

Stock Categories

CategoryExamplesVolatilityBest For
Large Cap (>$10B)AAPL, MSFT, GOOGLLow-ModerateLong-term, swing trading
Mid Cap ($2-10B)CRWD, NET, DDOGModerateGrowth, momentum
Small Cap ($300M-2B)Micro software/biotechHighAggressive growth
Penny Stocks (<$5)OTC, pink sheetsExtremeSpeculation (risky)

Start backtesting with liquid large caps (SPY, QQQ components) for most reliable data and execution assumptions.

Price Adjustments

Critical: Always Use Adjusted Prices

Unadjusted prices make splits look like crashes and miss dividend returns. Your backtest will be wildly inaccurate without proper adjustments.

Example: AAPL Stock Split

Aug 27, 2020: 4:1 split announced
Unadjusted: $500 → $125 (looks like -75% crash!)
Adjusted: Historical prices divided by 4, chart continuous
Result: Accurate returns, no false signals

Adjustment TypeWhat It FixesFormulaExample
Split AdjustmentStock splits/reverse splitsPrice / Split Ratio2:1 split: $100 → $50
Dividend AdjustmentDividend paymentsPrice - Dividend$2 div: $100 → $98
Merger AdjustmentAcquisitionsBuyout PriceAcquired at $50/share
Spinoff AdjustmentCompany splits into 2Complex (varies)Parent + new entity

Use "Adjusted Close"

Most data providers offer "Adjusted Close" column. This is the gold standard for backtesting.

  • • Yahoo Finance: Download with "Adj Close"
  • • Alpha Vantage: Use adjusted data endpoint
  • • Polygon.io: Request adjusted prices
  • • IEX Cloud: Comes adjusted by default

When to Use Unadjusted

Only use unadjusted prices for:

  • • Showing actual historical price levels
  • • Comparing to stop/limit orders placed
  • • Analyzing specific entry/exit points
  • Never for return calculations!

Corporate Actions

Dividends

Quarterly cash payments to shareholders. Critical for buy-and-hold strategies.

Ex-Dividend Date: Last day to buy to receive dividend

Payment Date: Cash hits your account

Yield: Annual dividend / stock price

Example: AAPL pays $0.24/quarter ($0.96/year). At $180/share, yield = 0.53%. Over 10 years, dividends add 5.3% to returns!

Stock Splits

Increases shares outstanding, decreases price proportionally. No change in market cap.

SplitSharesPrice
Before100$500
2:1 Split200$250

Value unchanged: 100 × $500 = 200 × $250 = $50,000

Survivorship Bias Warning

Many stocks go to zero (bankruptcies, delistings). Backtesting only survivors inflates results.

Example: Testing "buy all NASDAQ stocks" in 2000 excludes 95% that went bankrupt. Your backtest looks amazing, but real trading would've lost money. Always use survivorship-bias-free data or include delisted stocks.

Market Hours

Regular vs Extended Hours

SessionTime (EST)LiquidityCharacteristics
Pre-Market4:00am - 9:30amLowNews reactions, wide spreads
Regular Hours9:30am - 4:00pmHigh🔥 Best execution, tight spreads
After-Hours4:00pm - 8:00pmLowEarnings releases, volatile

Most retail backtesting should focus on regular hours (9:30am-4pm) for realistic fill prices and liquidity assumptions.

Opening Hour (9:30-10:30am)

  • • Highest volume of the day
  • • Overnight news gets priced in
  • • Most volatility (gaps common)
  • • Good for breakout strategies

Closing Hour (3:00-4:00pm)

  • • Second-highest volume
  • • Institutional rebalancing
  • • Trend continuation/reversal
  • • Good for end-of-day entries

Gap Trading

Stocks gap overnight (close $50, open $52) due to after-hours news. This creates opportunities but also risk. Backtest with realistic gap assumptions - you can't buy at yesterday's close if it gaps up at open.

Sector Rotation

11 Market Sectors

SectorExamplesCycle PhaseCharacteristics
Technology (XLK)AAPL, MSFT, NVDAGrowthHigh growth, rate-sensitive
Financials (XLF)JPM, BAC, GSExpansionRate increases benefit banks
Healthcare (XLV)JNJ, UNH, PFEDefensiveStable, recession-resistant
Energy (XLE)XOM, CVX, COPLate cycleCommodity-driven, cyclical
Consumer Staples (XLP)PG, KO, WMTDefensiveRecession-proof, low vol

Sector Rotation Strategy

Different sectors outperform at different economic stages:

  1. Early Bull Market: Technology, Consumer Discretionary (growth)
  2. Mid Bull Market: Industrials, Materials (expansion)
  3. Late Bull Market: Energy, Financials (overheating)
  4. Bear Market: Healthcare, Utilities, Consumer Staples (defense)

Backtesting Sector Strategies

Test sector rotation by comparing sector ETFs (XLK, XLF, XLV) performance vs SPY. Switch to outperforming sectors monthly or quarterly. This often beats buy-and-hold with similar risk.

Earnings Season

Earnings Volatility

Stocks move 5-15% on earnings (sometimes 20-30%). This creates both opportunity and risk for your backtest.

ScenarioStock ReactionTypical Move
Beat + Guidance RaiseGap up+5 to +15%
Beat + Guidance LowerMixed-2 to +3%
Meet ExpectationsFlat-2 to +2%
Miss EarningsGap down-8 to -20%

Earnings Plays

  • • Buy after good earnings (momentum)
  • • Sell before earnings (avoid volatility)
  • • Earnings calendar strategies
  • • Historical beat rate analysis

Earnings Risks

  • • Holding through earnings = gambling
  • • Options crushed by IV drop
  • • Stop losses hit by gaps
  • • After-hours illiquidity

Backtesting with Earnings

Include earnings dates in your backtest. Test two versions: 1) Exit before earnings, 2) Hold through earnings. The first usually has lower returns but much lower risk (Sharpe ratio often better).

Frequently Asked Questions

How do I backtest stock trading strategies?

To backtest stocks: 1) Use adjusted prices for accurate returns (accounts for dividends and splits), 2) Test during market hours (9:30am-4pm EST) for realistic fills, 3) Include corporate actions (splits, dividends, mergers), 4) Account for pattern day trader rules if under $25K, 5) Use at least 10 years of data covering bull/bear markets. Always backtest with realistic slippage and commissions.

Should I use adjusted or unadjusted stock prices?

Always use adjusted prices for backtesting. Adjusted prices account for dividends and stock splits to show true returns. Without adjustments, a 2:1 split looks like a -50% crash. Most data providers offer "adjusted close" which is the standard for backtesting. Use unadjusted prices only for analyzing actual entry/exit price levels.

How do I handle stock splits in backtesting?

Use split-adjusted data from your provider. Modern backtesting platforms automatically adjust historical prices for splits. For manual adjustments: multiply all prices before the split by the split ratio (e.g., 2:1 split means divide all prior prices by 2). This ensures chart continuity and accurate return calculations.

Related Guides

Backtest Stock Strategies Now

Test AAPL, MSFT, TSLA and 5000+ stocks with dividend adjustments, split handling, and earnings-aware backtesting. No coding required.