Liquidity & Technicals

Liquidity & Technicals

IOC trades like a policy-administered utility, not a chart-readable refiner. Hurst sits on top of the random-walk line, multi-factor regression explains only 17% of daily variance with ₹2L Cr of stock-specific noise (idiosyncratic alpha −24.8% annualized), and the post-bonus-adjusted price has spent 12 years inside a ₹65–₹190 band. The page is read through that lens: every pattern, every "stage", every breakout has to clear the bar that the data says technicals are mostly noise here.

Today: ₹142.20, 20.3% of the way from 52w low to high, Stage 4 with a fresh death cross from yesterday (29 Apr 2026), and a forward 90-day distribution that is essentially symmetric (P(touch +10%) = 55.5%, P(touch −10%) = 48.4%). The actionable read is wait, don't lead — invalidate above ₹160 (above 200d + base high), invalidate below ₹130 (52w low + double-bottom support).


1. Statistical character — does TA even apply to this stock?

Hurst exponent (R/S, 21yr)

0.53

Verdict: random walk — TA is largely noise; anchor on fundamentals + factor exposure

No Results

Autocorrelation profile (n=5,249 daily returns): lag-1 = +0.0445 significant (CI ±0.027); lag-5 = −0.003 not significant; lag-21 = −0.004 not significant; lag-63 = +0.012 not significant.

H = 0.53 sits one standard-error above 0.5; VR(5) marginally rejects random walk in the trending direction (p = 0.019); VR(21) does not reject; only the 1-day autocorrelation crosses the significance band. Synthesis: IOC is essentially a random walk with a thin layer of 1-day momentum — chart-based trading edges are weak and short-lived. Read every pattern below as suggestive, not load-bearing; the fundamental + factor view should dominate.


2. Multi-factor decomposition — what actually drives the price?

Primary driver

energy_idx

Single-factor R² (%)

17.2

Annualized alpha (%)

-24.8
No Results
Loading...

The single most important sentence on this page: 17% of IOC's daily variance is explained by NIFTY Energy alone, the multi-factor model adds essentially nothing beyond that, and the stock-specific residual is a −24.8% annualized alpha. Crude beta is statistically zero (R² = 0.02%) — the market does not price IOC like a refiner; it prices IOC like a sub-component of the index. Energy-index beta has whipped from 0.30 (post-Ukraine, when policy decoupled OMCs from upstream peers) back to ~1.05 in the last 18 months. Forecasting NIFTY Energy + INR + the policy gap to BPCL gets you most of the answer; chart pattern work captures the remaining noise.


3. Conditional return tables — base rate for today's regime

No Results

From this regime historically, the median 90-day forward return has been +1.3% with a 56.6% hit rate above zero; p10 = −17.2%, p90 = +21.9%. The base case for the next 90 days is mildly positive drift with very wide bands — almost a 50/50 coin flip with slight upward skew. Stage 4 + above-average vol historically recovers, it doesn't keep cratering — that's the contrarian read. But the bands are so wide that "wait for confirmation" is the only honest implementation.


4. Forward distribution — explicit price probabilities

Loading...
No Results

The vol-conditional bootstrap implies a 30% chance the stock revisits ₹120.87 in the next 90 days, and a 28% chance it touches ₹170.64 to the upside. Expected 90d return = +0.95%, P(positive) = 52.3%. The cone is roughly symmetric — the bootstrap does not see directional edge. The most actionable single number: P(touch the 52w low at ~₹130 in 90d) ≈ 60% (interpolating between the −5% and −10% touch probs); P(breaking ₹189 in 90d) ≈ 12% (extrapolating beyond +20% touch prob). Translation: another test of the lows is the modal scenario; a fresh 52w high is a tail event.


5. Position sizing — what an actual PM would do with this

Annualized return (lifetime, %)

-6.2

Annualized vol (lifetime, %)

43.5

Half-Kelly fraction

-0.32

VaR(95%, 1d) (%)

4.53

CVaR(95%, 1d) (%)

5.61
No Results

