Files
docker-configs/backtest/fear_greed_algorithm.md
2025-07-18 00:00:01 -05:00

2.3 KiB
Executable File

CNN Fear & Greed Index Synthesis Algorithm

Original CNN Fear & Greed Components (7 total):

  1. Stock Price Momentum
  2. Stock Price Strength
  3. Stock Price Breadth
  4. Put/Call Options Ratio
  5. Junk Bond Demand
  6. Market Volatility (VIX)
  7. Safe Haven Demand

Our Implementation (5 components, excluding options):

1. Stock Price Momentum

  • Data Source: S&P 500 Index (^GSPC) from yfinance
  • Algorithm: 125-day moving average vs current price
  • Calculation: (Current Price - 125-day MA) / 125-day MA * 100
  • Normalization: Scale to 0-100 where negative = fear, positive = greed

2. Stock Price Strength

  • Data Source: NASDAQ 100 stocks new highs/lows
  • Algorithm: 52-week new highs vs new lows ratio
  • Calculation: Count stocks at 52w high / Total stocks * 100
  • Alternative: Use RSI of major indices if individual stock data unavailable

3. Stock Price Breadth

  • Data Source: NASDAQ 100 advancing vs declining stocks
  • Algorithm: Advancing vs declining stocks ratio
  • Calculation: Advancing stocks / Total stocks * 100
  • Implementation: Use daily performance of our 96 QQQ constituents

4. Junk Bond Demand

  • Data Source: HYG (High Yield Bond ETF) vs TLT (Treasury ETF)
  • Algorithm: High yield bonds vs safe treasuries performance
  • Calculation: (HYG 20-day return - TLT 20-day return) + offset
  • Normalization: Scale where negative = fear (flight to safety)

5. Safe Haven Demand

  • Data Source: GLD (Gold ETF) vs SPY (S&P 500 ETF)
  • Algorithm: Gold vs equity performance comparison
  • Calculation: (SPY 20-day return - GLD 20-day return) + offset
  • Normalization: Scale where negative = fear (flight to gold)

Final Synthesis Algorithm:

  1. Calculate each component (0-100 scale)
  2. Equal weight average: (Component1 + Component2 + Component3 + Component4 + Component5) / 5
  3. Final scale: 0=Extreme Fear, 25=Fear, 50=Neutral, 75=Greed, 100=Extreme Greed

Required Data Sources:

  • ^GSPC: S&P 500 Index (yfinance)
  • HYG: High Yield Bond ETF (yfinance)
  • TLT: 20+ Year Treasury ETF (yfinance)
  • GLD: Gold ETF (yfinance)
  • SPY: S&P 500 ETF (yfinance)
  • QQQ constituents: Individual stock data for breadth calculation

Implementation Timeline:

  • Historical synthesis: 2000-01-01 to present
  • Daily frequency matching CNN's publication schedule
  • Store in database table: fear_greed_index