Data to 5 October 2026

Pre-registered research

Market mood (fear and greed; bull and bear): pre-registered specification

Written 2026-10-02, before any result below was computed. Committed to git before the first run; the commit hash is the freeze. Any later change to a component, window, threshold, sample or test is logged at the bottom with its date and reason, and the original result is kept. Brief: docs/briefs/barometers.md.

What was learnt from the benchmark

The Aftermarket Report’s Fear & Greed (AMR, FEAR_GREED_RISK_PREREGISTRATION.md and _RESULTS.md) was tested as a return forecast (12 versions, none survived) and as a risk forecast (three hypotheses, all failed: fearful readings arrive in rough months, and the score added nothing beyond last month’s volatility or the VIX). Its sample was 2017–2024, about 1,900 sessions. What we change:

  1. One job per index, tested as that job. Describing the market is not a forecast and is not tested as one.
  2. Longer samples. Components are built on their longest clean history (most from 2004–2008), so the tests cover 2008, 2011, 2015–16, 2020 and 2024–26.
  3. Harder baselines. Any risk claim must beat trailing volatility at three horizons, the US VIX and the 200-day rule together.
  4. Tails tested separately from the whole range.
  5. Two engines, two ideas. The design reading of the reference indices (below) is that “fear and greed” (CNN) is built mostly from the price tape, while “bull and bear” (BofA) is built mostly from positioning and flows, and is used only at its extremes. They are different questions, so they get different engines and pages, sharing one framework.

Reference indices (methods as their publishers describe them)

Shared framework

Fear and greed (the tape): /fear-and-greed/

Job: describe the state of the Indian equity tape in one number whose parts are all visible. Secondary job, tested: forecast risk. Score 0–100.

#ComponentMeasure (Nifty 500 total return unless stated)High meansFrom
1MomentumClose against its 125-session average, %Greed1995
2Price strength(52-week highs − 52-week lows) / universe, liquid NSE universeGreed2004
3ParticipationShare of the liquid universe above its 50-day averageGreed2004
4Volatility20-session realised volatility / 252-session realised volatility (sign reversed)Fear when high, so it enters as 1 − percentile1995
5Safe-haven demand20-session return of Nifty 500 minus that of the NSE 5-year G-sec index, pointsGreed2001
6Risk appetite20-session return of Nifty Smallcap 250 minus Nifty 100, pointsGreed2005

Bull and bear (positioning and flows): /bull-bear/

Job: flag extremes only. Score 0–10 (mean component percentile × 10). The whole range is shown but only its tails are tested.

#ComponentMeasureHigh meansFrom
1Fund flowsEquity-oriented mutual fund net inflows, last 3 months, / equity AUM 3 months earlier (AMFI via IDH, CMMFNIFTEQ11M, CMMFAUMTEQ11M)Bullish1999
2Futures positioningFII long share of index futures open interest (NSE participant OI)Bullish2012
3LeverageChange over 126 sessions in the MTF book as a share of market value (bps)Bullish2017-06 (the regime change in leverage.md)
4New issuesIPO heat (ipo/heat: listings count and median listing gain, 12-month window), completed monthsBullish2016
5Index breadthShare of NSE indices above their 200-day average (BofA uses global index breadth)Bullish1995

Targets and baselines (shared by every risk test, also used by the trend barometer)

On session t, for the Nifty 500 total-return index:

Hypotheses: fear and greed (family of 5; Bonferroni α = 0.05/5 = 0.01)

Two-sided for H1–H3 because both stories exist (fear clusters with turbulence; greed is complacency), and no sign is assumed.

Hypotheses: bull and bear (family of 3; α = 0.05/3 = 0.0167)

Inference and pass bars

What each outcome lets the page say

“What happened next” (descriptive, every reading band)

For each band: sessions, independent periods (greedy non-overlapping windows of the horizon), median and inter-quartile range of forward 21, 63 and 252-session Nifty 500 total returns, hit rate (share positive), and the median worst fall within the window. Shown under every reading with the sentence that most bands are noise, wherever the bands’ ranges overlap.

Not tested, stated in advance

No other horizon, threshold, index, component subset, weighting or model form. Anything tried later is labelled exploratory. A daily log of the scores starts with the first publication; the live verdict comes after 250 sessions against pass bar (3).

Results log

Implementation notes, 2026-10-02, written before the first run

2026-10-02: first run (data to 1 Oct 2026)

Ran as specified; no rule changed after results were seen.

Fear and greed (tested sample 2008-05-08 to the last full forward window, 4,538 sessions):

Bull and bear (published from 2015-01; zones defined from 2018):

Reading: the tape index does not forecast risk beyond volatility, the VIX and the 200-day rule, as AMR found on a shorter sample. Its one informative region is extreme fear, which has been followed by better-than-usual three-month returns in both halves of the sample. Extreme greed has not been followed by worse ones.

2026-10-03: audit notes (register rows R7–R10, BT3); no result changed

This is docs/research/market_mood_spec.md. The specification was committed before any result was computed; changes after that are logged in it with dates and reasons.