The four-layer framework applied to one real month of NIFTY futures, trade by trade. The totals are perfect hindsight and only include trades that worked — a live trader keeps a part of it. The honest “what’s realistic” breakdown is inside.
The framework, in four layers
Every entry below came from layer 1 or 2 — never open space. Order flow was the yes/no on all 23 trades.
One step per session, running total. There are no down days on the hindsight read — the marked jumps are the trend days that carried the month. The dashed line is the same trades kept at about 57%, the disciplined-trader estimate from the ledger.
Read this first. There is a large gap between reading a month of charts after the close and trading that same month live. After the close you already know where the high was, where the low was, and which bounce was real. In the moment you know none of it. Every trade in this ledger is the after-the-close version — the cleanest read, filled at a fair price — and it only includes the setups that fired properly and worked. Live, you also take the ones that looked identical beforehand and didn't. So read the totals as the opportunity the framework pointed at, not money anyone actually pocketed. The real, live number is a good deal lower, and there is a whole section further down on how much lower and exactly why.
No one of these wins a trade on its own. CPR without order flow is a guess about the day's mood. Order flow without a level is noise. Pivots tell you where something might happen but never whether to act. The framework is the four of them run in a fixed order, each one covering the blind spot of the one before it — How the Framework Actually Works is the full walk-through: what each layer does, the setups they produce, and how to size them. This page is that method applied to a month, day by day. The bigger argument for why price action over indicators is in Why This Trading Framework Beats Every Non-Price-Action Approach.
| Layer | What it tells you | What it does not tell you | Key terms used below |
|---|---|---|---|
| 1 · CPR (before the open) | the day's character — narrow CPR → trend day, wide CPR → chop; is it inverted; is it virgin (untested) | a trade trigger | daily / weekly CPR · TC / PP / BC |
| 2 · Pivots (before the open) | where decisions happen | whether to act there | Standard R1–R5 / S1–S5 · Camarilla H3–H5 / L3–L5 · prev-day high/low (PDH/PDL) |
| 3 · Order flow (live only) | whether a move is real | context | absorption (size hits, price won't move) · stacked imbalance (one-sided aggression, bar after bar) · exhaustion (aggression fades, volume shrinks, move stalls before the level) · delta divergence (price up, buying pressure down) |
| 4 · Market Profile | today's and history's fair value | live conviction | shapes D / P / b / B · value-area edge (VAH/VAL) · POC · poor high / poor low (unfinished auction, gets retested) |
The routine that follows from it:
| Word | Plain meaning |
|---|---|
| Lot | 1 NIFTY futures lot = 65 units. 1 point of NIFTY = ₹65 per lot. |
| 2 lots / position size | Every trade here uses 2 lots (130 units) → 1 point = ₹130. Why, explained next. |
| Stop / stop-loss | the price where you accept you're wrong and get out |
| Target / 1st target | the price where you take profit — for the first lot. In the table, (hit) = price reached it and the first lot was closed there; (not reached) = price stopped short (the high/low shown is how far it got), so the first lot was closed at the exit price instead. |
| First lot / second lot | with 2 lots you close them separately — the first lot at the first target, the second lot you let run. ("Close" = sell to exit a long, buy back to exit a short.) |
| Exit (avg of the 2 lots) | the two lots close at different prices — first lot at the target, second lot when its trailing stop is hit or at the day's close. This column is the average of those two fills, and the Points and ₹ are worked from it. The two 1-lot trades (Jul 24, Jul 27) show a single price. |
| Long \* (the asterisk) | a long taken on the order flow but managed as a quick fade, not held — because the open interest showed short-covering, not real buying (Jul 17). |
| Before charges / after charges | before or after brokerage, STT (a government tax charged on the closing side), GST, stamp duty, exchange fees |
| Reward vs risk | how many rupees made for every rupee risked. "4× risk" = risked ₹5,000, made ₹20,000. |
| Points | NIFTY points captured, per lot. Never changes with lot size — only the rupees do. |
This framework does not earn a little every day. It earns in lumps: a string of small, unremarkable wins, and then three or four trend days a month that pay for everything else. In July those days were the 8th, the 22nd, the 15th and the 16th. Take those away and the month is roughly flat after costs.
That creates a problem for anyone trading a single lot. On every trade you have to choose between two bad options — bank a small profit at the first target and be out of the room when the trend day runs, or hold for the trend day and hand the small profit back on all the days that just tag your target and turn around. One lot cannot be patient and disciplined at the same time.
Two lots can. You close the first lot at the first target — that books a win and covers the trade's costs, so the day is already green. You let the second lot run, and the instant the first lot is closed you slide its stop up to your entry price. From that moment the second lot cannot lose money; it is a free option on a big move. Most days it just gets stopped at break-even and you keep the first lot's profit. A few days a month it catches the whole trend day.
The quiet benefit is what it does to the equity curve. Because the first lot wins on most sessions, the account grinds higher in small steps instead of swinging between big wins and give-backs — which is exactly what you want if you have a job and can't sit in front of the screen willing a runner to work.
What it costs to run. Two lots is about ₹31 lakh of notional. Carrying a position overnight (the swing trades) needs roughly ₹4.5–5 lakh of margin; intraday needs about ₹2.5–3 lakh. Call it a ₹5–7 lakh account, with no single trade risking more than 2–4% of it. Below that, trade one lot and accept the all-or-nothing choice — or express the same read with options.
Twenty-three trading days, read the same way each morning. Here is every one of them as an actual trade: the kind of day it was, the framework read that put you in, the entry, the stop, the first target, where it ended, and what it made. Straight after the table comes the part a table can't show — what a real person does with all of this.
| # | Date | Day | Long / Short | Framework read (the trigger) | Entry | Stop | Risk | 1st target | Exit — avg of both lots | Pts/lot | ₹ (2 lots) | R:R |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Jul 1 | reclaim | Long | Pivot: held reclaim of weekly-CPR top 24,082 Flow: positive delta, no absorption fight Profile: grind-up, value shifting up | 24,090 | 24,025 | 65 | 24,167 (not reached — high 24,143) | 24,095 (close) | +5 | ₹650 | 0.1× |
| 2 | Jul 2 | trend up | Long | Pivot: daily R1 / weekly Camarilla H3 stack Flow: absorption — −984 sell print, price didn't drop Profile: P-shape, poor high | 24,180 | 24,135 | 45 | 24,232 (hit) | 24,244 | +60 | ₹7,800 | 1.3× |
| 3 | Jul 3 | failed breakout | Short | Pivot: gap above weekly Camarilla H4 into open air (over-extended) Flow: exhaustion + delta divergence (price at highs, buying pressure falling) Profile: poor high and poor low | 24,410 | 24,465 | 55 | 24,230 (not reached — low 24,325) | 24,353 | +55 | ₹7,150 | 1.0× |
| 4 | Jul 6 | trend up | Long | Pivot: held above wide weekly-CPR top 24,283; target = weekly Camarilla H3 24,521 Flow: buying but shrinking delta peak (+2.5K vs +9K) Profile: trend-up, poor high | 24,400 | 24,320 | 80 | 24,499 (hit) | 24,505 | +95 | ₹12,350 | 1.2× |
| 5 | Jul 7 | the top (expiry) | Short | Pivot: weekly Camarilla H3 / daily R2 confluence Flow: exhaustion + "long unwinding" + delta roll (+1.6K → −4.8K) Profile: poor high, selling tail | 24,510 | 24,580 | 70 | 24,283 (not reached — low 24,406) | 24,425 | +85 | ₹11,050 | 1.2× |
| 6 | Jul 8 | the break | Short | Pivot: lost weekly CPR (PP 24,213), then weekly Camarilla L3 Flow: stacked sell imbalance — one-bar delta step −5.7K → −10.4K, 57–74% sell volume Profile: one-sided 'b' → trend-down, poor low | 24,180 | 24,230 | 50 | 24,017 (hit) | 23,960 | +220 | ₹28,600 | 4.4× |
| 7 | Jul 9 | fake bounce | Short | Pivot: rejection at the broken weekly-CPR floor (now resistance) Flow: absorption — +8K delta, price flat Profile: b-shape, poor low; open interest unchanged = no real covering | 24,140 | 24,200 | 60 | 24,028 (hit) | 24,015 | +125 | ₹16,250 | 2.1× |
| 8 | Jul 10 | first bounce back | Long | Pivot: reclaim of weekly-CPR floor 24,144; stalls under weekly TC 24,283 Flow: positive-delta reclaim, no push above TC Profile: b-shape recovering into value | 24,160 | 24,110 | 50 | 24,283 (not reached — high 24,270) | 24,255 | +95 | ₹12,350 | 1.9× |
| 9 | Jul 13 | fake rally | Short | Pivot: failed reclaim of weekly CPR 24,229 Flow: rally on negative cumulative delta = short-covering, not buying Profile: closed back inside the CPR | 24,220 | 24,310 | 90 | 24,216 (just reached) | 24,215 | 0 | ₹0 | 0.0× |
| 10 | Jul 14 | down day (expiry) | Short | Pivot: below weekly CPR, at daily Camarilla L4 / S1 cluster; target weekly Camarilla L3 24,043 Flow: negative delta from the open Profile: small trend-down, poor low, pin near max-pain | 24,150 | 24,205 | 55 | 24,043 (hit) | 24,025 | +115 | ₹14,950 | 2.1× |
| 11 | Jul 15 | rejected at the wall | Short | Pivot: 5 rejections at weekly-CPR top 24,229 (= daily R2) Flow: rejection held even with +6K delta — location beats delta Profile: rejection profile, close at the daily pivot | 24,215 | 24,245 | 30 | 24,120 (hit) | 24,055 | +120 | ₹15,600 | 4.0× |
| 12 | Jul 16 | wall holds again | Short | Pivot: same weekly-CPR wall, day 2 Flow: AM delta roll (+2.2K by 11:00 → −1.4K) Profile: second rejection day at one level | 24,205 | 24,245 | 40 | 24,096 (hit) | 24,093 | +110 | ₹14,300 | 2.8× |
| 13 | Jul 17 | short-covering pop | Long \* | Pivot: break through the weekly-CPR wall; stalls under weekly Camarilla H3 Flow: sell flags absorbed, delta to +7.9K — but open interest falling + FIIs covering = a squeeze, so traded as a fade Profile: trend-up, first close above the CPR all week | 24,240 | 24,190 | 50 | 24,441 (not reached — high 24,365) | 24,340 | +100 | ₹13,000 | 2.0× |
| 14 | Jul 20 | rejected at the top | Short | Pivot: open = high, right at weekly-CPR top 24,274/24,290 Flow: same-bar rejection; bounce off weekly Camarilla L4 on negative delta = covering Profile: b-shape, closed mid-range | 24,270 | 24,380 | 110 | 24,117 (hit) | 24,150 | +130 | ₹16,900 | 1.2× |
| 15 | Jul 21 | failed level-cluster (expiry) | Short | Pivot: open on a 3-way cluster (weekly Cam L3 / daily Cam L3 / daily PP) Flow: ~6 rejection clusters, negative delta = failed reclaim Profile: trend-down in range; open interest rose = fresh shorts | 24,200 | 24,260 | 60 | 24,117 (not reached — low 24,135) | 24,160 | +45 | ₹5,850 | 0.8× |
| 16 | Jul 22 | down from bar 1 | Short | Pivot: open below the whole daily CPR, on weekly Camarilla L4; cascade stopped exactly at weekly Camarilla L5 23,945 Flow: stacked sell imbalance from bar 1 (−5.1K) Profile: clean trend-down | 24,120 | 24,215 | 95 | 23,945 (hit) | 23,965 | +170 | ₹22,100 | 1.8× |
| 17 | Jul 23 | morning reversal | Short | Pivot: failed reclaim of weekly Camarilla L5 23,945 Flow: AM delta roll (+1K at 11:30 → −6.1K) Profile: b-shape rolling over; OI −2.64M = covering + rollover starting | 23,940 | 24,010 | 70 | 23,855 (hit) | 23,820 | +100 | ₹13,000 | 1.4× |
| 18 | Jul 24 | panic low | Long — 1 lot | Pivot: gap below weekly Camarilla S3 23,716 — capitulation zone Flow: recovery on negative delta = short-covering, not demand → scalp only Profile: b-shape off the low, poor low; FIIs still adding shorts | 23,660 | 23,610 | 50 | 23,893 (not reached — high 23,854) | 23,800 | +140 (1 lot) | ₹9,100 | 2.8× |
| 19 | Jul 27 | thin drift (pre-expiry) | Long — 1 lot | Pivot: above the daily CPR, under the inverted weekly CPR Flow: thin volume, small positive delta = drift, no conviction Profile: thin rotational D on low volume | 23,950 | 23,900 | 50 | 24,040 (hit) | 24,030 | +80 (1 lot) | ₹5,200 | 1.6× |
| 20 | Jul 28 | expiry — pinned | No trade | Pivot: open on the daily-CPR / weekly-BC stack Flow: expiry pin — delta chopping around zero, no aggressor Profile: symmetric D / bell, POC dead-centre, lowest volume of the month | — | — | — | — | stayed out | 0 | ₹0 | — |
| 21 | Jul 29 | new contract, trend up | Long | Pivot: new contract — use its first-hour range (daily pivots stale from the roll) Flow: opening-range break up, delta stays positive; OI building + FIIs covering = new longs Profile: one-sided P-shape, poor low | 24,275 | 24,222 | 53 | 24,350 (not reached — high 24,347) | 24,325 | +55 | ₹7,150 | 1.0× |
| 22 | Jul 30 | second buying day | Long | Pivot: reclaim of the daily CPR 24,303 Flow: midday balance holds a higher delta low = flag, not distribution Profile: overlapping-higher value, poor low | 24,300 | 24,250 | 50 | 24,365 (hit) | 24,375 | +85 | ₹11,050 | 1.7× |
| 23 | Jul 31 | month-end push up | Long | Pivot: open above the whole daily CPR (gap-and-go) Flow: midday balance holds a higher delta low = bull flag (mirror of Jul 8) Profile: overlapping-to-higher value | 24,375 | 24,335 | 40 | 24,490 (hit) | 24,470 | +55 | ₹7,150 | 1.4× |
\* Jul 17 was taken long, but the open interest showed short-covering, not real buying — so it was traded as a quick fade, not held. Jul 24 and Jul 27 were 1 lot only — a panic low and a thin pre-expiry drift are not places to hold a runner.
What actually fired, counted up: every single entry came from Layer 1 or 2 (a CPR or a pivot level) — not one trade was taken in open space. Order flow (Layer 3) was the yes/no on all 23: absorption got you long on Jul 2 and short on Jul 9; a stacked imbalance carried Jul 8 and Jul 22; exhaustion / delta divergence topped Jul 3 and Jul 7; negative cumulative delta is what said "covering, don't chase" on Jul 13, 20 and 24. Market Profile (Layer 4) set the management: a poor high was the target on Jul 3 and Jul 7, a poor low was the target on Jul 8 and Jul 22, and a symmetric D / bell is exactly why Jul 28 was a no-trade.
The table above is the disciplined version of the month — target hit, first lot booked right there, second lot trailed on a break-even stop, no drama. Trading it live is mostly a fight with your own reflexes, and that fight shows up in two places.
When the target isn't quite reached. Look at the rows marked not reached — July 1, 3, 7, 10, 17, 21, 24, 29. Price ran to within a handful of points of the first target and turned. In hindsight you just close at the exit price and move on. Live, you watch it stall two points short, your thumb twitches, and you book early — sometimes twenty points early. That reflex quietly helps you on the days that were going to fail anyway, and quietly costs you on the days that would have paid. Across a month, the second group is the bigger one.
When the trade is working. The plan says close the first lot at the target and slide the second lot's stop to your entry. But the trade is green and still moving, so you don't — closing feels like leaving money on the table. Then the move reverses and you hand back a sure profit chasing a maybe. It is the exact same reflex as the first one, just pointed the other way: grab too soon when you're nervous, hold too long when you're greedy.
Being the boring version of this — booking the first lot exactly where the plan says, every time, and letting the runner be a runner — is most of the distance between the hindsight number and the real one. It is a behaviour problem, not a chart problem, and the next section puts a rupee figure on it.
Add the whole month up, on a clean hindsight read, and it looks like this:
| Sessions | 23 · traded 20 · one no-trade (Jul 28) · one break-even (Jul 13) |
| Wins / break-even / losses | 20 / 1 / 0 |
| Points from the 20 full trades (per lot) | +1,825 points |
| Those trades in rupees (2 lots) | ≈ ₹2,37,250 |
| The two 1-lot trades | Jul 24 +140 (₹9,100) · Jul 27 +80 (₹5,200) |
| Everything together, points per lot | ≈ +1,912 points |
| Everything together, rupees (2 lots), before charges | ≈ ₹2,51,500 — after charges ≈ ₹2,32,700 (see the charges section) |
| Best single day | Jul 8 short: +220 points = ₹28,600 (4.4× the risk) |
| Most risked on one trade | Jul 20 (110-point stop) |
The section just above is the human half of this. Here is the arithmetic half — where the points actually leak, item by item, so the discount isn't a number picked out of the air:
| Where points leak | What it costs, over the month (per lot) | Why |
|---|---|---|
| The losers this list doesn't contain | −150 to −300 | The same triggers fail maybe 3–4 times a month. Real win rate at these entries is ~60–70%, not 100%. Live, you take those and eat −30 to −50 each. |
| Missed entries | −80 to −180 | Even with price alerts on every level, 1–2 setups a month fire while you're in a meeting / away from the desk. |
| Cutting the runners early | −150 to −250 | The big days (Jul 8, 22, 17) are where a human trails too tight and gets tapped out 40–80 points before the modelled exit. This is the single biggest discretionary leak. |
| Slippage on fills and stops | −60 to −120 | NIFTY futures are liquid, so this is small — ~2–4 points per fill — but it adds up across 40+ fills. |
| Break-even days turning into small losers | −40 to −100 | Jul 1, Jul 13, Jul 21: a nervous exit + slippage turns a scratch into a −20 to −40. |
Add it up and a genuinely disciplined trader — alerts set, a written plan, actually holds the runners, fixed size — keeps roughly 50–65% of the hindsight number. That is higher than the "35–45%" you'll see quoted for retail generally, because most of that retail figure is really about indiscipline, not execution friction. The friction itself, for someone who follows the plan, is smaller.
| Kind of trader | Keeps roughly | Points / lot / month | Rupees (2 lots), after charges |
|---|---|---|---|
| Experienced, genuinely disciplined (alerts, written plan, holds runners, fixed size) | 50–65% | +950 to +1,250 | ≈ ₹1,05,000 – 1,45,000 |
| Committed and improving (first year, misses more entries, trails too tight, the odd rule-break) | 30–45% | +575 to +860 | ≈ ₹55,000 – 95,000 |
| Undisciplined (chasing, revenge trading, oversizing, no written plan) | — | loses money, no matter how good the setups were | — |
The gap between the top row and the bottom row is entirely behaviour — same framework, same levels, same signals. That is the whole point of the closing section.
Swing = holding for days, not minutes. Rule: a swing trade is closed on or before the day its futures contract expires. No rolling over to the next month. Both July swings opened and closed inside the July contract (which expired July 28).
This was the easy one. A very narrow weekly CPR is the framework's way of saying this week trends, it doesn't chop. July 1 opened soft and then closed back above that CPR — the week had cast its vote. You bought the close, put the stop just under the CPR, and let it work. The first lot came off at the weekly R1 for +227. The second lot rode until July 7, when an exhaustion signal printed at the same wall the whole month kept failing against, and came off for +387. One decision on a Tuesday evening; +307 a lot.
| Framework read | Layer 1: the weekly CPR was very narrow (24,042–24,082) → trend-week. Layer 2: July 1 closed above it → up-week vote; first-lot target = weekly R1 24,320. Layer 3: the reclaim ran on positive delta, and two sell attempts on July 2 were absorbed (−984 print, no drop). Layer 4: two grind-up days closing near the highs = acceptance higher. |
| Entry | July 1 close, 24,093, 2 lots |
| Stop | 24,000 (just below the CPR) — risking 53 points a lot |
| First lot | closed July 3 at 24,320 (weekly R1) → +227 points. Second lot's stop moved up to break-even, then trailed to 24,140. |
| Second lot | closed July 7 at ~24,480 on the exhaustion / "long unwinding" signal at the weekly Camarilla H3 wall → +387 points |
| Result | +307 points a lot on average · ≈ ₹39,900 for the 2-lot position |
This was the hard one, and it is in here on purpose. July 7 failed at that same wall; July 8 lost the weekly CPR on a single violent bar, and you shorted it. Then July 17 ripped higher and stopped both lots for −60 — except the open interest said that rip was shorts buying themselves back, not new buyers coming in. That is not a reason to flip; it is a reason to short again on the next failure. July 20 opened at its high and got rejected, so you re-shorted, took +153 at the first Camarilla level down, and rode the second lot into the July 24 panic for +520. Net of the stop, +277 a lot. The lesson is the re-entry: a squeeze against a good trade is a stop-out you take and then step back into — not proof you were wrong.
| Framework read | Layer 2: July 7 was a failed top at weekly Camarilla H3. Layer 1: July 8 lost the weekly CPR (PP 24,213). Layer 3: confirmed by a one-bar stacked sell imbalance, then July 9's absorption said the low wasn't in; the trend days ran on AM delta rolls. Layer 4: one-sided trend-down profile, poor low after poor low. Downside targets = the weekly Camarilla ladder L4 → L5 → S3. |
| Attempt 1 | Short July 8 at 24,180, 2 lots, stop 24,300. Both lots stopped July 17 at ~24,240 on a short-covering bounce → −60 points a lot. The open interest showed that bounce was shorts covering, not real buying — so the plan was to short again on the next failure. |
| Attempt 2 | Short July 20 at 24,270 (open = high, rejected at the weekly-CPR top), stop 24,385. First lot closed at 24,117 (weekly Camarilla L4) → +153. Second lot's stop → break-even, then trailed down; closed July 24 at ~23,750 into the panic → +520. |
| Attempt 2 result | +337 points a lot on average |
| Whole trade | −60 (attempt 1) + 337 (attempt 2) = +277 points a lot · ≈ ₹36,000 for the 2-lot position |
There was a strong buy signal on July 29 (panic low held → two quiet days → the new contract trended up with the big players finally covering their shorts). But July 29 trades the August contract, which expires in late August. By the no-rollover rule it belongs in the August ledger, not this one. July's swing account is flat going into the July 28 expiry.
| Trade | Points a lot (avg) | Rupees (2 lots) |
|---|---|---|
| Swing 1 — bought the trending week | +307 | ₹39,900 |
| Swing 2 — shorted the break-down (two attempts) | +277 | ₹36,000 |
| July total (2 trades) | +584 points a lot | ≈ ₹75,900 |
These per-lot points are lower than if a single lot had ridden each whole move (+387 and +460), because the first lot is now closed at the first target. That's the price of a smoother ride and a runner that can't lose.
The swing side needs a lighter realistic discount than the intraday side — only two entries to get right, no scale-out clips to fumble, days to think between decisions. A disciplined trader keeps ~75–90% of it → ~₹55,000 – 68,000 after charges.
Everything so far has ignored costs, and it shouldn't. Every futures trade pays a small stack of charges — brokerage, STT (a government tax on the closing side), exchange and SEBI fees, stamp duty, GST — and over twenty-plus round trips a month they add up to real money. Here is the full deduction.
| Item | How it's calculated | ₹ per complete 2-lot trade |
|---|---|---|
| Brokerage | ₹20 per order × 3 orders (1 open, 2 closes) | 60 |
| STT | 0.02% of the closing-side value, on 2 lots | 624 |
| Exchange fee (NSE) | ~0.00173% of turnover, both sides | 108 |
| SEBI fee | ₹10 per crore of turnover | 6 |
| Stamp duty | 0.002% of the opening-side value, 2 lots | 62 |
| GST | 18% on (brokerage + exchange fee + SEBI fee) | 31 |
| Total | ≈ ₹891 | |
| …per lot | ≈ ₹446 (about 7 points) |
STT is most of it (₹624 of ₹891). Per lot this is a little cheaper than a 1-lot trade — the opening brokerage is shared. A full-service broker charges ₹600–3,000 instead of ₹60 brokerage — roughly doubles or triples the total. These figures assume a discount broker.
| Number of trades | Charges | Per lot, in points | |
|---|---|---|---|
| Intraday | 20 two-lot + 2 one-lot | ≈ ₹18,800 | ≈ 145 points |
| Swing | Swing 1 (open + add + close) · Swing 2 (attempt 1 stop + attempt 2) | ≈ ₹5,400 | ≈ 42 points |
| Before charges | Charges | After charges | |
|---|---|---|---|
| Intraday — perfect hindsight | ₹2,51,500 | ₹18,800 | ≈ ₹2,32,700 |
| Intraday — realistic, disciplined (50–65% of hindsight) | ₹1,42,000 – ₹1,82,000 | ₹18,800 | ≈ ₹1,05,000 – 1,45,000 |
| Swing — actually realised in July | ₹75,900 | ₹5,400 | ≈ ₹70,500 |
| Swing — realistic, disciplined (75–90%) | ₹57,000 – ₹68,000 | ₹5,400 | ≈ ₹52,000 – 63,000 |
The charges bite the intraday side much harder — 20-plus complete trades a month is ~145 points a lot of pure friction before anything goes wrong, versus ~40 points for the whole swing side.
Assumes separate money set aside for each — most people run one or the other, not both at full size.
| Trades | Before charges | Charges | After charges | |
|---|---|---|---|---|
| Intraday | 22 | ₹2,51,500 | ₹18,800 | ≈ ₹2,32,700 |
| Swing (2 trades, flat into expiry) | 2 | ₹75,900 | ₹5,400 | ≈ ₹70,500 |
| Combined — perfect hindsight | 24 | ₹3,27,400 | ₹24,200 | ≈ ₹3,03,200 |
| Combined — realistic, disciplined | ≈ ₹1,60,000 – 2,10,000 |
The realistic figure is not a guess — it is the hindsight figure with two discounts applied, a heavy one to the intraday book and a light one to the swing book. Working entirely in after-charges rupees:
| Step | After charges |
|---|---|
| Perfect-hindsight total | ₹3,03,200 |
| Intraday — keep 50–65% (lose 35–50% of it) | ₹2,32,700 → ₹1,05,000 – 1,45,000 |
| Swing — keep 75–90% (lose 10–25% of it) | ₹70,500 → ₹52,000 – 63,000 |
| = Realistic, disciplined | ≈ ₹1,60,000 – 2,10,000 |
| Removed from the hindsight number | ≈ ₹95,000 – 1,45,000 — roughly one-third to one-half |
Why the intraday book loses 35–50%. Four things, in rough order of size: (1) the losing trades this ledger doesn't contain — the same setups fire and fail 3–4 times a month for about −30 to −50 each; (2) runners closed too early — on the big trend days a human trails tighter than the model and gets tapped out 40–80 points short; (3) 2–4 entries a month simply missed while away from the screen; (4) slippage on fills and stops, about 2–4 points each across 40-plus fills.
Why the swing book only loses 10–25%. Two entries to get right instead of twenty, days to think between decisions, and no first-lot/second-lot scale-out to fumble. Far less room for a human to leak points.
This needs a ₹5–7 lakh account for the 2-lot size. Taking ₹6 lakh as the reference:
| Made (after charges) | ROI for the month | |
|---|---|---|
| Combined — perfect hindsight | ≈ ₹3,03,200 | ≈ 50% |
| Combined — realistic, disciplined | ≈ ₹1,60,000 – 2,10,000 | ≈ 27% – 35% |
| Swing only — actually realised | ≈ ₹70,500 | ≈ 12% (on the ~₹5L a 2-lot swing book needs) |
| Intraday only — realistic | ≈ ₹1,05,000 – 1,45,000 | ≈ 20% – 28% (on the ~₹5L needed to run 2 lots with a sane stop) |
These are not normal months. A 25–35% return in a single month does not continue — July was an unusually clean, one-way trending month, exactly the conditions this framework is built for. A choppy, sideways month gives a large chunk of it back, and a bad one is negative. Do not annualise these numbers. A good discretionary trader aims for something like 4–8% a month averaged across a year, losing months included.
In one line: with hindsight, July offered about ₹3 lakh after charges — roughly a 50% return on a ₹6 lakh account. Traded live by a genuinely disciplined person, more like ₹1.6 – 2.1 lakh, about 27–35% for the month. Traded without discipline: break-even or a loss, on the very same signals.
Read back through the 23 intraday trades and notice what's missing. There is no proprietary indicator. There is no faster data feed. Every entry sits on a line you could have drawn on the chart before the market opened — a CPR edge or a pivot. Every go/no-go decision was one of four order-flow reads you can say out loud in a sentence: absorption, a stacked imbalance, exhaustion, or simply negative delta. Every target was a level, usually a poor high or a poor low. Nothing here required a genius or a secret.
What it required was patience of a very specific kind: wait for price to arrive at your level, and then let the order flow tell you yes or no — rather than deciding the answer on the way there. The clearest example is July 28, which made exactly zero rupees. The framework looked at a symmetric bell profile with no aggressor on either side and said don't trade, and the correct response was to watch a screen do nothing for six and a half hours. Sitting on your hands for a full session is a skill, and it is the one most people don't have.
The framework post says it in one line: "The tools aren't the hard part. Waiting for the market to actually tell you something — instead of assuming it already has — is." This ledger is the receipt for that claim. With hindsight the month was worth about ₹3 lakh; a disciplined trader took home ₹1.6–2 lakh of it; and someone trading the very same charts, levels and signals without discipline finished the month down. The edge was never the thing in short supply. Behaviour was.
What NIFTY did. July 2026 moved in one direction and then turned around at the end. It opened near 24,090, got walked up to 24,565 by July 7 on buying that was visibly thinning, and then broke — a 720-point drop to 23,842 across July 8 and 9. From there it ground lower for another fortnight into a panic low of 23,640 on July 24 before reversing and closing the month back near 24,490. Underneath the price, one fact held every single day: foreign institutions were net short NIFTY futures and retail was net long. That is the whole context for the month. Sell the rallies, distrust the bounces, and don't act until the order flow at a level agrees with the direction the big money is already leaning.
The intraday side. Twenty-three sessions, twenty trades, one break-even, one day spent watching and not touching anything. Four trend days carried the result — July 8 (+220 a lot), July 22 (+170), and July 15 and 16, which were rejected at the same weekly-CPR wall on consecutive days for +120 and +110. Strip those four out and the other sixteen trades barely paid their brokerage. With hindsight the intraday book was worth about ₹2.51 lakh before charges and ₹2.33 lakh after, on two lots. Traded live by a disciplined hand, roughly ₹1.05–1.45 lakh of that survives; traded carelessly, none of it does.
The swing side. Two decisions, both opened and closed inside the July contract. The first bought the trending week off July 1's held reclaim of the weekly CPR — first lot out at the weekly R1 for +227, second lot out on July 7's exhaustion signal at the wall for +387, blended +307 a lot. The second shorted the July 8 break-down, got stopped for −60 on the July 17 short-covering bounce, re-shorted July 20's failed high, then took +153 at the weekly Camarilla L4 and rode the second lot to +520 into the July 24 panic — +277 a lot for the whole trade. Realised +584 points a lot: ₹75,900 before charges, ₹70,500 after — for two decisions and about 40 points of friction, against the intraday book's twenty-plus round trips and 145.
The takeaway. After costs and an honest discount, the swing book made as much as the all-day intraday grind, or more — from two decisions instead of twenty-two, with a fraction of the screen time and a fraction of the ways to go wrong. Both books ran on the same four layers: CPR for the day's character, pivots for where to act, order flow for whether the move is real, and market profile for the target and the day type. If you have a job, the swing side is the better fit. Either way, the framework was never the part that was hard.
P.S. — every row in this ledger was marked by hand, one chart at a time, which is precisely why I'm now buried in research on automating the whole thing end to end. The plan is simple: teach a script to read the footprint, tag the framework layer, fill the trade and total the rupees on its own — so I can close the laptop and start working through a travel list that has quietly grown longer than this document.
Every trade from the Ledger, written out in full: the pivot read, the order-flow read, the market-profile read, the positioning, and then the trade reasoned line by line — why this entry, why the stop there, why that target. 23 intraday tickets + 2 swing tickets (the Jul 29 month-turn is an August-contract trade — see note). Same clean-read-backtest caveat as the Ledger: the levels and reads are real; the fills and point tallies are modelled against the day's actual range.
Position: 2 NIFTY futures lots (130 qty) · ₹65 / point / lot → ₹130 / point. Lot A off at T1, Lot B trails on a breakeven stop. (₹ figures below are for the 2-lot position; Jul 24 & Jul 27 are 1-lot trades.)
Swings are closed on or before the expiry of the contract they were opened in — no rollover. Swings 1 and 2 lived and died inside the July contract (expiry Jul 28). The month-turn long triggers Jul 29 on the new August contract, so it is booked in the August ledger, not here. The read, for the record:
Every trading session of July 2026, worked at full depth: the pivot map, the order flow, the profile, the positioning, and a step-by-step retail playbook for each day. All levels are off the NIFTY futures chart; the order-flow reads are from the 5- and 15-minute footprint.
1. Header — futures O/H/L/C and the points/% change vs. the prior close.
2. The map that morning — the daily CPR (width + inversion), the daily R/S ladder, the weekly CPR, the weekly Camarilla, and prev-day/prev-week high-low. All computed, all known before 9:15.
3. Open location — where price opened relative to the daily CPR, and what that implies (above = bullish, inside = neutral, below = bearish).
4. Order flow — the cumulative-delta path, absorption / balance reads, the confirmation bar, and the footprint signals by name.
5. Market profile — day type, poor high/low, range.
6. Positioning — PCR, OI, the FII move on the day.
7. What smart money was doing — one line.
8. The retail playbook — before 9:15 → the open → mid-morning → trigger → risk → management → where you'd be wrong → the reversal.
9. Lesson — one paragraph.
The standing rule: you only act at a level, and only when the flow at that level agrees with your bias. Everything else is a wait.
NIFTY futures opened July near 24,090, was walked up to 24,565 by July 7, then broke — a ~720-point, two-session drop to 23,842 on July 8–9. The rest of the month was a lower, choppy grind that bounced off 23,640 on July 24 and recovered toward 24,490 by July 31, setting up the August 4 reversal.
FIIs were net short NIFTY futures every single trading day; retail (Client) was net long every single day. So the standing bias all month: sell rallies into levels, be suspicious of every bounce.
| Week | Weekly CPR | Width | Forecast | What happened |
|---|---|---|---|---|
| Jun 30 – Jul 3 | 24,042 – 24,082 | Narrow (40 pt) | trend | trended up through R1 24,320 to 24,449 |
| Jul 6 – 10 | 24,144 – 24,283 | Wide (139 pt) | range / two-sided | violent both ways — 24,565, then 23,842 |
| Jul 13 – 17 | 24,204 – 24,229 | Very narrow (26 pt) | strong trend | the CPR acted as a wall for 3 days, then broke up Friday |
| Jul 20 – 24 | 24,179 – 24,274 | Normal (95 pt) | mild trend | trended down hard, 24,280 → 23,640 |
| Jul 27 – 31 | 23,859 – 23,965 | Inverted (−106 pt) | bearish lean, trend | drifted up into 24,490 — reversed Aug 4 |
Weekly levels: PP 24,062 · R1 24,320 · R2 24,537 · Camarilla H3 24,233 · H4 24,363 · H5 24,583 · L3 23,972 · L4 23,841 · Prev-wk High 24,280 · Prev-wk Low 23,805.
A narrow weekly CPR says: expect the week to trend, and the CPR itself will act as a hard support/resistance. Price opened the week on the CPR and held above it — the "trend is up this week" vote.
Futures O/H/L/C: 23,995 / 24,143 / 23,983 / 24,093 · +231 pts (+0.97%)
| Level | |
|---|---|
| Daily CPR (normal, inverted) | BC 23,932 · PP 23,909 · TC 23,885 |
| Daily R1 / R2 / R3 | 23,979 · 24,096 · 24,167 |
| Daily S1 / S2 | 23,792 · 23,721 |
| Weekly CPR (narrow) | BC 24,042 · PP 24,062 · TC 24,082 |
| Weekly Camarilla | H3 24,233 · L3 23,972 |
| Prev day / week High-Low | 24,026 / 23,839 · 24,280 / 23,805 |
23,995 — inside the daily CPR zone but below the weekly CPR (24,042–24,082). Neutral-to-soft open. The question the day had to answer: does price reclaim the narrow weekly CPR or not?
Price pushed up through the morning, cleared daily R2 (24,096) and the weekly CPR cleanly, and closed 24,093 — above the weekly CPR. Cumulative delta stayed positive on the reclaim; no absorption fight at the CPR itself.
A quiet grind-up day. Value migrated higher; the close above the weekly CPR is the structural takeaway.
FIIs net short into the week (the standing lean); PCR neutral (~1.1). Nothing directional from the options side yet.
Not fighting the reclaim. A narrow-CPR week that opens soft and closes above the CPR is the market voting for an up-week — smart money let it happen.
On a narrow-CPR week the single most important price is the CPR itself. A soft open followed by a held reclaim of it is the "trend is up" signal — you don't need the day to be dramatic.
Futures O/H/L/C: 24,161 / 24,282 / 24,142 / 24,265 · +172 pts (+0.71%)
| Level | |
|---|---|
| Daily CPR (narrow) | BC 24,063 · PP 24,073 · TC 24,083 |
| Daily R1 / R2 / R3 | 24,162 · 24,232 · 24,322 |
| Daily S1 / S2 | 24,003 · 23,914 |
| Weekly CPR (narrow) | BC 24,042 · PP 24,062 · TC 24,082 |
| Weekly Camarilla | H3 24,233 · H4 24,363 |
| Prev day / week High-Low | 24,143 / 23,983 · 24,280 / 23,805 |
24,161 — above both the daily and weekly CPR, sitting right on daily R1 (24,162). Bullish open, and price is at a level from bar one.
Elongated grind-up; close at the extreme on a poor high. Above prior value.
FIIs still net short (unchanged), so the up-move is running against the big player. PCR ~1.3 — mild put-heaviness, not a directional block.
Buying every dip quietly, refilling bids at the daily-R2 / weekly-H3 shelf (~24,233) until the sellers gave up. No fireworks — that's the point.
An absorbed sell attempt — big sell delta, no price drop — is a green light, not a red one. When cumulative delta rises steadily and price closes on its high, the dips were buys.
Futures O/H/L/C: 24,385 / 24,449 / 24,325 / 24,353 · +88 pts (+0.37%) (but −96 from the high)
| Level | |
|---|---|
| Daily CPR (narrow) | BC 24,212 · PP 24,230 · TC 24,247 |
| Daily R1 / R2 / R3 | 24,317 · 24,370 · 24,457 |
| Daily S1 / S2 | 24,177 · 24,090 |
| Weekly CPR (narrow) | BC 24,042 · PP 24,062 · TC 24,082 |
| Weekly Camarilla | H3 24,233 · H4 24,363 · H5 24,583 |
| Prev day / week High-Low | 24,282 / 24,142 · 24,280 / 23,805 |
24,385 — gapped above daily R2 (24,370) and above weekly Camarilla H4 (24,363) in one move, into open air. Nothing structural overhead until weekly R2 24,537 / weekly H5 24,583. That is extended, not strong.
b/p-shaped short profile — poor high ~24,448, poor low ~24,351, closed near the low, below its own value area.
FIIs net short −251K — heavily short into this high. Max-pain for the July 7 weekly expiry sat at 24,200 — ~150 points below the close, a pull lower over the weekend.
Selling into the retail breakout buyers. The repeated rejections at 24,425 were large offers being refilled above every nearby level.
A breakout that can't take the cumulative-delta score with it is a fade. Price at the highs with delta falling is the whole signal — and a gap into open air above all the nearby levels is a warning, not a reason to buy.
Weekly levels: PP 24,213 · BC 24,144 · TC 24,283 · R1 24,588 · S1 23,978 · Camarilla H3 24,521 · H4 24,688 · L3 24,185 · L4 24,017 · Prev-wk High 24,449 · Prev-wk Low 23,839.
A wide weekly CPR says: expect a two-sided / range week — use the CPR edges (24,144 / 24,283) as the boundaries, don't expect a clean one-way trend. What actually happened was violent in both directions: a push to 24,565 by July 7, then the July 8 break straight down to 23,842.
Futures O/H/L/C: 24,345 / 24,515 / 24,330 / 24,483 · +130 pts (+0.54%)
| Level | |
|---|---|
| Daily CPR (narrow, inverted) | BC 24,387 · PP 24,376 · TC 24,364 |
| Daily R1 / R2 / R3 | 24,426 · 24,499 · 24,550 |
| Daily S1 / S2 | 24,302 · 24,252 |
| Weekly CPR (wide) | BC 24,144 · PP 24,213 · TC 24,283 |
| Weekly Camarilla | H3 24,521 · H4 24,688 · L3 24,185 |
| Prev day / week High-Low | 24,449 / 24,325 · 24,449 / 23,839 |
24,345 — above the daily CPR and above the wide weekly CPR top (TC 24,283), below Prev-day High 24,449. Extended above value on the first bar.
A steady grind up all day, pushing to 24,515 — right into weekly Camarilla H3 (24,521) — and closing 24,483 near the high on a poor high. But the daily cumulative-delta peak was only about +2.5K (compare July 2's +9K). Real buying, but thin conviction, and FIIs were heavily short against it.
Trend-up, close near the high on a fresh poor high, above value.
FIIs still deeply net short. The rally was carrying against the big money.
Still accumulating on the surface — but note the shrinking delta peak. This is the move that carried price into the weekly-H3 wall where July 7 topped.
On a wide-CPR (range) week, a rally is a trade to the next wall, not a trend to ride. Weekly Camarilla H3 was that wall. A rising price on a shrinking daily delta peak is the early warning that a top is forming.
Futures O/H/L/C: 24,504 / 24,565 / 24,406 / 24,440 · −43 pts (−0.18%) (−125 from the high)
| Level | |
|---|---|
| Daily CPR (normal) | BC 24,422 · PP 24,443 · TC 24,463 |
| Daily R1 / R2 / R3 | 24,555 · 24,628 · 24,740 |
| Daily S1 / S2 / S3 | 24,370 · 24,258 · 24,185 |
| Weekly CPR (wide) | BC 24,144 · PP 24,213 · TC 24,283 |
| Weekly Camarilla | H3 24,521 · L3 24,185 |
| Prev day / week High-Low | 24,515 / 24,325 · 24,449 / 23,839 |
24,504 — above daily R2 (24,499) and far above the wide weekly CPR (TC 24,283), pressing into weekly Camarilla H3 (24,521). Very extended.
Poor High ~24,547, closed near the low with a selling tail — a failed-new-high day.
Weekly expiry day, max-pain 24,400. Price spiked to 24,565 and closed at 24,440 — on the max-pain strike. FIIs still net short (−239K).
Done buying. The push to 24,565 was distribution — selling the last inventory to the chasers — then leaning on it. The lean came exactly at the weekly-H3 wall.
New high + cumulative-delta divergence + an exhaustion/arrow signal at a confluence level = take the short. On an expiry day, a reversal that closes near the max-pain strike is partly mechanical — don't over-read the last leg.
Futures O/H/L/C: 24,290 / 24,330 / 23,842 / 23,912 · −528 pts (−2.16%)
| Level | |
|---|---|
| Daily CPR (narrow, inverted) | BC 24,486 · PP 24,470 · TC 24,455 |
| Daily S1 / S2 / S3 | 24,376 · 24,311 · 24,216 |
| Weekly CPR (wide) | BC 24,144 · PP 24,213 · TC 24,283 |
| Weekly Camarilla | L3 24,185 · L4 24,017 · S1 23,978 |
| Prev day / week Low | 24,406 / 23,839 |
24,290 — below the entire daily CPR (24,455–24,486). Opening below the whole daily CPR is an outright bearish vote; no dip-buying on a day that starts here.
Long, one-sided red distribution — a trend-down day. ~500-point range. Poor high left near 24,300; closed on the lows leaving a poor low.
PCR collapsed to 0.61 that morning (call-heavy, directionally bearish) — a pre-cursor visible before price moved. On the break, total futures OI rose +857K and FIIs added ~30K net shorts (to −269K) — fresh conviction shorts, not just long liquidation.
Already short from July 7's failed high and pressing. The midday "balance" on the weekly CPR was more distribution.
Never buy a balance that sits on a level with negative cumulative delta beneath it. The acceleration landed in the 13:00–14:15 window, as trend days do. And the PCR at 0.61 that morning told you the day's character before a single tick.
Futures O/H/L/C: 23,965 / 24,181 / 23,960 / 23,999 · +87 pts (+0.36%)
| Level | |
|---|---|
| Daily CPR (wide, inverted) | BC 24,086 · PP 24,028 · TC 23,970 |
| Daily R1 / R2 | 24,214 · 24,516 |
| Daily S1 / S2 | 23,726 · 23,540 |
| Weekly CPR (wide) | BC 24,144 · PP 24,213 · TC 24,283 |
| Weekly Camarilla | L3 24,185 · L4 24,017 · S1 23,978 |
| Prev day High-Low | 24,330 / 23,842 |
23,965 — inside the inverted daily CPR (23,970–24,086), sitting on weekly S1 (23,978). Right at the level the market broke through yesterday.
b-shaped, recovering; poor low left below ~23,930; closed near the pivot.
FIIs net short still ≈ −266K, unchanged — no covering yet. That's the tell: the big player hasn't started buying back.
Selling every bit of the relief rally. +8K of delta with no price gain = supply parked against the level that used to be support.
After a flush, a bounce on huge positive delta that can't move price at the broken level = absorption = a short, not a chase. FIIs not covering yet is the confirmation the low isn't in.
Futures O/H/L/C: 24,140 / 24,270 / 24,140 / 24,242 · +243 pts (+1.01%)
| Level | |
|---|---|
| Daily CPR (normal, inverted) | BC 24,070 · PP 24,047 · TC 24,023 |
| Daily R1 / R2 | 24,133 · 24,268 |
| Weekly CPR (wide) | BC 24,144 · PP 24,213 · TC 24,283 |
| Prev day High-Low | 24,181 / 23,960 |
24,140 — on daily R1 (24,133), at the lower edge of the wide weekly CPR (BC 24,144). Right at the broken-support-turned-resistance.
Rallied to 24,270 = daily R2 (24,268) / weekly TC (24,283) — reclaiming the wide weekly CPR — and closed 24,242 back inside it. A "sellers paused" signal, not a trend signal; the close stalled right under weekly TC.
b-shape, recovering into the value zone; closed inside the weekly CPR for the first time since the break.
No meaningful FII shift. Still net short.
Not pressing. Letting price re-enter the value zone, but not buying it up either.
Re-entering a broken value zone is a "sellers paused," not "buyers in control." The close inside the CPR but under its top edge is exactly a market that stopped falling without deciding to rally.
Weekly levels: PP 24,216 · BC 24,204 · TC 24,229 · R1 24,591 · S1 23,867 · Camarilla H3 24,441 · L3 24,043 · L4 23,844 · Prev-wk High 24,565 · Prev-wk Low 23,842.
A 26-point weekly CPR is the tightest coil on the board — the methodology says "expect a strong directional week." What actually happened: the CPR acted as a hard ceiling for three straight days (Tue–Thu), price chopped underneath it, and only Friday did it release upward. A narrow-CPR week that compresses and chops before releasing is a weaker, messier outcome than the clean trend the method predicts.
Futures O/H/L/C: 24,076 / 24,294 / 24,030 / 24,243 · +1 pt (flat) (but +218 off the low)
| Level | |
|---|---|
| Daily CPR (narrow) | BC 24,205 · PP 24,217 · TC 24,230 |
| Daily R1 / R2 | 24,295 · 24,347 |
| Daily S1 / S2 | 24,165 · 24,087 |
| Weekly CPR (very narrow) | BC 24,204 · PP 24,216 · TC 24,229 |
| Weekly Camarilla | H3 24,441 · L3 24,043 |
| Prev day / week High-Low | 24,270 / 24,140 · 24,565 / 23,842 |
24,076 — below both the daily CPR (24,205–24,230) and the very narrow weekly CPR (24,204–24,229). Opening below a narrow weekly CPR is a strong trend-down-week vote.
A steep morning climb to 24,294 — right on daily R1 (24,295) — but cumulative delta was negative the entire day (≈ −3.8K to −130). Price gained ~165 points on negative cumulative delta = short-covering, not real buying. The afternoon faded; closed 24,243, back inside the weekly CPR — a reclaim that couldn't hold above it.
Modest range; b-shape; the close back inside the CPR after an intraday poke above.
FIIs net short ≈ −255K, roughly flat — no real covering by the big player. PCR ~1.6 (put-heavy). Max-pain for the Jul 14 expiry at 23,900 — price ran ~350 points above the strike.
Not buying. A rally on a falling cumulative-delta score is people who were short buying back to close — not new money.
A 150-point rally on a negative cumulative-delta score is not a rally — it's covering, and it fades. Same-looking move as a real trend-up; the delta sign is the only thing that separates them.
Futures O/H/L/C: 24,098 / 24,160 / 24,009 / 24,024 · −219 pts (−0.90%)
| Level | |
|---|---|
| Daily CPR (normal) | BC 24,162 · PP 24,189 · TC 24,216 |
| Daily R1 / R2 | 24,348 · 24,453 |
| Daily S1 / S2 / S3 | 24,084 · 23,925 · 23,820 |
| Weekly CPR (very narrow) | BC 24,204 · PP 24,216 · TC 24,229 |
| Weekly Camarilla | H3 24,441 · L3 24,043 |
| Daily Camarilla | L3 24,170 · L4 24,098 |
| Prev day High-Low | 24,294 / 24,030 |
24,098 — on daily Camarilla L4 (24,098), just above daily S1 (24,084), and below the weekly CPR (24,204–24,229). Opening below a narrow weekly CPR = strong down-week signal, and price is right at a daily support cluster.
Cumulative delta negative from the open (→ ≈ −5.4K). Down-arrows at ~24,150. A steady bleed to 24,009 — piercing weekly Camarilla L3 (24,043) — closing near the low on a poor low.
Small trend-down day; poor low at ~24,024, close near the low.
Weekly expiry, max-pain 24,050. Close 24,024, ~26 points from the strike — a soft pin. PCR ~1.0.
Selling rallies. Negative delta from bar one = the whole day is a short.
Negative cumulative delta on the very first bar sets the whole day: sell rallies, no dip-buying. On expiry, the close gravitates to max-pain — so book the last leg early.
Futures O/H/L/C: 24,069 / 24,228 / 23,993 / 24,068 · +44 pts (+0.18%)
| Level | |
|---|---|
| Daily CPR (normal, inverted) | BC 24,084 · PP 24,064 · TC 24,044 |
| Daily R1 / R2 | 24,120 · 24,215 |
| Daily S1 / S2 | 23,969 · 23,913 |
| Weekly CPR (very narrow) | BC 24,204 · PP 24,216 · TC 24,229 |
| Weekly Camarilla | H3 24,441 · L3 24,043 |
| Prev day High-Low | 24,160 / 24,009 |
24,069 — on the daily PP (24,064), below the weekly CPR (24,204–24,229).
Rejection profile at the weekly-CPR level; closed back at the daily pivot.
FIIs net short. PCR ~0.78. Max-pain (Jul 21 weekly) 24,250.
Absorbing at the weekly CPR. Five rejections at one price = a large offer being refilled again and again.
Repeated rejections at a known level with no breakthrough = short the failure, regardless of the delta colour. A +6K delta score does not beat a level the market has decided to defend.
Futures O/H/L/C: 24,120 / 24,220 / 24,055 / 24,096 · +29 pts (+0.12%)
| Level | |
|---|---|
| Daily CPR (narrow, inverted) | BC 24,111 · PP 24,096 · TC 24,082 |
| Daily R1 / R2 | 24,200 · 24,331 |
| Daily S1 / S2 | 23,965 · 23,861 |
| Weekly CPR (very narrow) | BC 24,204 · PP 24,216 · TC 24,229 |
| Prev day High-Low | 24,228 / 23,993 |
24,120 — above the daily PP (24,096), below the weekly CPR (24,204–24,229).
Rally to 24,220 = daily R1 (24,200) / weekly CPR (24,204–24,229) — the same wall as yesterday. Cumulative delta built to +2.2K by 11:00, then rolled over through its prior bars to ≈ −1.4K. Price fell from 24,200 back to the daily PP.
A second rejection day at the same level; closed at the daily pivot again.
No FII shift. PCR ~0.83.
Selling the same wall. Second straight day the weekly CPR (24,204–24,229) capped the rally.
When the same level rejects on two consecutive days, stop being surprised by the third. The "AM delta roll" — cumulative delta turning down through its prior bars around 11:00–11:30, at a level — is a repeatable short trigger.
Futures O/H/L/C: 24,096 / 24,365 / 24,083 / 24,322 · +225 pts (+0.93%)
| Level | |
|---|---|
| Daily CPR (narrow, inverted) | BC 24,138 · PP 24,124 · TC 24,110 |
| Daily R1 / R2 / R3 | 24,193 · 24,289 · 24,357 |
| Daily S1 / S2 | 24,028 · 23,959 |
| Weekly CPR (very narrow) | BC 24,204 · PP 24,216 · TC 24,229 |
| Weekly Camarilla | H3 24,441 |
| Prev day High-Low | 24,220 / 24,055 |
24,096 — below the daily CPR and below the weekly CPR again.
Trend-up day, close near the high; first close above the weekly CPR all week.
On the surface this looked like a real trend. The positioning says otherwise. Open interest fell ~800K and FIIs covered ~50K net shorts (−267K → −217K). PCR spiked to 1.61 and Pro + Client put-longs both hit their monthly peaks — heavy put buying into the bounce. This was a short-covering squeeze into a low-max-pain expiry week, not fresh long accumulation.
Buying back shorts, not building longs. That's why it stalled at weekly H3, and why the following week (Jul 20–24) resumed the downtrend hard.
July 16 and July 17 were the same rally into the same wall. July 16's cumulative delta rolled over — fade. July 17's kept rising to +7.9K — follow. But "delta is the referee" is only half the rule: delta tells you the buying is aggressive, not who is buying. Open interest tells you who — and it said covering. A covering rally stalls at the next resistance and reverts.
Weekly levels: PP 24,227 · BC 24,179 · TC 24,274 · R1 24,460 · Camarilla L3 24,219 · L4 24,117 · L5 23,945 · L6 23,743 · S1 24,088 · S2 23,855 · S3 23,716 · Prev-wk High 24,365 · Prev-wk Low 23,993.
A normal-width weekly CPR with a bearish tilt. The week's tell: the down-legs stopped, in order, close to the weekly Camarilla ladder — L4, then L5, then S3. With those three lines on the chart you knew roughly where each leg would pause and where to cover.
Futures O/H/L/C: 24,290 / 24,290 / 24,121 / 24,260 · −62 pts (−0.26%)
| Level | |
|---|---|
| Daily CPR (normal) | BC 24,224 · PP 24,257 · TC 24,289 |
| Daily R1 / R2 | 24,430 · 24,538 |
| Daily S1 / S2 | 24,148 · 23,975 |
| Daily Camarilla | L3 24,244 · L4 24,167 · L5 24,037 |
| Weekly CPR (normal) | BC 24,179 · PP 24,227 · TC 24,274 |
| Weekly Camarilla | L3 24,219 · L4 24,117 · L5 23,945 |
| Prev day / week High-Low | 24,365 / 24,083 · 24,365 / 23,993 |
24,290 — and that was the high of the day. Right at daily TC (24,289) and the top of the weekly CPR (TC 24,274). Open = high, at the CPR ceiling.
Failed instantly there (open = high), sold to 24,121 — the weekly Camarilla L4 (24,117) zone — then recovered ~100 points into the close on negative cumulative delta all day (≈ −2.1K → −4.9K). Close 24,260, back inside the weekly CPR at the daily PP. The recovery was covering, not demand.
b-shape; rejected at the CPR top, bounced off weekly L4, closed mid-range.
FIIs net short ≈ −220K — the month's lightest short, because some covering drove that afternoon bounce.
Selling the CPR ceiling; the afternoon bounce off weekly L4 was covering by shorts, not new buyers.
Open = high, at a level (the weekly-CPR ceiling), is a same-bar rejection — one of the cleanest shorts there is. A bounce off the next support on negative delta is covering: scalp it if you must, don't hold it.
Futures O/H/L/C: 24,220 / 24,280 / 24,135 / 24,181 · −79 pts (−0.33%)
| Level | |
|---|---|
| Daily CPR (narrow) | BC 24,206 · PP 24,224 · TC 24,242 |
| Daily R1 / R2 | 24,326 · 24,392 |
| Daily S1 / S2 | 24,157 · 24,054 |
| Daily Camarilla | L3 24,213 · L4 24,167 · L5 24,090 |
| Weekly CPR (normal) | BC 24,179 · PP 24,227 · TC 24,274 |
| Weekly Camarilla | L3 24,219 · L4 24,117 · L5 23,945 |
| Prev day High-Low | 24,290 / 24,121 |
24,220 — a three-way confluence: weekly Camarilla L3 (24,219), daily Camarilla L3 (24,213), and the daily PP (24,224) all within ~11 points. Inside the weekly CPR, right on a level stack.
Couldn't reclaim it. About six down-arrow clusters at 24,190–24,240 — sellers defending the weekly-CPR floor from below after the break. Negative cumulative delta (≈ −3K). Bled to 24,135 = the weekly L4 (24,117) zone. Close 24,181, below the weekly CPR.
Trend-down within the range; close near the low, below the CPR.
OI rose +228K — fresh shorts re-added after the July 17 covering. Weekly expiry, max-pain 24,200 — close 24,181, back on the max-pain strike.
The covering rally is over; FIIs are re-shorting. The tape pinned back to 24,200 into settlement.
When price opens at a stack of levels, the trade is defined: reclaim = long, fail = short — and repeated rejection with negative delta is "fail." Expiry-day closes gravitate to max-pain; size the last leg accordingly.
Futures O/H/L/C: 24,126 / 24,137 / 23,945 / 23,988 · −192 pts (−0.79%)
| Level | |
|---|---|
| Daily CPR (narrow, inverted) | BC 24,207 · PP 24,198 · TC 24,190 |
| Daily S1 / S2 / S3 | 24,117 · 24,054 · 23,972 |
| Weekly CPR (normal) | BC 24,179 · PP 24,227 · TC 24,274 |
| Weekly Camarilla | L4 24,117 · L5 23,945 · S2 23,855 |
| Prev day High-Low | 24,280 / 24,135 |
24,126 — below the whole daily CPR (24,190–24,207), sitting on weekly Camarilla L4 (24,117) and daily S1 (24,117). Opening below the daily CPR at a support that already broke = sell the open.
Deep negative cumulative delta from the first bar (→ ≈ −5.1K). Broke weekly L4 immediately, waterfall through daily S1 (24,117), S2 (24,054), S3 (23,972), and stopped at 23,945 = weekly Camarilla L5 (23,945) to the point.
Clean trend-down; ~200-point range; close near the low.
OI +116K — shorts still pressing. FIIs adding.
Pressing shorts. Negative delta from bar one + fresh OI = conviction on the way down.
Negative delta on the first bar + price below the daily CPR = sell the open. The weekly Camarilla ladder (L4 → L5 → S3) told you where each leg would pause — cover at the line, don't ride past it hoping.
Futures O/H/L/C: 23,880 / 23,996 / 23,809 / 23,874 · −115 pts (−0.48%)
| Level | |
|---|---|
| Daily CPR (narrow, inverted) | BC 24,041 · PP 24,023 · TC 24,006 |
| Daily S1 / S2 / S3 | 23,910 · 23,831 · 23,718 |
| Weekly CPR (normal) | BC 24,179 · PP 24,227 · TC 24,274 |
| Weekly Camarilla | L5 23,945 · L6 23,743 · S2 23,855 · S3 23,716 |
| Prev day High-Low | 24,137 / 23,945 |
23,880 — below the daily CPR, between weekly S2 (23,855) and weekly Camarilla L5 (23,945).
Rallied to 23,996, briefly reclaiming weekly L5 (23,945), then cumulative delta rolled from ≈ +1K at 11:30 to ≈ −6.1K, and price fell to 23,809 — into the weekly S3 (23,716) / L6 (23,743) approach.
b-shape rolling over; close near the low.
OI −2.64M — the first big reduction of the week (shorts starting to cover into the lower prices; also partly rollover, 3 sessions from the Jul 28 expiry).
Still mostly short; the OI drop is early covering plus rollover, not a directional flip.
The "AM delta roll" fires again — cumulative delta turning down through its prior bars around 11:00–11:30, at a level (here, the reclaimed weekly L5). A brief reclaim that can't hold is a short setup, not a bottom.
Futures O/H/L/C: 23,700 / 23,854 / 23,640 / 23,806 · −67 pts (−0.28%) (but +166 off the low)
| Level | |
|---|---|
| Daily CPR (narrow, inverted) | BC 23,902 · PP 23,893 · TC 23,883 |
| Daily R1 / R2 | 23,977 · 24,080 |
| Daily S1 / S2 / S3 | 23,789 · 23,705 · 23,602 |
| Weekly CPR (normal) | BC 24,179 · PP 24,227 · TC 24,274 |
| Weekly Camarilla | L6 23,743 · S2 23,855 · S3 23,716 |
| Prev day High-Low | 23,996 / 23,809 |
23,700 — gapped below daily S1 (23,789) and below weekly Camarilla S3 (23,716). The low, 23,640, pierced weekly S3. This is a capitulation-zone open.
Steep recovery all day, 23,700 → 23,854, closing near the day's high — but cumulative delta was negative the entire time (→ ≈ −3.8K). The bounce stalled right under the daily PP (23,893). Covering, not demand.
b-shape recovering off the low; poor low left below; closed under the daily pivot.
FIIs at their most short of the month (−271K) — pressing shorts at the low — while Pro flipped to its biggest long (+29K), taking the other side. OI −1.5M (heavy covering, part rollover).
The low was made by prop and DII buying the FIIs' aggression. The recovery was short-covering (negative delta), not new demand — FIIs were still adding, not covering, that day.
A gap far below the weekly Camarilla S-levels is a capitulation zone — but a recovery on negative cumulative delta is short-covering, and a covering bounce that stalls at the daily pivot is not a bottom. Watch the FII position: they were still adding shorts that day.
Weekly levels (from the July 20–24 range, near-month): BC 23,960 · PP 23,909 · TC 23,858 (inverted — prev-week close in the lower half, bearish lean) · R1 24,178 · R2 24,549 · Camarilla H3 23,983 · H4 24,158 · H5 24,451 · L3 23,631 · L4 23,455 · L5 23,162 · Prev-wk High 24,280 · Prev-wk Low 23,640.
Read the roll before you read the week. The near-month future rolled at the July 28 expiry — July 27–28 trade the expiring contract, July 29–31 trade the new (Aug) contract, which opened about 250 points higher on July 29 (part real gap up, part roll premium). So the weekly CPR above — built from the old contract's July 20–24 range — sits below where the new contract trades from Wednesday on. For July 29–31, lean on the daily pivots and spot structure; treat the weekly levels as stale.
The shape of the week: two heavy, thin, expiry-unwind sessions (Jul 27–28) that went nowhere, then a three-day markup (Jul 29–31) on the new contract as FIIs finally covered.
Futures O/H/L/C (expiring contract): 23,940 / 24,045 / 23,902 / 24,028 · +222 pts (+0.93%) off Friday's 23,806 · volume 7.7M vs the ~14M daily norm
| Level | |
|---|---|
| Daily CPR (narrow) | BC 23,747 · PP 23,767 · TC 23,787 |
| Daily R1 / R2 | 23,894 · 23,981 |
| Daily S1 / S2 | 23,680 · 23,553 |
| Daily Camarilla | H3 23,865 · H4 23,924 · L3 23,748 · L4 23,689 |
| Weekly CPR (inverted) | BC 23,960 · PP 23,909 · TC 23,858 |
| Weekly Camarilla | H3 23,983 · H4 24,158 · L3 23,631 |
| Prev day / week High-Low | 23,854 / 23,640 · 24,280 / 23,640 |
23,940 — above the entire daily CPR (a bullish vote for the day) but below the weekly CPR (23,858–23,960 — price opened inside it, near the top). Above the day's pivot, still under the week's.
Low volume, no conviction either way. Ground up through daily R1 (23,894) and the weekly Camarilla H3 (23,983), tagged 24,045, and settled at 24,028 — right around the weekly BC (23,960) / weekly H3 (23,983) zone. Cumulative delta mildly positive but small; this was drift, not demand.
Thin, rotational, D-ish shape shifted up from Friday; ~140-point range on well-below-average volume.
OI −2.54M — heavy unwind ahead of Tuesday's expiry. Not a directional signal; contracts being closed, not new bets.
Mostly standing aside. Friday's capitulation low held over the weekend; a light short-covering drift lifted price back toward the weekly CPR with nobody pressing.
Thin volume + an expiry one day out = a session for scalps, not decisions. "Above the daily CPR" is a real bullish tell, but when the weekly CPR ceiling is 20 points overhead and inverted, the room to the upside is a rounding error.
Futures O/H/L/C (expiring contract): 23,998 / 24,040 / 23,948 / 23,973 · −55 pts (−0.23%) · volume 5.7M — the thinnest session of the month · monthly expiry, max-pain ≈ 23,950–24,000
| Level | |
|---|---|
| Daily CPR (narrow, inverted) | BC 23,994 · PP 23,987 · TC 23,980 |
| Daily R1 / R2 | 24,026 · 24,079 |
| Daily S1 / S2 | 23,934 · 23,895 |
| Daily Camarilla | H3 23,999 · H4 24,024 · L3 23,948 · L4 23,923 |
| Weekly CPR (inverted) | BC 23,960 · PP 23,909 · TC 23,858 |
| Prev day High-Low | 24,045 / 23,902 |
23,998 — right on the daily CPR (23,980–23,994), which is itself sitting on the weekly BC (23,960). Open = value, on a level stack.
A 92-point range all day (24,040 to 23,948). Price oscillated around 24,000 in a tight band. Cumulative delta chopped either side of zero. There were bars where one side's delta ran without price moving — but that is expiry pinning, not absorption. Absorption is a directional side being soaked up at a level it's attacking; here neither side was attacking anything — the tape was being held on the max-pain strike into settlement. Close 23,973, on the strike.
Textbook expiry day: a fat, symmetric D / bell profile, POC dead-centre near 24,000, tiny range, lowest volume of the month.
OI −2.02M — the expiring series unwinding into settlement. Max-pain ≈ 23,950–24,000; close 23,973 — pinned.
Nothing directional. Option writers defended the strike; everyone with a directional view was already rolled to the August contract and waiting for Wednesday.
Expiry pinning ≠ absorption. Absorption needs an aggressor being stopped at a level; pinning is the whole tape being clamped to a strike with no aggressor at all. On a 92-point, lowest-volume-of-the-month expiry day, delta divergence is noise. This is the exact call the first draft of the study got wrong — corrected by checking OI (pure unwind) and the day's range/volume.
Futures O/H/L/C (August contract — first day): 24,228 / 24,347 / 24,222 / 24,312 · the jump of about 250 pts vs July 28's 23,973 is the roll + a real gap up, not a move you could have traded
| Level | |
|---|---|
| Daily CPR (narrow) | BC 24,285 · PP 24,294 · TC 24,303 |
| Daily R1 / R2 | 24,365 · 24,418 |
| Daily S1 / S2 | 24,240 · 24,169 |
| Daily Camarilla | H3 24,346 · H4 24,380 · L3 24,277 · L4 24,243 |
| Weekly CPR (inverted, stale — old contract) | BC 23,960 · PP 23,909 · TC 23,858 |
| Prev day High-Low (old contract) | 24,040 / 23,948 |
24,228 — on the new contract. Below the daily CPR (24,285–24,303) at the open, but note the daily pivots here are built from July 28's old-contract H/L/C, so they're ~250 points low and effectively meaningless for the first hour. Spot structure and the new contract's own opening range are what matter today.
Opened 24,228, held the 24,222 low in the first hour, then trended up all session to 24,347, closing near the high at 24,312. Once the new contract built its own opening range (24,222–24,270) and broke it upward, cumulative delta turned and stayed positive — the first genuinely buyer-led up-day since early July. Close near the high = no late selling.
One-sided green P-shape / trend-up; close in the top third; poor low left at 24,222.
OI on the new contract building from a low base; FIIs began covering the large short carried from July 24. Price up + fresh long OI + FII short reduction = new longs, not just covering.
Covering shorts and initiating longs. The August contract's first session was an accumulation trend day.
On roll day, the first hour of pivots is garbage — let the new contract draw its own opening range and trade that. And when a held capitulation low is followed by a buyer-led trend day with FIIs covering, that's not a bounce to fade — that's a swing long to hold.
Futures O/H/L/C (August contract): 24,266 / 24,397 / 24,250 / 24,358 · +46 pts (+0.19%)
| Level | |
|---|---|
| Daily CPR (narrow) | BC 24,285 · PP 24,294 · TC 24,303 |
| Daily R1 / R2 | 24,365 · 24,418 |
| Daily S1 / S2 | 24,240 · 24,169 |
| Daily Camarilla | H3 24,346 · H4 24,380 · L3 24,277 · L4 24,243 |
| Weekly CPR (inverted, stale — old contract) | BC 23,960 · PP 23,909 · TC 23,858 |
| Prev day High-Low | 24,347 / 24,222 |
24,266 — just below the daily CPR (24,285–24,303), holding above the prior day's 24,222 low. A quiet open right under value after a trend-up day.
Reclaimed the daily CPR inside the first hour, based sideways 24,290–24,330 through the middle of the day (cumulative delta holding a higher low — constructive, not distribution), then pushed to 24,397 into the last hour and closed 24,358 near the high. Second straight buyer-led close-near-high day. Narrow range (~147 pts), no seller of size showed up.
Overlapping-higher value; b-to-D shape shifting up; close upper third; poor low at 24,250.
FII short reduction continued; long OI on the August contract building. Price up + OI up = new longs stacking on top of the covering.
Still covering July's short and adding longs — controlled accumulation, not a chase. The tight range on no selling pressure is the tell.
A narrow-range day that closes near its high on no selling pressure is accumulation, not exhaustion. Two consecutive buyer-led closes with FIIs covering and long OI building is a trend you hold, not fade — the opposite of the covering rallies earlier in the month, which ran on negative delta with FIIs still short.
Futures O/H/L/C (August contract): 24,408 / 24,490 / 24,370 / 24,453 · +95 pts (+0.39%)
| Level | |
|---|---|
| Daily CPR (narrow) | BC 24,324 · PP 24,335 · TC 24,347 |
| Daily R1 / R2 | 24,420 · 24,482 |
| Daily S1 / S2 | 24,273 · 24,188 |
| Daily Camarilla | H3 24,398 · H4 24,439 · L3 24,318 · L4 24,277 |
| Weekly CPR (inverted, stale) | BC 23,960 · PP 23,909 · TC 23,858 |
| Prev day High-Low | 24,347 / 24,222 |
24,408 — above the entire daily CPR (24,324–24,347) and above daily R1-region / weekly Camarilla H3 (23,983 old — irrelevant). Gap-and-go continuation open above value.
Held above the daily CPR all day, based sideways 24,370–24,430 mid-session (a bull flag, cumulative delta staying positive — a higher low in delta, unlike the July 8 balance where delta was negative under the range), then pushed to 24,490 into the close. Close near the high again. Two consecutive close-near-high trend days.
Overlapping-to-higher value, b-to-D shifting up; a shallow midday balance then a late push; close upper third.
FII short reduction continued; longs adding. PCR firming back above ~0.9 from the July-8 lows of 0.61 — the options crowd no longer positioned for downside.
Still covering the July short and rolling into longs. Month-end markup with buyers in control.
A midday balance in an uptrend is a flag, not a top, when cumulative delta holds a higher low through it — the mirror image of July 8, where delta was already negative beneath the range. Same chart pattern, opposite delta, opposite outcome. Read the flow under the price, always.
1. The daily CPR's position vs the open is the first filter, every day. Open above the whole thing = don't buy dips is wrong / do buy dips; open below the whole thing = don't buy dips, sell rallies. Inverted CPR = bearish lean and a trend day more likely. This one read framed every session above.
2. Levels tell you where; cumulative delta tells you whether; open interest tells you who. July 17 (delta rising, but OI falling → covering → fades) and July 30 (delta rising and OI rising → new longs → holds) are the same-looking rally with opposite meaning. You need all three.
3. The weekly Camarilla ladder is a map of where legs pause. July 22's cascade stopped to the point at weekly L5; July 20 and July 21 bounced at weekly L4. Draw it before the open and you know your targets.
4. Absorption, expiry pinning, and a covering bounce all look like "delta disagrees with price." They are not the same trade. Absorption needs an aggressor stopped at a level. Pinning is the tape clamped to a strike (July 29). A covering bounce runs on negative delta and stalls at the next pivot (July 20, July 24).
5. Roll week breaks the weekly levels. After July 29, the weekly CPR was 250 points stale — you had to trade the new contract's own opening range and the daily pivots until a fresh weekly range formed.
6. The month's turn (July 30) was readable in real time: capitulation low July 24 → held → coiled July 28–29 → new contract opens and trends up on positive delta with FIIs covering. That's a swing long, not a bounce.
framework ledger nifty futures order flow market profile cpr pivot risk management