For a ₹500 Cr fund running 1% daily-σ risk per stock, the max IOC position is ₹182 Cr — 36.5% of the fund. Daily vol of 2.7% means a typical 1-σ move is ₹4.9 Cr against this position. CVaR(95%) of 5.6% means the average tail-day loss when it does break is ₹10.2 Cr — about 2× the 1-σ move. The 73% gross-position number at 2% risk is theoretical only — the practical constraint is concentration policy and ADV (see §17), not vol.


6. Cover — the setup at a glance

Spot (₹)

142.20

2.86 1y return (%)

52w position (%)

20.3

Distance from 200d (30d-σ)

-0.72

Weinstein stage

4

30d vol percentile (lifetime)

71.9

7. The story since IPO

Loading...

Total return since 2005 (%, unadj.)

-72.4

CAGR (%, unadj.)

-6.0

Lifetime max DD (%, unadj.)

91.7

Sharpe (lifetime)

-0.04

The regime detector counts 22 bull and 23 bear segments over 21 years — almost a coin flip on a 6-12 month horizon. The dominant cycle is "ramp into bonus issue, then drop, then sideways for 4-7 years inside a horizontal corridor". The 2024 push to ₹190 was the strongest bull leg (+65% Feb-25 → Feb-26) since the 2017 bonus-era top, and we are now 24% into giving it back.


8. Drawdown profile — what bad looks like for THIS stock

Current drawdown vs unadjusted ATH (%)

-82.1

The −82% number is almost entirely a bonus-issue artifact, not a real value loss; the ATH of ₹794 (Dec-2007) is pre-three-bonuses. The investible question is "how far below the post-bonus highs are we", and the answer is the 24% drawdown from the Feb-26 peak of ₹187.55 — that's what the next table actually captures.

No Results
Loading...

The detector found only 8 lifetime drawdowns ≥5%, with median depth of 15% and median recovery of 12 days — a function of the unadjusted series compressing many smaller moves between bonus issues. Realistic post-2018 drawdowns include: 2018 (−72% calendar-year max), 2020 COVID (−44%), 2022 Russia/oil (−51%), 2024-25 (−41% Feb-24 → Feb-25). That's the playbook pattern: roughly one ~40-50% drawdown every 2-3 years.


9. Volatility cone — calm or stressed?

Loading...

Today's 30d vol = 34.6%, p72 of own history (lifetime p10/p50/p90 = 19% / 29% / 46%). Stress-elevated but well within the historical envelope; nothing like 2008 / 2018 / 2020 spikes. From regime §3, Stage 4 with vol in this bucket has historically produced +1.3% median 90d return — i.e., this is the regime where Stage 4 ends, not where Stage 4 begins.


10. Where we are now — multi-MA + setup card

Loading...
No Results

The price action since Mar 2026 is a textbook Stage-4 entry: peak ₹187.55 (27-Feb), broke the 50d in early March, lost the 200d on 17-Mar, and the 50d crossed below 200d yesterday. RSI hasn't yet pinged oversold (42.3 vs the conventional <30 trigger), so there is room for further drift before mean-reversion buyers step in. MACD histogram has just turned positive — the first sign of bearish-momentum exhaustion.


11. Patterns the algorithm flagged

The full-history detector counted 220 patterns. Filtering for patterns with concrete structure and dates within the last 12 months:

No Results

No cup-and-handle. The cleanest near-term structure is the active double bottom at ~₹135 — Aug-25 low ₹136.65 + Apr-26 low ₹134.10, 1.9% apart, with an intervening peak of ₹187.55. If ₹134 holds on the next test, the pattern projects a measured move of roughly ~₹50 to the upside (≈ ₹185). If ₹130 (the 52w low and broader base) breaks, the pattern is invalidated and the next structural level is the COVID-era ₹113 anchor.


12. Earnings reaction footprint

No Results

Drift asymmetry is the tradable insight: median 1-month return after a positive next-day reaction is +1.24%; after a negative next-day reaction it's −3.58%. Translation — gap-down on earnings tends to keep going (about 3× the magnitude of gap-up follow-through). Q4/FY26 print is expected ~21-May-26 (per the Catalysts tab); given the stock is already drifting and FY26 PAT is consensus-down ~50%, an earnings-day gap down would carry meaningful weight in the 1m drift base rate.


13. Risk metrics — institutional benchmarks

No Results

