CANSLIM Screen: 39 Stocks, Pharma Leads, One VCP Stands Out

I ran another CANSLIM screen this morning and got 39 names. That’s a decent number, but what caught my eye was the industry breakdown — Pharmaceuticals, Biotechnology & Life Sciences dominates with 11 stocks. Health Care Equipment & Services and Banks each have 4. That’s where the smart money is congregating right now.

What makes these stocks CANSLIM?

Every stock here passes the basic O’Neil rules. C (current earnings): quarterly EPS growth of 20% or more. A (annual earnings): strong growth too. N (new): each stock is within 15% of its 52-week high, meaning something new is happening — a new product, a new CEO, or just a new uptrend. S (supply and demand): average volume is above 100,000 shares, so institutions can trade them. The screen filters out the junk, but the chart work is still on us.

AAMI — Textbook VCP, worth a close look

This is the cleanest setup on the list. AAMI shows a volatility contraction pattern with three contractions: 19.2% → 14.0% → 7.1%. Each pullback is smaller than the last, and volume is drying up inside the base. That’s the Minervini signature. Base depth is 19.2% over 5.6 weeks — a bit shallow for a cup, but fine for a VCP. The 50-day moving average is at $76.61, and price sits 5.5% above it. The 200-day is rising, confirming Stage 2. The up/down volume ratio over 20 days is 1.23, showing mild accumulation. I like the tape here, but I’d wait for a proper breakout on heavy volume before pulling the trigger.

ASND — Flat base, but too early

ASND is forming a flat base, but it’s only 2.8 weeks old. O’Neil says a flat base needs at least 5 weeks. The depth is 12.6%, which is fine, but the base isn’t mature yet. The contraction sequence is shrinking — 7.5% → 6.5% → 5.2% — and volume is drying up. That’s promising. But the 10-day moving average is $254.61, and price is at $252, sitting just below it. This one needs more time. Watch only.

ATLC — Double bottom, but the contraction isn’t tightening

ATLC has a double bottom pattern, 19.6% deep over 4.4 weeks. The buy point area is around $104.58. But the contraction sequence isn’t shrinking: 18.2% → 13.4% → 14.6%. That last pullback was bigger than the one before it. That’s not a VCP. The up/down volume ratio is 1.29, which is decent accumulation. Price is 10.6% above the 50-day, so it’s not extended yet. I’d put this in the “forming a base” bucket, but the pattern isn’t tight enough for my taste.

BTSG — At a 52-week high, no base yet

BTSG is at a new high with only 2 sessions of base-building. That’s not a base at all. The 10-day/50-day volume ratio is 1.47, which means volume is heating up. But the up/down volume ratio over 20 days is 0.48 — that’s distribution. Funds are selling on up days. This one worries me. No base, mixed volume. Skip it.

CARE — Testing highs, volume not confirming

CARE is testing its 52-week high, but volume isn’t confirming the breakout yet. The up/down volume ratio is 1.84, which is strong accumulation. Price is 11.9% above the 50-day, so it’s a bit extended. The base is only 0.6 weeks old — that’s nothing. This stock is under accumulation, but there’s no proper entry point. Watch for a pullback to the 50-day or a tight consolidation.

CCNE — At a 52-week high, no base

CCNE is at a new high with zero sessions of base-building. The 10-day/50-day volume ratio is 0.87, below average. The up/down volume ratio is 1.39, showing some accumulation. But without a base, there’s no pattern to trade. This is a chase, not a setup. Pass.

CDNA — Extended, 28.6% above the 50-day

CDNA is 28.6% above its 50-day moving average. That’s extended by any measure. O’Neil says don’t buy a stock more than 5-10% above the 50-day. The 10-day/50-day volume ratio is 1.37, so volume is above average, but the up/down volume ratio is 0.76 — distribution. The flat base is only 1.6 weeks old, too early. This is a late-stage chase. I’d avoid it.

DINO — Under accumulation, but no base

DINO has an up/down volume ratio of 2.04 over 20 days. That’s heavy accumulation. Price is 19.9% above the 50-day, which is extended. The stock is at a 52-week high with only 1 session of base-building. No pattern. The 10-day/50-day volume ratio is 1.26, so volume is picking up. This is a strong stock, but there’s no entry. Wait for a pullback or a proper base.

