Skip to content
yalt8826.com
← research/
research/market-momentum/final-year project · 2025–26IEEE-format manuscript · 9 pp124 commits

Market Momentum

“Detecting Institutional Accumulation in Indian Equities from Public Derivatives Data: A Five-Stage Study with Pre-Registered Controls”

Yashas Gowda N, Dhruva R, Sonu S, Yuvraj Singh · Dept. of AI & ML, BGS College of Engineering and Technology (VTU)

01 / overview

Five honest experiments, four “no”s, and one signal.

Big investors like mutual funds move stock prices, but they only reveal what they bought in quarterly filings that arrive after the quarter ends. We asked whether India's public, end-of-day futures and options data leaves a footprint of that buying while it is still happening.

Every experiment had its pass/fail rule written down before we saw its results, plus checks designed to catch us fooling ourselves. Four experiments came back negative, and the paper reports them in full. One survived: when a stock's futures trade unusually expensive relative to their fair price, mutual funds tend to be buying that stock that quarter, and foreign investors tend to be selling it.

212,441symbol-days analysed
217NSE stocks with futures & options
5 yearsAug 2021 – Aug 2026
18 / 19quarters where the surviving signal held
02 / the problem

The data that names stocks doesn't name investors, and the other way round.

The question a trader wants answered is simple: did institutions buy this stock today? Public data can't answer it directly. The exchange publishes one market-wide number per type of participant per day, and the filings that name individual stocks come out weeks later. There is no per-stock record of who bought what, so any detector can only be checked against proxies like price or volatility, which have their own causes.

has stocks, no namesFutures & options data

Prices, volume and open interest for every contract, every day.

217 stocks × 1,254 days = 212,441 rows
has names, no stocksParticipant open interest

How much foreign investors, domestic institutions, clients and prop desks hold, market-wide.

1,258 days × 5 = 6,290 rows
the gapNo ground truth

The paper calls the field “rich in plausible signals and poor in falsifiable ones”. Each of the five stages is a different way around this missing label.

03 / data

Six public sources, one 25 GB warehouse.

sourcewhat it givessize
NSE bhavcopyEnd-of-day price, volume and open interest for every futures and options contract. Two file formats (the exchange switched on 2024-07-08).1,255 daily files · 60.6M rows
NSE participant OIDaily positions of clients, FIIs, DIIs and prop desks, market-wide.6,290 rows
SEBI shareholding filingsQuarterly share counts held by FIIs, DIIs, mutual funds and insurers, per stock.19 quarters · ~200 stocks
Yahoo FinanceRaw and adjusted spot prices.217 stocks
FBIL MIFORInterest rates, used for option pricing and futures fair value.daily
Earnings calendarResult dates, used as a validation check.—

A bulk and block deals label was also tried and abandoned: the history is bot-blocked, and none of the 158 deals collected fell inside the stock universe.

04 / architecture

From raw exchange files to a live nowcast.

The pipeline runs as 16 orchestrated stages from a typed Python CLI. The heavy step prices every option contract every day, which takes three to five hours.

sources/public data
bhavcopyparticipant OISEBI filingsYahoo spotMIFOR ratesearnings
cache/preparse-bhavcopy
parquet, one row group per day~4× faster ETL
enrich/etl · 3–5 h
implied vol (bisection)Black–Scholes Greeks: Δ Γ Θ ν ρ vanna charmATM + 30/60/90-day IV, IV rankYang–Zhang realised volgamma-flip level
warehouse/PostgreSQL · 25 GB
option_metrics · 212,441 rows · full chains as JSONBml_dataset · 69 colsflow_features · 20 colsshareholdingparticipant_oi
research/five pre-registered stages
1 · flow prediction2 · regimes3 · attribution4 · lead-lag5 · accumulation
outputs/what it produces
forward nowcaststrangle backtester + daily screenFastAPI → JSON snapshot → React site
05 / methodology

Rules first, results second.