Lifetime risk metrics are skewed by 2018 + 2016 unadjusted bonus drops. The factor-decomposition framing in §2 is more honest for forward sizing: 17% of variance from NIFTY Energy + 24.8% annualized negative alpha. Up/down capture and beta vs the INDA benchmark were not computed because the overlapping clean history was insufficient — that's a real data limitation, not an analytical view.


14. Year-by-year + holding-period grid

No Results

Best year: 2007 (+77%). Worst: 2018 (−65%, partly bonus-distorted). The 12-year batting average from 2014 onward is ~3 winning years for every 4 losing-or-flat years — IOC has never strung together 3 consecutive positive Sharpes. 2023 (Sharpe 2.4) was the cleanest year of the last decade and the only year with a single-digit max DD; it was followed by Sharpe 0.31 and 0.93 — i.e., good years don't compound here.

No Results

Buyers from 2017-2020 are still flat-to-down on a CAGR basis (zero-to-low single digits). Buyers from 2021-23 made meaningful money but are giving it back in 2026 (the YTD CAGR for a 2026 buyer is −39%, capturing the Feb-26 → Apr-26 leg). The honest read: IOC rewards entry timing more than holding period — a feature consistent with the Hurst random-walk verdict.


15. Seasonality

Loading...

Best month: May (+0.19% avg daily, win rate 51.2%). Worst month: October (−0.30% avg daily, win rate 48.4%). Q1 of the calendar (Jan-Mar) is the weakest stretch for IOC — March is the worst single month outside of October. Useful as a tilt, not as a thesis: with Hurst ≈ 0.5 the seasonal effect is small relative to single-event noise (Q4 results, OPEC, LPG bailouts).


16. Volume profile + anchored VWAP — where the action sits

No Results

Point of control = ₹87.65 mid (₹80–95 bucket, 7.7% of all-time volume). That's the gravitational center — IOC has spent more time/volume there than at any other price. Today at ₹142, we're sitting just above HVN-3 (₹124-139, 5.9% of vol) which is now the next major support if the double bottom at ₹134 fails.

No Results

Anchored VWAPs split cleanly: bearish vs the long arc (since IPO and ATH, both bonus-distorted), bullish vs COVID and 5y, bearish vs 1y (spot is 7.9% below the 1y VWAP of ₹154). The 1y VWAP at ₹154.32 is the swing pivot for tactical traders — reclaim it and the 1y picture inverts.


17. Liquidity — execution capacity

ADV(20) shares (lakh)

1.64

ADV(20) value (₹ Cr)

23.29

ADV(60) shares (lakh)

1.61

ADV % of mcap

-

Annual turnover (%)

-
No Results

Median 60-day intraday range = 2.51% — slightly above the 2% friction threshold, consistent with Stage 4 + above-average vol. Real-world execution: a pension/SWF stake of 0.1% of mcap (~₹200 Cr) is a couple-week build at the conservative ADV; at true NSE+BSE volume it's a single-day fill. The honest read for a ₹500–₹5,000 Cr fund: liquidity is not the binding constraint here — the binding constraint is conviction in the random-walk + −24.8% alpha character of this name.


18. India microstructure

The data layer attempted NSE-direct retrieval (block deals, bulk deals, delivery, F&O) plus Screener for shareholding plus a multi-query news enrichment fallback (412 articles across 9 categories). NSE-direct was blocked from this run for block deals, bulk deals, delivery, and F&O OI/PCR (block_deals.count = 0, bulk_deals.count = 0, delivery.count = 0, summary.fno_in_segment = false). What we do have is Screener-direct shareholding, plus rich news provenance.

Delivery percentage — not available this run

delivery.count = 0 from NSE-direct; the news_enrichment.by_category.delivery_data results returned 33 articles but none with specific delivery-% numbers. Action: refer to NSE bhavcopy / Trendlyne directly for daily delivery-% trends.

Block & bulk deals — provenance only

NSE-direct returned zero rows in the trailing 12 months. The 55 block-deal + 47 bulk-deal news enrichment hits all point to aggregator landing pages (Trendlyne, MoneyControl) rather than dated specific deals — i.e., no headline-grabbing institutional crosses in the trailing 12m. The aggregator URL for verification: Trendlyne IOC bulk/block deals.