ENVA — At a 52-week high, extended

ENVA is 19.7% above the 50-day and at a new high with no base. The up/down volume ratio is 0.62 — distribution. The 10-day/50-day volume ratio is 1.18, slightly above average. This stock is extended and showing distribution. Not a buy.

ESTA — Bull flag, but volume is drying up

ESTA has a bull flag: a 21.2% pole over 19 sessions, then a 6-session flag that’s 7.8% deep. Volume is drying up inside the flag, which is good. The 50-day is at $83.17, and price is 10.5% above it. The 200-day is rising. The up/down volume ratio is 1.57, showing accumulation. This is a constructive pattern. A breakout above the flag high on heavy volume would be a buy signal. Watch it.

GKOS — At a 52-week high, no base

GKOS is at a new high with zero base-building sessions. Price is 17.9% above the 50-day — extended. The up/down volume ratio is 1.42, showing accumulation. But there’s no pattern. The 10-day/50-day volume ratio is 0.79, below average. This stock is strong but not tradeable right now. Wait for a base.

GRND — Deep base, failure-prone

GRND has a base that’s 47.9% deep over 48.8 weeks. O’Neil says bases deeper than 33% are failure-prone. The contraction sequence isn’t shrinking: 37.2% → 31.7% → 40.2%. That last pullback was bigger. Price is 24.3% above the 50-day, extended. The 200-day is rising, so it’s in Stage 2, but the pattern is too loose. I’d pass on this one.

INSW — Tight contraction near highs, no base

INSW is at a 52-week high with no base. But the daily range is tightening — 3.2% over the last 10 days versus 4.59% over the prior 30. That’s a positive sign. The up/down volume ratio is 1.88, strong accumulation. Price is 12.2% above the 50-day. No base means no entry, but the tight action is worth watching. If it forms a flag or a flat base, it could be a buy.

KNSA — Extended, 39.8% above the 50-day

KNSA is 39.8% above its 50-day moving average. That’s way too extended. The up/down volume ratio is 1.66, showing accumulation, but the risk of a pullback is high. No base. This is a chase. Avoid it.

KRYS — Flat base forming, too early

KRYS has a flat base that’s 4.0 weeks old — needs at least 5 weeks. Depth is 15.0%, which is fine. But the contraction sequence isn’t shrinking: 5.0% → 12.5% → 11.9%. That’s not a VCP. The 10-day/50-day volume ratio is 1.98, well above average. The up/down volume ratio is 0.35 — heavy distribution. Price is 8.5% above the 50-day. This one has mixed signals. Watch only.

LFST — Bull flag, good setup

LFST has a bull flag: a 36.6% pole over 20 sessions, then a 7-session flag that’s 9.1% deep. Volume is not explicitly drying up, but the flag depth is reasonable. Price is 15.1% above the 50-day, a bit extended. The 200-day is rising. The up/down volume ratio is 0.91, neutral. This is a constructive pattern. A breakout above the flag high on volume would be a buy. Watch it.

LPG — Mature cup base, strong setup

LPG has a cup-shaped base that’s 9.4 weeks old and 28.3% deep. That’s within O’Neil’s 15-33% range for a cup. The base is mature. Volume is drying up inside the base, which is good. The contraction sequence isn’t shrinking — 17.2% → 23.7% → 18.3% — but that’s okay for a cup base. The up/down volume ratio is 2.44, heavy accumulation. Price is 10.1% above the 50-day. This is a solid setup. I’d look for a breakout above the cup’s left high on heavy volume.

LQDA — Testing highs, volume not confirming

LQDA is testing its 52-week high with only 3 sessions of base-building. Volume is drying up, but the up/down volume ratio is 1.09, barely above neutral. Price is 20.3% above the 50-day — extended. The 10-day/50-day volume ratio is 0.76, below average. No base, extended. Pass.

LWAY — Double bottom, but deep and loose

