In August I published a five-prompt screen that sorted stocks into "fresh setups" and "already extended, avoid chasing".
It's easy to publish a screen. Going back to grade it is the part most people skip.
So three months later I went back. I wrote the rules down as code, ran them on ten popular stocks as of the close of August 7, 2026, and measured what each one did over the next one, two and three months.
The labels mattered much less than I thought. The stop mattered more.
If you're:
- using an AI to screen stocks and wondering whether the output holds up,
- building a screener and deciding which rules deserve to stay,
- or just tired of stock lists nobody ever revisits,
keep reading.
What I said in August
The original article named three stocks. Microsoft and Meta were "fresh setups": strong earnings reactions, sitting near support. Palantir was "already extended, avoid chasing", after a jump of more than 30% in a few sessions.
It also set three rules I said I follow:
- flag anything that moved more than 20% in three trading days,
- define the stop before the entry, and get out on a close below it,
- treat these as one to two month trades.
Three names is not enough to grade anything. And the full list of ten from that Saturday was never published, so grading it now would be asking you to take my word for it.
The test
So I did something stricter. I turned the August prompts into fixed rules and applied them to ten stocks picked for one reason only: almost everyone owns or watches them.
- Stocks: Apple, Microsoft, Nvidia, Amazon, Alphabet, Meta, Tesla, Palantir, AMD and Netflix. I chose them in November, which is a limitation I'll come back to.
- Screen date: the close of Friday, August 7, 2026, the last close before the original article.
- Data: daily prices from the EODHD APIs end-of-day endpoint. Returns use
adjusted_close, as of November 11, 2026. Adjusted values shift after each dividend. - Benchmark: SPY over the same dates.
- Checkpoints: one month (September 8), two months (October 7) and the latest close (November 11).
The rules, as code can read them:
- Extended: gained 20% or more in any three sessions of the last week, or closed more than 15% above its 50-day average, or closed within 2% of its 52-week high.
- Fresh setup: not extended, up over the last five sessions, and above its 200-day average.
- No setup: everything else.
- Stop: the lowest low of the five sessions up to and including the screen date. Exit on the first close below it.
The August article gave the 20% rule. The other thresholds are mine. The original prompts said "near support" and "room to run", and a model can interpret that. Code needs a number, so I picked them before computing the forward returns for the seven stocks I hadn't looked at yet.
Here's the classification:
import os import pandas as pd import requests KEY = os.environ["EODHD_API_KEY"] TICKERS = ["AAPL", "MSFT", "NVDA", "AMZN", "GOOGL", "META", "TSLA", "PLTR", "AMD", "NFLX"] SCREEN = "2026-08-07" def fetch(symbol): r = requests.get( f"https://eodhd.com/api/eod/{symbol}.US", params={"api_token": KEY, "fmt": "json", "from": "2025-06-01", "to": "2026-11-11"}, timeout=60, ) r.raise_for_status() df = pd.DataFrame(r.json()) df["date"] = pd.to_datetime(df["date"]) return df.set_index("date").sort_index() def label(df): px = df["adjusted_close"].loc[:SCREEN] c0 = px.iloc[-1] gain3 = max(px.iloc[-k] / px.iloc[-k - 3] - 1 for k in (1, 2, 3)) ret5 = c0 / px.iloc[-6] - 1 vs50 = c0 / px.iloc[-50:].mean() - 1 vs200 = c0 / px.iloc[-200:].mean() - 1 vs_high = c0 / px.loc["2025-08-08":].max() - 1 if gain3 >= 0.20 or vs50 > 0.15 or vs_high > -0.02: return "extended" if ret5 > 0 and vs200 > 0: return "fresh setup" return "no setup" for t in TICKERS: df = fetch(t) px = df["adjusted_close"] c0 = px.loc[SCREEN] two_months = px.loc[:"2026-10-07"].iloc[-1] / c0 - 1 print(f"{t:6}{label(df):12}{two_months * 100:7.2f}%") Output:
AAPL fresh setup 7.54% MSFT extended 6.15% NVDA fresh setup 6.15% AMZN fresh setup -5.30% GOOGL no setup -1.01% META no setup 21.92% TSLA no setup 14.98% PLTR extended 12.85% AMD fresh setup 33.62% NFLX no setup -5.99% The first surprise: my rules disagree with August
Look at Microsoft and Meta.
In August, Claude called both of them fresh setups. My fixed rules call Microsoft extended, because on August 7 it closed 22.84% above its 50-day average after its earnings jump. They give Meta no setup at all, because it was still 6.08% below its 200-day average.
Palantir is the only one of the three where code and conversation agree. It had gained 28.74% in three sessions and sat 29.72% above its 50-day average.
One detail from August does check out: I wrote that Meta was roughly 25% below its 52-week high. On adjusted closes it was 24.80% below.
So the August labels were a judgment call by the model, made with earnings context that a threshold doesn't see. That's not a flaw in itself. But it means the screen can't be reproduced by someone else with a formula, and I should have said so at the time.
What actually happened
Returns from the August 7 close, adjusted prices as of November 11, 2026:
| Stock | Label on Aug 7 | 1 month | 2 months | To Nov 11 |
|---|---|---|---|---|
| Apple | Fresh setup | +1.01% | +7.54% | +13.60% |
| Nvidia | Fresh setup | +0.79% | +6.15% | -22.34% |
| Amazon | Fresh setup | -6.38% | -5.30% | -3.03% |
| AMD | Fresh setup | +4.63% | +33.62% | +14.39% |
| Microsoft | Extended | -1.02% | +6.15% | +4.42% |
| Palantir | Extended | -0.99% | +12.85% | +0.23% |
| Alphabet | No setup | -4.44% | -1.01% | -17.12% |
| Meta | No setup | +3.61% | +21.92% | +6.28% |
| Tesla | No setup | +12.05% | +14.98% | +18.95% |
| Netflix | No setup | +3.55% | -5.99% | -12.95% |
| SPY | -0.94% | +0.76% | -1.50% |
And by group:
| Group | Stocks | 1 month avg | 2 months avg | To Nov 11 avg | Beat SPY at 2 months |
|---|---|---|---|---|---|
| Fresh setup | 4 | +0.01% | +10.50% | +0.66% | 3 of 4 |
| Extended | 2 | -1.00% | +9.50% | +2.33% | 2 of 2 |
| No setup | 4 | +3.69% | +7.47% | -1.21% | 2 of 4 |
Seven of the ten beat SPY at two months. That says more about those two months than about any label.
The fresh setups did lead at two months, 10.50% against 9.50% and 7.47%. But one stock, AMD, supplies most of that average, and the "avoid chasing" group was right behind. With four, two and four stocks per group, I can't call that a difference.
The stop is what separated them
The label didn't sort these stocks. The stop came closer.
Within the two-month window, a close below the stop happened in:
- 1 of 4 fresh setups (Amazon, on August 12, at -2.62%)
- 0 of 2 extended stocks
- 3 of 4 with no setup (Alphabet on August 11 at -2.96%, Meta on August 18 at -8.18%, Netflix on September 18 at -3.17%)
For Amazon and Netflix, getting out early was the better outcome at two months: both were lower on October 7 than at their exit. Alphabet was slightly higher at two months (-1.01% against an exit at -2.96%) and much lower by November 11 (-17.12%).
Meta is the one that hurts. The stop took it out at -8.18% seven sessions after the screen, and by October 7 it was up 21.92%. A rule that helps twice, breaks even once and costs you the second-best performer of the ten is still a rule I'd keep, but I'd stop describing it as free.
The window mattered more than the label
Nvidia was up 6.15% at two months and is down 22.34% as of November 11. AMD went from +33.62% to +14.39%, and inside that it closed at 404.40 on November 5 and 552.90 four sessions later.
In August I wrote that these were one to two month trades. The data agrees with that line more than with anything else in the article. At two months, the ten averaged a gain and seven beat the index. Hold the same ten to November 11 and four of them are below their August price.
Where EODHD fits into this workflow
Everything here came from one endpoint. The EODHD APIs end-of-day API returned raw and adjusted OHLC for each ticker, which is all the moving averages, 52-week highs and stops need.
The script requests about 17 months of daily history for 11 symbols: a year before the screen for the 52-week high, plus everything since. The free plan returns one year, so this takes the EOD Historical All-World plan, at $19.99 a month.
From here you can:
- swap in your own watchlist and screen date,
- change a threshold and see which labels flip,
- add the news or fundamentals endpoints to give the rules some of the context the model had.
If you want to grade your own screens, get an EODHD API key here and use the code KEVIN10 at checkout for 10% off.
What I'd actually trust from this
The stop. It fired mostly on the stocks with no setup. Of the four exits, three were in stocks that sit lower today than where the stop took them out. The fourth cost Meta's rally.
The time limit. One to two months was the stated horizon, and the results fall apart when you stretch it.
Not the labels, yet. Ten stocks, one date. Fresh setups and extended names ended within a point of each other at two months.
Not my stock selection. I picked ten famous names in November. That's hindsight in the choice of universe, even if the rules only saw data up to August 7. A fair version of this test uses a list fixed in advance.
What would change this. More dates. One screen day in the middle of an earnings season is a single draw. The same rules on a different Friday could look better or much worse, and I'd want at least a year of them before changing how I trade.
None of this is financial advice. It's me checking my own homework in public, which I should probably do more often.
What I'd change in the five prompts
Two things, both cheap:
- Ask Claude to state the number behind each label. "Near support" should come back as "1.4% above the five-day low", so the same screen can be rerun by code.
- Save the full output the day you run it. I'm testing ten popular stocks instead of the original ten because only three made it into the article.
FAQs
Did the August picks work?
The three named stocks all beat SPY at two months: Microsoft +6.15%, Meta +21.92% and Palantir +12.85%, against +0.76%. Palantir was the one flagged as "avoid chasing".
Do "fresh setup" stocks beat "extended" ones?
Not clearly in this sample. Four fresh setups averaged +10.50% at two months and two extended stocks averaged +9.50%.
Did the stop-loss help?
In three of the four cases where it fired within two months, the stock was lower by November 11 than at the exit. In the fourth, Meta, it exited at -8.18% before a rally to +21.92%.
Can I run this on my own list?
Yes. Change the tickers and the screen date in the script. It needs daily adjusted prices going back 12 months before your screen date.
Want to check your own calls against real prices?
Start with EODHD APIs here and use the code KEVIN10 at checkout for 10% off.
More breakdowns like this one at kevinmeneses.com.
Looking for technical content for your company? I can help — LinkedIn · kevinmenesesgonzalez@gmail.com



