CMB Research GitHub ↗
Quantitative finance · Indian equities · 2026

What does persistent stock weakness actually look like?

The project starts from a familiar momentum intuition: if a stock keeps underperforming both the market and its own sector, perhaps the path of that weakness contains information about what happens next. The strongest early result was invalid, the surviving holdout relationship is small, and two intuitive rebound mechanisms have now failed to explain it.

400-stock holdout passedPhase 12A mechanisms not supportedFuture-time test still pendingNot a short signal
Frozen universe500current Nifty 500 stocks
Discovery sample100used to find the candidate
Holdout sample400unused while finding the candidate
Validation observations1,386independent Day-20 landmarks
Validation rank correlation−0.061small, negative, sector-relative
Phase 12A mechanisms0 / 2predeclared mechanisms supported
What survived

A small relationship held up in the 400-stock holdout.

Among stocks whose weakness episode was still running on Day 20, larger rebounds from the recent stock-price low tended to be followed by slightly worse performance versus sector peers over the next 40 market sessions. The relationship was much smaller in validation than it looked in discovery.

The setup in plain English

A weakness episode is a run of consecutive sessions in which a stock is weak relative to both Nifty 50 and its sector. If that episode survives to Day 20, the rebound measures how far the stock price has bounced from its lowest price in the previous 20 sessions. Future performance is then measured against sector peers over the next 40 sessions.

Step 1Find persistent weakness

The stock remains weak versus both Nifty and its sector through Day 20.

Step 2Measure the rebound

Rebound size is the distance from the lowest stock price in the trailing 20 sessions to the Day-20 price.

Step 3Watch the next 40 sessions

Negative sector-relative return means the stock lagged its sector over the following 40 market sessions.

One statistic appears repeatedly below: Spearman ρ. It is a rank correlation. A negative value means larger rebounds tend to line up with worse later outcomes. It is not a percentage return. A value of −0.061 does not mean the stock falls 6.1%.

Did the relationship survive on stocks that were not used to find it?

The candidate was found on 100 stocks. The specification was then frozen and tested on the other 400 stocks from the same Nifty 500 snapshot.

effect shrank about 68%
The bars show Spearman rank correlation. More negative means larger Day-20 rebounds were more consistently associated with worse later sector-relative performance.
How I read itThe direction survived, but the magnitude did not. The correlation moved from about −0.188 in discovery to −0.061 in the holdout.
Why I careThe shrinkage is part of the result. The discovery sample made the relationship look much stronger than it was on unused stocks.

Why did Day 20 become the candidate?

This chart is discovery only. Fixed Day 5, Day 10, and Day 20 landmarks were tested because each could have been observed in real time.

discovery sample only
The outcome is the same in all three bars: sector-relative performance over the following 40 sessions. Day 20 stood out in the discovery sample.
How I read itDay 5 and Day 10 were weak relationships. Day 20 was much more negative, which made it the candidate worth testing again.
What this does not proveDay 20 was selected because it looked stronger in discovery. The separate 400-stock holdout is what matters.

What does the holdout result look like in actual return terms?

The 1,386 validation observations are split into four groups based only on rebound size. Q1 has the smallest rebounds. Q4 has the largest.

descriptive, not a cutoff
Each bar is the median return of the stock relative to its sector over the next 40 market sessions.
How I read itMedian sector-relative performance weakens from about −0.68% in Q1 to −2.33% in Q4.
What this does not establishQ4 is not a short rule. The quartiles make a small rank relationship easier to see; they are not an optimized entry threshold.

Does the negative sign survive different ways of resampling the data?

Rows from the same stock, quarter, or sector are not fully independent, so the holdout is resampled in clusters.

2,000 bootstrap draws
The dot is the typical resampled correlation. The horizontal line is the 95% interval. Zero means no rank relationship.
How I read itAll three intervals remain below zero, although the calendar-quarter interval nearly touches zero.
Why all three are shownStock, time, and sector clustering stress different forms of dependence.
The main limit of the result: the effect is mainly relative to sector peers. It does not show that a stock with a larger rebound is likely to fall in absolute price.

What exactly underperformed after a larger rebound?

The same rebound ranking is compared with three future outcomes to distinguish absolute stock direction from Nifty-relative and sector-relative performance.

validation sample
Only the sector-relative outcome has the same modest negative relationship. Nifty-relative and absolute-stock outcomes are close to zero.
How I read itThe candidate is better described as a sector-relative lag relationship than a directional short signal.
What the evidence does not showIt does not show that the stock itself will necessarily fall, and it does not establish trading profitability after costs.
Phase 12A · mechanism tests

Two intuitive explanations did not hold up.

Phase 12A asked why some rebounds inside persistent weakness appear to be followed by continued sector-relative lag. Two mechanisms were written down before the results were viewed: peer confirmation and rebound concentration. Neither was supported strongly enough to carry forward as a prospective mechanism.

A useful change in perspective

The original Phase 10 sample contained 1,386 independent Day-20 observations. Rebound quality only makes sense when a positive rebound actually occurred before Day 20, leaving 1,128 observations across 345 stocks. Inside that positive-rebound subset, the original rebound-to-future-sector relationship weakened from ρ = −0.061 to about ρ = −0.034. That suggests the surviving Phase 10 result is not simply a story about “large rebounds being bad.”

H1 · Peer confirmation

Hypothesis: a rebound supported by more rising sector peers should look more like genuine recovery.

not supported
01
Expected interaction

Positive. More peer confirmation was expected to weaken the negative rebound relationship.

02
Observed interaction

+0.030 with ticker-clustered SE 0.103. The sign matched, but the estimate was small and imprecise.

03
Bootstrap result

