How to find breakouts with Claude or ChatGPT
Reviewed
What counts
A breakout is a move beyond a recent price boundary. This scan asks for a close above the highest price of the preceding 20 sessions, with heavier trading.
The rule Monk.trade uses: a close above the prior 20-session high on at least 1.5 times the preceding 20-session average volume, among common stocks averaging at least $20M traded a day over those sessions.
Ask it
Using Monk.trade, find common stocks closing above their prior 20-session high on at least 1.5 times average volume. Require at least $20M in average daily trading value over the preceding 20 sessions.
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] >= 20000000Keep common stocks averaging at least $20M in daily trading value over the preceding 20 sessions.
where close > highest(high, 20)[1] and volume >= 1.5 * sma(volume, 20)[1]Require a close above the preceding 20-session high and volume at least 1.5 times its preceding 20-session average.
show close, highest(high, 20)[1] as prior_high, volume / sma(volume, 20)[1] as vol_ratioShow the close, the old high and today’s volume as a multiple of that average.
sort vol_ratio descPut the largest volume multiple first.
take 5Show five stocks.
Variations
55-day breakouts
“Using Monk.trade, find closes above the prior 55-session high. Keep common stocks, the $20M trading value floor and at least 1.5 times the preceding 20-session average volume.”
from stocks include type == "common" and sma(close * volume, 20)[1] >= 20000000 where close > highest(high, 55)[1] and volume >= 1.5 * sma(volume, 20)[1] show close, highest(high, 55)[1] as prior_high, volume / sma(volume, 20)[1] as vol_ratio sort vol_ratio desc take 5Breakouts near a 52-week high
“Using Monk.trade, keep 20-session breakouts closing within 5% of their 52-week high. Keep common stocks, the $20M trading value floor and at least 1.5 times average volume.”
from stocks include type == "common" and sma(close * volume, 20)[1] >= 20000000 where close > highest(high, 20)[1] and volume >= 1.5 * sma(volume, 20)[1] and close >= 0.95 * highest(high, 252) show close, highest(high, 20)[1] as prior_high, volume / sma(volume, 20)[1] as vol_ratio sort vol_ratio desc take 5
Example result
Example · run · data to
| Symbol | Close | Prior high | Volume / average |
|---|---|---|---|
| RRC | $56.37 | $53.65 | 4.1× |
| CRML | $8.13 | $7.79 | 3.7× |
| SOFI | $16.39 | $16.25 | 3.6× |
| KNSA | $89.17 | $84.06 | 3.5× |
| HRI | $156.00 | $141.29 | 3.1× |
31 stocks matched; the table shows the first five by volume multiple. Another 23 lacked enough price history. Run 01a17f13-8ed8-7e53-9074-7479d8a29205
Limits
- The high and volume averages exclude today, so the new move cannot raise its own comparison.
- Missing price history can leave a stock undecided.
- Prices are adjusted for recorded share splits; company changes can still affect comparisons.
- A close above an old high can reverse on the next session.
Research only. Not investment advice. Read the risk notice
Not connected? Help