How to find sector leaders with Claude or ChatGPT
Reviewed
What counts
A sector groups companies with similar businesses, such as energy or health care. Its leader here is the stock with the largest price gain over 20 trading sessions.
The rule Monk.trade uses: the highest 20-session return in each sector, among common stocks averaging at least $20M of trading value a day over the preceding 20 sessions.
Ask it
Using Monk.trade, find the strongest stock in each sector over the last 20 trading sessions. Keep common stocks averaging at least $20M traded a day over the preceding 20 sessions, and show each return.
Opens with the question filled in; nothing is sent until you press send. Not connected? Help
The query, line by line
Your app writes this MonkQL from the prompt. Each line does one thing.
from stocksScan active US stocks.
include type == "common" and sma(close * volume, 20)[1] >= 20000000Set the comparison group: common stocks with at least $20M in average daily trading value over the preceding 20 sessions.
where rank(roc(close, 20) by sector) == 1Keep the highest 20-session return in each sector.
show sector, close, roc(close, 20) as ret_20dShow the business group, closing price and percentage change.
sort ret_20d descPut the largest gain first.
Variations
Weakest in each sector
“Using Monk.trade, find the weakest stock in each sector over 20 sessions. Keep the same common-stock and $20M average daily trading value rules.”
from stocks include type == "common" and sma(close * volume, 20)[1] >= 20000000 where rank(-roc(close, 20) by sector) == 1 show sector, close, roc(close, 20) as ret_20d sort ret_20d ascLeaders above their 50-day average
“Using Monk.trade, keep the strongest stock in each sector only when its close is above its 50-day average. Use the same 20-session return and $20M trading value floor.”
from stocks include type == "common" and sma(close * volume, 20)[1] >= 20000000 where rank(roc(close, 20) by sector) == 1 and close > sma(close, 50) show sector, close, roc(close, 20) as ret_20d, sma(close, 50) as avg_50d sort ret_20d desc
Example result
Example · run · data to
| Symbol | Group | Close | Return |
|---|---|---|---|
| VEEA | Information Technology | $6.12 | +144.8% |
| TCRT | Health Care | $2.05 | +113.4% |
| RRC | Energy | $56.37 | +52.8% |
| OLB | Industrials | $0.29 | +49.6% |
| FIGS | Consumer Discretionary | $20.48 | +45.7% |
| CCI | Real Estate | $87.89 | +31.0% |
| CLF | Materials | $13.89 | +26.2% |
| SLDE | Financials | $28.39 | +26.2% |
| LW | Consumer Staples | $53.76 | +24.2% |
| TRI | Communication Services | $116.42 | +21.0% |
| BKH | Utilities | $81.83 | +16.5% |
The run returned one stock for each of 11 sectors. It left 25 stocks undecided and warned that 96 symbols had no sector; those names cannot be compared within a group. Run 01a17f13-4be5-7bb1-9794-a537c8744f56
Research on sectors
- How did oil and airline stocks move as crude passed $100?
Jul 27 to Oct 23, 2026: WTI crude futures +26.1%; 14 of 15 stocks filed as airlines fell, while 13 of 15 integrated oil and refining stocks and 50 of 61 producers rose.
Limits
- A leader is strongest only within the stocks that pass the size-of-trading rule.
- Missing sectors or short price histories leave stocks out of the comparison.
- Prices are adjusted for recorded share splits; company changes can still distort a return.
- A past gain does not predict the next move.
Research only. Not investment advice. Read the risk notice
Not connected? Help