Ticker-cluster 95% interval: −0.166 to +0.232. Calendar-quarter interval: −0.156 to +0.229.

04
Conclusion

Sector breadth may be descriptively interesting, but it did not provide a stable explanation of the Day-20 relationship.

H3 · Rebound concentration

Hypothesis: a rebound dominated by one large positive day should be more fragile.

not supported
01
Expected interaction

Negative. More concentrated rebounds were expected to strengthen later sector-relative weakness.

02
Observed interaction

+0.080 with ticker-clustered SE 0.113. The sign was opposite to the predeclared hypothesis.

03
Bootstrap result

Ticker-cluster median +0.085 and quarter-cluster median +0.090. Most draws did not have the expected negative sign.

04
Conclusion

One-day concentration does not appear to explain why the larger-rebound observations later lag their sectors.

An exploratory clue, not a new confirmed result: rebound concentration was very strongly related to how recently the stock had made its trough. Concentration versus rebound-window length had Spearman ρ ≈ −0.85. A post-result diagnostic suggested trough age carried more information about whether the weakness episode itself remained active than concentration did. Because this was noticed after viewing Phase 12A, it is being kept exploratory rather than promoted to a validated finding.

How I read Phase 12A: the two intuitive price-path explanations failed, which is useful. The next mechanism test moves outside the stock-price path and asks whether derivatives positioning contains information that price-only features missed.

The failed test

A promising result turned out to be created by hindsight.

The early experiment searched forward for the largest rebound inside a 20-session window and then measured returns after that selected peak. That historical “entry” could only be known after seeing the future path.

How the look-ahead problem revealed itself

Cases are grouped by where the retrospectively selected maximum rebound occurred inside the future 20-session search window.

rejected analysis
When the chosen maximum occurred early, the subsequent return looked extremely negative. When the chosen maximum occurred on Day 20, the apparent deterioration disappeared.
What convinced meThe early selected peaks mechanically left room for prices to move down from a future maximum.
What changed nextThe result was rejected and the experiment moved to fixed landmarks that could have been known at the time.
01
The result looked unusually good

Retrospective rebound peaks appeared to be followed by sharp deterioration.

02
The anchor was audited

The peak was selected using the next 20 sessions, which meant the entry used future information.

03
The result was rejected

It was removed from the candidate set rather than retained as an alpha result with a caveat.

04
The experiment was rebuilt

Day 5, Day 10, and Day 20 landmarks use only information available by the landmark date.

Episode definition

Consecutive weak days are grouped into episodes to avoid repeated counting.

A weakness episode continues while the stock remains weak relative to both Nifty and its sector. Once that condition breaks, the episode ends.

How long do weakness episodes last?

9,656 discovery episodes

Many episodes are short. The episode framework prevents several adjacent weak days from being treated as several independent experiments.

Validation explorer

Sector results show how much the relationship varies across industries.

The locked validation result is the full 400-stock holdout. Sector breakdowns are secondary and can be noisy because some sectors contain only a few dozen observations.

01
Rank correlation

Spearman ρ below zero means larger Day-20 rebounds tend to rank with worse later sector-relative outcomes.

02
Rebound quartiles

Q1 contains the smallest rebounds and Q4 the largest.

03
Sample size matters

The full holdout has 1,386 observations. A single sector can have only a few dozen.

Selected rank correlation−0.061full holdout
Observations1,386352 stocks
Median future relative return—next 40 sessions vs sector
How to use this: select a sector to compare its descriptive relationship with the full locked holdout.

How much does the rank relationship vary by sector?

Each bar is a within-sector Spearman rank correlation. The dotted vertical line is the overall 400-stock holdout result, Spearman ρ = −0.061. It is a reference point, not a cutoff or confidence interval.

diagnostic, not a new test

Large-looking sector bars can come from small samples. No subgroup replaces or rescues the predeclared full-holdout test.

Rebound quartiles inside the selected sector

Q1 has the smallest rebounds; Q4 the largest.

within-sector view

Choose a sector to inspect the gradient.

Technical read

Why the sector view is secondary

Sector-specific estimates are post-validation descriptive decompositions.

ReboundRise from the lowest stock-price level in the trailing 20 sessions ending on Day 20.
40D sector-relative returnNext-40-session performance versus the leave-one-out sector-peer benchmark.
Spearman ρRank-based association rather than a fixed linear effect.
Method

The design reduces hindsight and repeated counting.

The full notebook trail and working paper are in the repository. The points below are the design choices that matter most for interpreting the result.

01

Relative benchmarks

Each stock is compared with Nifty 50 and a leave-one-out equal-weight sector peer benchmark.

02

Separate features

Magnitude, persistence, concentration, and related features are not collapsed into one optimized score.

03

Episodes

Consecutive weak-both sessions form one episode instead of repeated stock-day observations.

04

Prospective anchors

Predictor history ends at the fixed landmark; future outcomes begin strictly at t+1.

05

Dependence control

Primary same-stock episode starts are spaced by more than 60 market sessions.

06

Locked holdout

The Day-20 predictor, 40-session sector-relative outcome, holdout universe, and pass criteria were frozen before validation.

Known limitation: historical analysis uses current Nifty 500 membership, creating current-membership / survivorship bias.
Next evidence

Phase 12B moves from price shape to derivatives positioning.

The next predeclared mechanism uses aggregate open interest across all active NSE single-stock futures expiries. The question is whether a positive rebound accompanied by increasing outstanding futures positions behaves differently from a rebound that occurs while aggregate futures open interest is falling. Price-up plus OI-down is treated only as a position-reduction proxy, not proof of short covering.

Historical mechanism test

H2 is frozen before results · future-time validation remains separate