Two In The Pink And One In The Stink — A Practical Guide
I've been running this setup on my small-cap momentum screen for about four years now. Most people treat it like a magic bullet. It's not. It's a pattern recognition filter that cuts your watchlist down from 400 names to roughly three that actually deserve your time. The core idea is deceptively simple but the execution requires discipline most traders don't have. You screen for three stocks in the same sector on any given day. Two of them are up — in the pink — showing strength relative to the group. One of them is down — in the stink — lagging the sector despite similar fundamentals or catalyst exposure. The edge comes from the divergence, not from any single stock. Here's how I actually build the screen. First, pick a sector ETF. I usually rotate between XBI for biotech, ICLN for clean energy, and VGT for tech hardware. Any will do, but you need consistency. Second, pull the constituents and sort by market cap, keeping everything above two hundred million. That eliminates the penny-stock garbage that shows up on retail scanners. Third, check daily price change. I'm looking for two gappers up at least two percent and one loser down at least one point five percent. The threshold matters less than the spread between the best and worst performer.
The trick most people miss is that the stock in the stink isn't the one you're hunting. The stinker is your control group. It tells you whether weakness is idiosyncratic or sector-wide. If all three are down, the sector is rotating and you step aside. If two are strong and one is weak, the strong ones have alpha and the weak one has a company-specific problem. That's your watchlist for the next session. I learned this the hard way in March of last year. I was running the screen on a semiconductor sub-sector ETF and found two names up over four percent and one down two percent. The stinker had a supply chain issue that wasn't priced in yet — I knew this because their guidance came out the week before and the market ignored it. Meanwhile the two winners were actually just chasing momentum with no earnings support. I sold into the strength on day one and the winners gave back three quarters of their gains within a week. The stinker bottomed at the support level and ran eighteen percent over the following month. The pattern worked, but I applied it wrong by focusing on the pink instead of the stink. Now I do the opposite. I watch the laggard first. If the stinker breaks below its twenty-day low on above-average volume, I exit the entire screen. No half measures. If it holds support, I look for the two pink names to pull back into their five-day moving average, which is usually where the entry sits. Entry is never on the initial gap. That's amateur hour. I wait for the crowd to exhaust itself, usually forty-eight to seventy-two hours after the screen fires.
The indicators I actually use: Relative strength compared to the sector ETF, not the S&P. A stock can be up five percent and still underperform if the sector is up eight. Volume confirmation on the pullback, ideally shrinking volume during the red candles and expanding on the green ones. Short interest matters when it's above twelve percent — I avoid those because the stink can persist due to short covering rather than fundamental weakness. There's a bottleneck this strategy hits hard. In quiet markets, you might only get one valid screen per week instead of two or three. That's fine. Missing a trade is better than forcing one. I've also seen this break down completely during Fed announcement weeks because sector rotation gets noise-driven and the two-pink-one-stink signal becomes meaningless. I simply don't run the screen Tuesday through Thursday around FOMC dates. The alternative is to widen your sector basket to five ETFs and screen across them simultaneously, but that introduces correlation risk you probably aren't hedging for.
Get the Full Details

If you want to automate this, the Python approach is straightforward. Use yfinance for price data, sector ETFs from the standard list, and filter with a simple pandas merge on date. The whole backtest runs in about three seconds on a laptop. I don't recommend any commercial tools for this — the logic is too simple to justify a subscription. Free alternatives like TradingView's script editor can do it in Pine Script if you prefer that interface. The real reason this works for me is emotional. It removes the FOMO from watching hot stocks pop without context. Instead of chasing whatever is green at eleven in the morning, I know exactly which names I'll watch and why. Two strong, one weak, wait for the entry. That's it. No more staring at ten different charts wondering which one has the best odds. I've attached a basic Pine Script that fires an alert when your conditions are met. You'll need to plug in your own sector ETF ticker. The script checks the top twelve holdings by weight, screens for the pattern, and alerts on the pink two while logging the stink separately in the alert message so you can review the control group. I use it on a fifteen-minute chart during the first hour of trading. After that, I let the screen run in the background and only act on the pre-market setup.
One more thing nobody talks about. The pattern fails silently in earnings season. Companies report on different schedules, and a single guidance miss can flip a pink into a stink overnight with no technical warning. I add a simple earnings date filter to my screen and skip any stock reporting within three calendar days. This alone improved my win rate from about forty-two percent to fifty-six percent over six months of forward testing. Not sexy. Just mechanics.