Each stage had to survive the same five checks. They exist to stop the most common ways a finance study fools itself.

pre-registration

Each stage's pass/fail rule was written down before its results were seen.

leakage tripwire

A model deliberately given tomorrow's answer must score perfectly. It scored AUC 1.0000, proving the test harness can detect leaks.

placebo

Shuffled labels must make the result disappear. In Stage 3, R² fell from 0.451 to about 0.

boring baseline

Every claim must beat the simplest explanation: the expiry calendar, price momentum, implied volatility, or the same-day relationship.

block bootstrap

Resampling in 21-day blocks, 2,000 times, so correlated days don't count as independent evidence.

The five stages

stagequestionresultverdict
1Can today's features predict tomorrow's market-wide institutional flow?The expiry calendar alone reaches AUC 0.720. The best feature model adds at most +0.002. Of 18 combinations, none was significantly better, and 4 were significantly worse.null
2Do stocks fall into lasting positioning regimes?A hidden Markov model on 161,717 symbol-days never found persistent states at any state count from 2 to 8. The best self-transition probability was 0.367, a mean stay of 1.6 days.negative
3Can the market-wide figure be split across individual stocks?Yes in form (R² 0.451), but it fails the earnings check: the shuffled placebo lines up with earnings more than the real model does.mixed
4Does a directional build in one instrument lead another?Futures direction leads options by 2–3 days (partial correlation +0.033, in 84% of stocks), but it is flat across activity levels. That points to market plumbing, not large investors.microstructure
5Did institutions accumulate this stock this quarter?Futures basis above cost of carry detects mutual-fund accumulation: partial rank IC +0.137, positive in 18 of 19 quarters.signal
0.000.010.020.030.04futures → options, lag 1: +0.0295options → futures, lag 1: +0.0031+0.0102 · 77%lag 1dfutures → options, lag 2: +0.0349options → futures, lag 2: +0.0009+0.0325 · 86%lag 2dfutures → options, lag 3: +0.0224options → futures, lag 3: +0.0021+0.0217 · 79%lag 3dfutures → options, lag 5: +0.0148options → futures, lag 5: +0.0025+0.0138 · 63%lag 5d
Stage 4. Green: futures direction → options direction. Pink: the reverse, which is near zero. White line: partial correlation after removing the same-day relationship, with the share of stocks where it holds.
06 / what happened

It started as a radar for hedging pressure.

The original Phase I proposal was a “Market Momentum Radar”: combine second-order option Greeks (vanna and charm) with an order-flow toxicity measure (VPIN) to predict institutional hedging pressure in real time. As the data came in, the question changed from predicting when institutions would move to detecting whether they had. Vanna and charm survived as part of the exposure layer. VPIN was never built.

  1. attempt 1Next-day price direction with XGBoost

    42 features plus 9 missing-data flags. Archived: the apparent edge came from the missing-data pattern, and it answered the wrong question.

  2. attempt 2Dealer gamma positioning (GEX)

    Failed three ways. The usual dealer-sign assumption is inverted for Indian single stocks: desks were net short calls on 99.9% of days.

  3. sep 2026Stages 1–4

    Null, negative, mixed and microstructure. Each reported at full resolution instead of being quietly dropped.

  4. sep 2026The label hunt

    Bulk and block deals failed as a label. Quarterly shareholding filings worked, which made Stage 5 possible.

  5. 5 sep 2026The first surviving result

    Stage 5 passed, and the forward nowcast was committed the same day.

  6. sep – nov 2026Side quest: can it be traded?

    A short-strangle volatility-selling backtester, with its own pre-registered gates. Covered in the results.

  7. oct 2026Audit, website, posters

    A pre-submission audit, a React site on Cloudflare, and A0 posters for the final review.

19 data defects, found and fixed

Most of the work was making the data trustworthy. A few of the worst:

implied volatilityFake IV values

Call IV stuck at 500 on 10.7% of rows, put IV at 0 on 23.6%. After the fix: 6 and 14 rows.