LWAY has a double bottom that’s 49.4% deep over 43.2 weeks. That’s too deep — failure-prone. The contraction sequence isn’t shrinking: 38.7% → 30.6% → 31.6%. Volume is drying up, but the pattern is too loose. The up/down volume ratio is 0.69, distribution. Price is 13.8% above the 50-day. This one doesn’t look good. Skip it.

MAMA — Bear flag, weak setup

MAMA has a bear flag: a 21.6% drop, then a weak 7-session drift. Price is still about 10% below the high. The contraction sequence is shrinking — 17.3% → 14.9% → 11.6% — but this is a bear flag, not a bullish pattern. The up/down volume ratio is 1.43, showing accumulation, but the structure is weak. Price is 8.7% above the 50-day. This is a building-a-base-mid-correction setup. Watch only.

How I would use this list

I’d focus on the stocks with mature bases and tight patterns. AAMI’s VCP and LPG’s cup base are the strongest setups here. ESTA and LFST have bull flags worth watching. For any of these, I’d wait for a proper breakout on volume at least 50% above average. I’d set a stop loss at 7-8% below my entry, as O’Neil teaches. And I’d check the general market (the M in CAN SLIM) — if the market is in a correction, I’d sit on my hands. No buy or sell recommendations here, just the framework.

FAQ

What is the CANSLIM screen?

The CANSLIM screen is a stock filter based on William O’Neil’s investing system. It looks for stocks with strong earnings growth, rising sales, new highs, and institutional buying. The screen I ran today found 39 stocks that meet those basic criteria.

What does “extended” mean in stock charts?

“Extended” means a stock has risen too far above its 50-day moving average — usually more than 10-15%. Buying an extended stock is risky because it’s likely due for a pullback. It’s better to wait for it to form a new base.

What is a volatility contraction?

A volatility contraction (VCP) is a pattern where each pullback in a base is smaller than the last. It shows that sellers are losing power and the stock is getting ready to break out. Mark Minervini popularized this setup as a sign of tight institutional support.

This content is for educational purposes only and does not constitute financial advice. Always do your own research before trading.