F&O — flagged as cash-only by this dataset

summary.fno_in_segment = false is inconsistent with reality (IOC is in the NSE F&O segment); this likely reflects the same NSE-direct block. 60 F&O-activity news hits were captured but none extracted into structured OI/PCR rows. Action: for live F&O positioning (PCR, max-pain, OI buildup), check NSE F&O-bhavcopy or Trendlyne directly.

Shareholding pattern (Mar 2026 — Screener-direct)

No Results

Promoter pledge is null in both Screener-direct and the news-enrichment promoter-activity feed — the standard "GoI pledges nothing" pattern for PSUs. Promoter (GoI direct) holding is unchanged at 51.50% over four-year history; combined with the 19.57% "Other Government" category the public float is just 28.9% of cap.

FII / DII flow — the cleanest signal in the section

FIIs added 245 bps in 12 months (7.39% Mar-25 → 9.84% Mar-26). DIIs reduced 87 bps. Public retail count fell from 31.9 lakh to 27.9 lakh investors — a −12.5% retail capitulation through the same 12-month window where the stock made and lost a fresh post-2018 high. Net institutional flow: foreign + institutional accumulation, retail distribution. The provenance landing page: Trendlyne IOC shareholding history.

Index events + corporate actions — the structural anchor

The standout index event in the file: IOC was dropped from NIFTY 50 in March 2022 (Apollo Hospitals replaced it). That's a permanent passive-flow drag — every quarterly NIFTY rebal since then has had no IOC bid. Corporate-action news flow surfaced multiple FY25/FY26 interim dividends consistent with the 4.92% trailing yield.

One-paragraph India read

Institutional ownership is constructive and contradictory to the technical setup: FIIs accumulated 245 bps over 12 months while retail capitulated 12.5%, and promoter (GoI) holding has been a steady 51.50% for four years with zero pledge. F&O and delivery direct data wasn't accessible this run — those are the gaps to fill from NSE/Trendlyne direct. The structural anchor that doesn't show up on any short-horizon chart is the 2022 NIFTY 50 demotion — it removed the passive-flow tailwind permanently, which is part of why the post-2022 base sits structurally lower than the 2014-2017 corridor.

Sources: Screener shareholding (direct), 412 news enrichment articles via SearXNG/Serper across 9 categories (block deals 55, bulk deals 47, F&O 60, promoter 53, FII/DII 41, index events 40, corp actions 43, delivery 33, analyst actions 40). NSE direct API: blocked from this run for block/bulk/delivery/F&O.


19. Stance + invalidation

No Results

Net score: −1. Three negatives (trend, vol regime, light data on volume), three neutrals (momentum, drawdown context, structure), one positive (FII flow). The technical surface points lower; the institutional flow points higher; the statistical character (Hurst, factor R²) says neither dominates.

Stance — Neutral / wait, 3-6 month horizon. The base case from regime + forward distribution is mildly positive 90d drift inside very wide bands — not actionable for a directional trade. The pattern setup (active double bottom at ₹134-137) is the cleanest near-term technical, but it failed once already in March-April; reclaiming the 1y VWAP at ₹154 would change the read. This is a "react to ₹130 break or ₹160 reclaim" situation, not a "lead the next move" situation.

Invalidation levels:

  • Bullish above ₹160 — clears the 200d (₹155.58) + 50d (₹154.62) + 1y VWAP (₹154.32) + reclaims the bottom of the broken Oct-Feb base (₹155.95). All four anchors stack within a ₹1.40 band; a daily close above ₹160 with volume is the cleanest tactical confirmation.
  • Bearish below ₹130 — breaks the 52w low (₹130.30), invalidates the active double bottom (₹134.10 trough), and opens a tape-only path to the next HVN at ₹124 mid (5.9% of lifetime volume). Daily close below ₹130 forces the bear case.

Implementation: Liquidity is not the constraint. Action — wait. Build only on a confirmed bounce off ₹130-134 with reclaim of ₹154; trim into ₹185-188 if the bounce gets there. For a long-horizon investor the random-walk verdict in §1 + the −24.8% factor alpha in §2 should weigh more heavily than any chart signal — the buy thesis here, if there is one, is fundamental (post-FY26-trough OMC re-rating) not technical.