open interestShares, not contracts

Raw sums were off by about 2,158×. After the fix they match exchange totals within 0.02%.

cache75 of 222 stocks dropped

One stock's 103 rows were built entirely from other companies' option chains.

orderingDays joined to the wrong day

Row groups were out of date order, with 293 backward steps, silently misaligning data.

pricesRaw vs adjusted mix-up

Mixing split-adjusted and raw prices corrupted about 10% of IV rows.

filingsRenamed categories read as zero

Foreign holdings read as zero for every 2021 filing and half of 2022 until the old category names were mapped.

07 / final results

Futures basis sees mutual funds buying.

When a stock's futures trade above their cost-of-carry fair value, mutual funds tend to be accumulating that stock in the same quarter.

+0.137partial rank IC, momentum controlled
18 / 19quarters positive (p = 3.8×10⁻⁵)
[0.090, 0.180]95% bootstrap CI
+0.085IC using only the first 30 days of a quarter
-0.10.0+0.1+0.2+0.32021-Q4: +0.0312022-Q1: +0.10220222022-Q2: +0.0352022-Q3: +0.2682022-Q4: +0.0522023-Q1: +0.01020232023-Q2: -0.0972023-Q3: +0.1332023-Q4: +0.0972024-Q1: +0.05120242024-Q2: +0.1702024-Q3: +0.1522024-Q4: +0.2322025-Q1: +0.23720252025-Q2: +0.2262025-Q3: +0.2812025-Q4: +0.2432026-Q1: +0.21220262026-Q2: +0.176mean +0.137
Partial rank IC per quarter, 2021-Q4 to 2026-Q2. The only negative quarter is 2023-Q2. The effect also grew over time: +0.070 in the first half of the sample, +0.198 in the second (10 of 10 quarters).

Different investors, different footprints

Foreign investors (FII)+0.360-0.054Domestic institutions (DII)-0.122+0.090Mutual funds-0.064+0.137Insurers-0.098-0.035grey: price momentum · green: futures basis signal
Foreign investors chase price momentum (+0.360) and no futures-and-options feature survives that control. Mutual funds are where the basis signal lives. Foreign and mutual-fund accumulation were negatively correlated (−0.481) in all 19 quarters.
correction

The paper describes the signal as arriving about four months before disclosure, assuming filings take about six weeks. A later audit measured the actual filing lag: a median of 17 days, never more than 21. The signal still arrives before the filings, but the head start is shorter than the paper states.

Can it be traded? No.

Knowing mutual funds are buying did not translate into returns: the signal predicts the next quarter's return in only 11 of 19 quarters. A separate short-strangle backtester tested whether any research feature helps an options-selling strategy.

gatequestionresult
0Does the base strategy make money at all?pass 7,706 trades over 61 months, mean +4.56% on margin, 67.1% win rate, positive in 6 of 6 years. But the edge decays from +8.30% (2021) to +1.09% (2025).
1Do research features help as filters?fail None beat chance. The basis signal actually hurt, by −3.61 percentage points.
—Does a stop-loss help?no Every stop level made results worse.
3Forward validation on live monthsin progress 1 of 6 months scored (October 2026: −5.17%). Verdict expected around March 2027.

The nowcast

The surviving signal runs forward on live data, ranking stocks by likely mutual-fund accumulation before the filings exist. Each run is committed with a date when it can be checked against the real filings, so it is the study's first true out-of-sample test.

08 / limitations

What this does not show.

  • A partial correlation around 0.14–0.17 implies a classification ceiling of roughly AUC 0.55–0.60. It is a detector, not a trading edge.
  • Only 19 quarterly periods, and about 120 combinations were examined before the robustness checks were registered.
  • No true out-of-sample test yet. The nowcast will be the first.
  • The basis feature is missing during expiry weeks, about 36% of dates.
  • One market (NSE) and one period (2021–26), during a time of strong retail growth.