AAMI daily stock chart with 10, 20, 50, 150 and 200-day moving averages — VCP: contractions 19.2% -> 14.0% -> 7.1%, volume drying up
AAMI daily chart: price vs 10/20/50/150/200-day moving averages (see legend), volume below. VCP: contractions 19.2% -> 14.0% -> 7.1%, volume drying up
ASND daily stock chart with 10, 20, 50, 150 and 200-day moving averages — Flat base forming (too early): only 2.8wk (needs >=5wk), 12.6% deep
ASND daily chart: price vs 10/20/50/150/200-day moving averages (see legend), volume below. Flat base forming (too early): only 2.8wk (needs >=5wk), 12.6% deep
ATLC daily stock chart with 10, 20, 50, 150 and 200-day moving averages — Double bottom (W): lows near 90.59, mid pivot 104.58 = buy point area, 4.4wk / 19.6% deep
ATLC daily chart: price vs 10/20/50/150/200-day moving averages (see legend), volume below. Double bottom (W): lows near 90.59, mid pivot 104.58 = buy point area, 4.4wk / 19.6% deep
BTSG daily stock chart with 10, 20, 50, 150 and 200-day moving averages — At 52-week high (no base yet)
BTSG daily chart: price vs 10/20/50/150/200-day moving averages (see legend), volume below. At 52-week high (no base yet)
CARE daily stock chart with 10, 20, 50, 150 and 200-day moving averages — Testing 52-week high (volume not yet confirming)
CARE daily chart: price vs 10/20/50/150/200-day moving averages (see legend), volume below. Testing 52-week high (volume not yet confirming)
CCNE daily stock chart with 10, 20, 50, 150 and 200-day moving averages — At 52-week high (no base yet)
CCNE daily chart: price vs 10/20/50/150/200-day moving averages (see legend), volume below. At 52-week high (no base yet)
CDNA daily stock chart with 10, 20, 50, 150 and 200-day moving averages — Flat base forming (too early): only 1.6wk (needs >=5wk), 13.2% deep
CDNA daily chart: price vs 10/20/50/150/200-day moving averages (see legend), volume below. Flat base forming (too early): only 1.6wk (needs >=5wk), 13.2% deep
DINO daily stock chart with 10, 20, 50, 150 and 200-day moving averages — At 52-week high (no base yet)
DINO daily chart: price vs 10/20/50/150/200-day moving averages (see legend), volume below. At 52-week high (no base yet)
ENVA daily stock chart with 10, 20, 50, 150 and 200-day moving averages — At 52-week high (no base yet)
ENVA daily chart: price vs 10/20/50/150/200-day moving averages (see legend), volume below. At 52-week high (no base yet)
ESTA daily stock chart with 10, 20, 50, 150 and 200-day moving averages — Bull flag: +21.2% pole in 19 sessions, flag 6 sessions / 7.8% deep
ESTA daily chart: price vs 10/20/50/150/200-day moving averages (see legend), volume below. Bull flag: +21.2% pole in 19 sessions, flag 6 sessions / 7.8% deep
GKOS daily stock chart with 10, 20, 50, 150 and 200-day moving averages — At 52-week high (no base yet)
GKOS daily chart: price vs 10/20/50/150/200-day moving averages (see legend), volume below. At 52-week high (no base yet)
GRND daily stock chart with 10, 20, 50, 150 and 200-day moving averages — Deep base (>33% correction, failure-prone): 48.8wk, 47.9% deep
GRND daily chart: price vs 10/20/50/150/200-day moving averages (see legend), volume below. Deep base (>33% correction, failure-prone): 48.8wk, 47.9% deep
INSW daily stock chart with 10, 20, 50, 150 and 200-day moving averages — At 52-week high (no base yet)
INSW daily chart: price vs 10/20/50/150/200-day moving averages (see legend), volume below. At 52-week high (no base yet)
KNSA daily stock chart with 10, 20, 50, 150 and 200-day moving averages — At 52-week high (no base yet)
KNSA daily chart: price vs 10/20/50/150/200-day moving averages (see legend), volume below. At 52-week high (no base yet)
KRYS daily stock chart with 10, 20, 50, 150 and 200-day moving averages — Flat base forming (too early): only 4.0wk (needs >=5wk), 15.0% deep
KRYS daily chart: price vs 10/20/50/150/200-day moving averages (see legend), volume below. Flat base forming (too early): only 4.0wk (needs >=5wk), 15.0% deep
LFST daily stock chart with 10, 20, 50, 150 and 200-day moving averages — Bull flag: +36.6% pole in 20 sessions, flag 7 sessions / 9.1% deep
LFST daily chart: price vs 10/20/50/150/200-day moving averages (see legend), volume below. Bull flag: +36.6% pole in 20 sessions, flag 7 sessions / 9.1% deep
LPG daily stock chart with 10, 20, 50, 150 and 200-day moving averages — Cup-shaped base (mature): 9.4wk, 28.3% deep
LPG daily chart: price vs 10/20/50/150/200-day moving averages (see legend), volume below. Cup-shaped base (mature): 9.4wk, 28.3% deep
LQDA daily stock chart with 10, 20, 50, 150 and 200-day moving averages — Testing 52-week high (volume not yet confirming)
LQDA daily chart: price vs 10/20/50/150/200-day moving averages (see legend), volume below. Testing 52-week high (volume not yet confirming)
LWAY daily stock chart with 10, 20, 50, 150 and 200-day moving averages — Double bottom (W): lows near 17.31, mid pivot 32.71 = buy point area, 43.2wk / 49.4% deep
LWAY daily chart: price vs 10/20/50/150/200-day moving averages (see legend), volume below. Double bottom (W): lows near 17.31, mid pivot 32.71 = buy point area, 43.2wk / 49.4% deep
MAMA daily stock chart with 10, 20, 50, 150 and 200-day moving averages — Bear flag: -21.6% drop then weak 7-session drift, price still ~10%+ below the high
MAMA daily chart: price vs 10/20/50/150/200-day moving averages (see legend), volume below. Bear flag: -21.6% drop then weak 7-session drift, price still ~10%+ below the high


Discover more from CANSLIM Research

Subscribe to get the latest posts sent to your email.

☕ Support this site. Buy me a coffee!

$10$50$100

Leave a Reply

Discover more from CANSLIM Research

Subscribe now to keep reading and get access to the full archive.

Continue reading