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.
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.
Prices, volume and open interest for every contract, every day.
217 stocks × 1,254 days = 212,441 rowsHow much foreign investors, domestic institutions, clients and prop desks hold, market-wide.
1,258 days × 5 = 6,290 rowsThe 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.
Six public sources, one 25 GB warehouse.
| source | what it gives | size |
|---|---|---|
| NSE bhavcopy | End-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 OI | Daily positions of clients, FIIs, DIIs and prop desks, market-wide. | 6,290 rows |
| SEBI shareholding filings | Quarterly share counts held by FIIs, DIIs, mutual funds and insurers, per stock. | 19 quarters · ~200 stocks |
| Yahoo Finance | Raw and adjusted spot prices. | 217 stocks |
| FBIL MIFOR | Interest rates, used for option pricing and futures fair value. | daily |
| Earnings calendar | Result 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.
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.
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.
Each stage's pass/fail rule was written down before its results were seen.
A model deliberately given tomorrow's answer must score perfectly. It scored AUC 1.0000, proving the test harness can detect leaks.
Shuffled labels must make the result disappear. In Stage 3, R² fell from 0.451 to about 0.
Every claim must beat the simplest explanation: the expiry calendar, price momentum, implied volatility, or the same-day relationship.
Resampling in 21-day blocks, 2,000 times, so correlated days don't count as independent evidence.
The five stages
| stage | question | result | verdict |
|---|---|---|---|
| 1 | Can 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 |
| 2 | Do 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 |
| 3 | Can 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 |
| 4 | Does 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 |
| 5 | Did 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 |
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.
- 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.
- 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.
- sep 2026Stages 1–4
Null, negative, mixed and microstructure. Each reported at full resolution instead of being quietly dropped.
- sep 2026The label hunt
Bulk and block deals failed as a label. Quarterly shareholding filings worked, which made Stage 5 possible.
- 5 sep 2026The first surviving result
Stage 5 passed, and the forward nowcast was committed the same day.
- sep – nov 2026Side quest: can it be traded?
A short-strangle volatility-selling backtester, with its own pre-registered gates. Covered in the results.
- 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:
Call IV stuck at 500 on 10.7% of rows, put IV at 0 on 23.6%. After the fix: 6 and 14 rows.
Raw sums were off by about 2,158×. After the fix they match exchange totals within 0.02%.
One stock's 103 rows were built entirely from other companies' option chains.
Row groups were out of date order, with 293 backward steps, silently misaligning data.
Mixing split-adjusted and raw prices corrupted about 10% of IV rows.
Foreign holdings read as zero for every 2021 filing and half of 2022 until the old category names were mapped.
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.
Different investors, different footprints
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.
| gate | question | result |
|---|---|---|
| 0 | Does 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). |
| 1 | Do 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. |
| 3 | Forward validation on live months | in 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.
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.