Every stock is in one of four stages, read from its weekly price against a 30-week moving average. This screen re-runs on demand, compares against the previous run, and reports what changed — because in stage analysis the transition is the signal.
Ten gauges, majority verdict. If the market is in Stage 4, no buy may be issued at all — regardless of what any individual chart shows.
The sector's own stage, read from NSE's own indices. A stock in a Stage 3 or 4 group cannot be a buy — “don't try to be a whiz kid and find the one winner in a sick group.”
Its own stage, then relative strength above zero (enforced). Volume at the breakout and overhead resistance are reported beside it, not enforced — and the page says which is which.
Where the stop sits, before any order. More than 15% away and it is not a buy, however good the chart.
Why a chart screen sits beside a library of fundamental profiles at all — “Your buy and sell decisions are going to be timed from the chart pattern, not from press releases. No longer will you be amazed at seeing Sears rising in 1985 on decreasing earnings and then crashing in 1987 on increasing earnings.” That is the one rule that cannot be blended with the other two frameworks: where price and earnings disagree, this one goes with price.
“Forest to the trees”: market → group → stock, never the reverse. “If it's negative, you'll want to do very little if any buying, even if you see some stocks breaking out.”
Weinstein does not gate on one indicator — “any technical tool, no matter how good its record, will throw you a curve at some point. If you lean too heavily on just a few indicators, your system will sooner or later take you out into left field.” Every gauge below is recomputed on each refresh. Click any row to see how it is calculated and why it matters.
Step two of “forest to the trees”, and the one most often skipped. “Scan the groups so you'll know which ones to zero in on… don't try to be a whiz kid and find the one winner in a sick group.” Stage analysis is not a stock technique — he applies it to “anything governed by supply and demand”, so every index below is read with the identical 30-week test, the identical ±2% slope band and the identical 15% extension cap used on the names.
★ marks the two gauges Weinstein singles out — index stage analysis (“if you keep up just one long-term indicator, this is it”) and percent-above-the-30-week-MA (his own breadth measure). A raw tally is not his method: he weights these unequally.
Weinstein's rules fire on transitions, not on states: a stock entering Stage 4 is a sell, a stock breaking into Stage 2 on volume is a buy candidate, a close below the trailing stop is an exit. Each run diffs against the last and lists only what moved.
Click any tile to list the names inside it — then any name for its annotated chart and written read-out.
Frozen 9-Sep-2026, six amendments logged — A1–A2 (9-Sep), A3–A5 (12-Sep) and A6 (16-Sep, a labelling correction). Each carries its date, its reason and whether any verdict moved. Nothing here was chosen after seeing a result, and the one amendment that did change the result says so in its own row.
Click any row in the table below to open its annotated chart. Each one is labelled the way Weinstein teaches it:
Weinstein spends more of the book on what happens after the entry than on finding it. The entry is one decision; the size, the stop and the trail are the ones that decide the outcome. None of this is a property of a single chart, which is why it was taken off them — it is set once, for the portfolio, here.
He does not size by conviction. Every position is the same rupee amount — “if we were investing $100,000 in 10 stocks, each position should be approximately $10,000” — and the number of positions is chosen so that a stop being hit is an event you barely feel:
“Never enter your order to buy until after you’ve calculated exactly where your protective stop should be placed.” The sequence matters because it is the only sequence in which the 15% cap can actually reject a trade. Work it the other way — buy, then look for somewhere to put a stop — and the stop gets placed wherever the loss is tolerable rather than where the chart says, which is how a 15% rule becomes a 40% loss.
“Buy half of your intended position on the initial breakout, and the other half if the stock pulls back close to the breakout price.” The second half is not a doubling-down; it is the same position bought at two prices, and it comes with a test attached. On the pullback you are watching whether volume contracts on the way back — a pullback on heavy volume is a failure, not a discount.
The window closes, and the page says so when it has. Once the trailing stop has risen above the old breakout price, a pullback to that breakout would trigger the exit rather than an entry — so the trade becomes a single entry, take it or leave it. And where price has already slipped back below the level it broke out through, that is his red flag: “did XYZ just nudge above the critical resistance level and then fall back below it, which always signals a red flag warning.”
The stop only ever moves up. But not on every new high, which is the error that shakes people out of good positions:
On a half-and-half position he runs two stops, not one — “one half of your position is now protected with a stop at point C, and one half is set very tightly at rising points D, E, and finally F.” The loose half rides the 30-week average; the tight half rides the uptrend line through the correction lows. That is what the uptrend-line toggle on each chart is for: it is the tight stop's track, not decoration, and it is drawn only where three or more correction lows exist to fit it to.
When the 30-week average flattens, the tactics change. A Stage 3 top forms while price is still making highs, so the rule inverts: move the stop under the last correction low even if that sits above the average. “The probabilities are high that a Stage 3 top is starting to form.” The order ticket on each chart switches to this wording on its own when the slope goes flat.
“Don’t feel you have to be 100 percent invested at all times.” He puts it in sporting terms: “many athletes perform incredibly well in warm-ups, only to choke once the actual game begins… use only a portion of your capital” until the method has actually made money for you. The amber box under the market gate at the top of this page computes what that means today from the current gate reading and your own position count.
And above the individual stops sits one on the whole account: “I strongly suggest that each weekend you tabulate the value of your portfolio… if you see your assets drop by 20 to 25 percent, you should immediately move to the sidelines.” Weekly, on the weekend, same as the scan — which is the cadence this whole screen is built to.
Give it a name or symbol and it runs the whole screen on that stock the way Weinstein would work through a new idea — market first, then the stock's own stage, then each filter with the sentence from the book behind it, then the risk — and ends with a verdict.
cd "Investor Frameworks/WEINSTEIN" && ../../.venv-charts/bin/python tools/lookup.py RELIANCE
Accepts a symbol or a name — lookup.py INFY, lookup.py "tata motors". Add --json for machine-readable output. It resolves the company on Screener and echoes back the name it actually found before analysing, so a wrong match is visible rather than silent; where a query is ambiguous it lists the other candidates.
Why this is a command and not a box on this page: the lookup has to fetch live weekly data, and Screener sends no Access-Control-Allow-Origin header — a browser cannot call it from this domain. Doing it here would need a serverless function, which means changing the Vercel config that serves the main dashboard. That is not a change worth risking untested, so it is a follow-up rather than a shortcut taken now.
Every rule above is mechanical, and none of it survives contact with the person applying it. Weinstein is unusually direct about this: the method fails in predictable, human ways, and he names them.
“One of the real keys to winning is learning how to lose.” Not tolerating losses — taking them small, on purpose, on a level written down in advance. Everything in the risk section exists so that being wrong is cheap enough to be survivable and frequent enough to be unremarkable.
The corollary is the one people refuse: the stop that takes you out a few points before a stock turns around has still done its job. “Look at those few points you gave away as the cost of insurance.” You cannot price insurance by looking only at the fires that did not happen.
Asked why investors hold losers and sell winners, he does not reach for a market explanation. “What drives us to this destructive behavior? In one word: ego!” Selling a loser is admitting the purchase was wrong; holding it keeps the verdict pending. The market does not care either way, but the portfolio keeps the score:
“Many athletes perform incredibly well in warm-ups, only to choke once the actual game begins…” — so commit only part of the capital until the method has been run, with real money, through a losing sequence as well as a winning one. Paper results are warm-ups.
Every criterion was frozen in writing before it was run, the six amendments since are logged with dates, reasons and whether any verdict moved, and the engine — not the page — decides each order, so what is displayed and what is validated cannot drift apart. That is not tidiness. It is the only defence against the ego he names: a rule that can be reinterpreted after you see the result is not a rule, and a stop you can talk yourself out of on the day is not a stop.
The screen is a script, not a snapshot. He asks for it weekly, and names the number that should make you stop: “I strongly suggest that each weekend you tabulate the value of your portfolio. Don't worry if it swings a few percent from week to week. That's the way of the market. But if you see your assets drop by 20 to 25 percent, something is wrong.” To refresh:
cd "Investor Frameworks/WEINSTEIN" && ../../.venv-charts/bin/python tools/refresh.py
changes.json: stage transitions, verdict changes, stop breaches, and volume expansions through the 2× threshold.history.json so the distribution can be tracked over time.--no-fetch recomputes from cache without touching the network.Stop breaches fire on the transition, not the state — a stock that is already below its stop is not re-reported every run. That bug was caught by running the engine twice and demanding zero changes the second time; it is now a standing check.
It answers one question about a stock — which of four phases is it in right now — and refuses to answer any other. Every stock, in Weinstein's reading, cycles through the same four: a flat base after a decline (Stage 1), an advance (Stage 2), a flat top (Stage 3), and a decline (Stage 4). The test is a single line: the average of the last 30 weekly closes. Price above that line with the line rising is an advance; price below it with the line falling is a decline; flat is a base or a top depending on what came before.
Only Stage 2 is buyable, and the screen enforces the order in which the question is asked: the market first, then the sector, then the stock, then the risk. If the market is in Stage 4, no buy is issued no matter how good a chart looks — which is the situation today. That ordering is the entire method; the rest is arithmetic.
What it is not: not a valuation, not a view on the business, not a forecast. It never says a stock will go up. It says which phase the chart is in, the exact price at which that phase would change, and where the exit sits if it does — and it says all three before you buy rather than after.
Weekly charts, held for months rather than years. His own words on the horizon:
His three windows are defined explicitly — short term 1–6 weeks, intermediate term 6 weeks to 4 months, long term 4 to 12 months — and this screen is built for the last of those: positional trading on weekly closes, reviewed once a week, with no attention paid to what happens inside a day. That is also why the data here is weekly. Daily noise is filtered out on purpose, and looking at it more often does not make the method work better.
He publishes one number for his own record, and it is worth quoting exactly rather than paraphrasing:
Run the refresh at the weekend. Read the market gate first — if it is shut, the only actions available are exits and stop adjustments on what you already hold, and the correct response to a shut gate is cash rather than a smaller position in something. If it is open, work down the ladder: Stage 2 names in Stage 2 sectors, relative strength above zero, little overhead supply, and a stop that sits within 15% of the entry. Write the entry and the exit down before placing the order. Then leave it alone until the following weekend.
The unglamorous part is where the edge is. Most of what this page does on any given week is tell you to do nothing — today it is telling you that at the market gate, for every one of the 59 names. “It doesn’t do much good to buy yet… time is money” cuts both ways: the cost of waiting is real, and it is smaller than the cost of buying into a Stage 4 market because the screen looked boring.
Criteria: SCREEN_CRITERIA.md (frozen 9-Sep-2026, 6 amendments) · chain read: CHAIN_STATE.md · method: PHILOSOPHY.md · engine: tools/refresh.py, charts: tools/wstage.py.
Weekly data from Screener (company ids verified by name echo). Breadth from Chartink; the advance-decline line over 1,271 sessions from NSE's own daily bhavcopy, counted on Nifty 500 constituents. FX from Frankfurter. Chart conventions informed by BananaPatterns' anatomy pages. Standalone artefact — not wired to the main dashboard or the deploy repo.