Momentum
MOMMeasures the strength and persistence of recent price trends.
- Captures 1-12 month trend strength
- Uses risk-adjusted returns
- Penalizes crowded and overbought states
How RankAlpha calculates factors, grades, and screens
RankAlpha converts raw market data into comparable signals, grades, and screens. Momentum and Value are required for final grades; Sentiment is optional and reweighted when coverage is missing.
Measures the strength and persistence of recent price trends.
Measures how inexpensive a stock is relative to fundamentals.
Captures the tone and positioning of investor sentiment.
How RankAlpha groups screen styles, builds consensus, and reads market breadth.
Each screener preset is built to catch a specific kind of setup. Basic trading hygiene such as stock-only universes, price floors, and liquidity gates is handled inside the screen before the ranking layer ever sees the result.
RA-Momo-50DayBreakout - Fresh 52-Week Breakout
Names breaking to new highs with real participation behind the move.
New 52-week highs, price above the 50-day and 200-day moving averages, healthy relative volume, price above $10, and average daily volume above roughly 1M shares.
RA-Momo-NearHighContinuation - Near-High Continuation
Leaders that are still trading close to their highs and keeping trend structure intact.
Within about 10% of the 52-week high, price above the 20-day, 50-day, and 200-day moving averages, with positive recent performance.
RA-Momo-Fresh52wBreakout - 50-Day Breakout
Earlier breakout candidates that have not yet made a fresh 52-week high.
New 50-day highs, price above the 50-day and 200-day moving averages, and a modest relative-volume gate.
RA-Pullback-Under50Over200 - Below 50, Above 200
Shallow pullbacks inside longer-term uptrends.
Price above the 200-day moving average but below the 50-day, usually with the shorter trend still intact and recent performance soft enough to signal a pullback rather than a breakout.
RA-Pullback-ChannelUpWeeklyDown - Channel-Up + Weekly Down
Stocks pulling back toward support while staying inside a rising trend channel.
Channel-up structure, weak recent performance, price above the 200-day moving average, and RSI in a neutral range.
RA-MeanReversion-OversoldPop - Oversold Pop
Short-term bounce candidates after a washout.
Oversold RSI, heavy relative volume, and a same-day recovery, with minimum price and liquidity filters in place.
RA-MeanReversion-OversoldUptrend - Oversold but Structural Uptrend
Oversold names that still sit inside a healthier long-term trend.
Oversold RSI, price above the 200-day moving average, and at least moderate participation.
RA-QualityGrowth-EPS - EPS + Sales Acceleration + ROE, Low Leverage
Companies with genuine growth, healthy profitability, and manageable leverage.
Strong EPS and sales growth, solid return on equity, reasonable leverage, and acceptable trend structure.
RA-QualityGrowth-Trend - Sales + Margins + Trend
Names combining strong top-line growth with healthy margins and supportive technicals.
Fast sales growth, solid gross margins, strong return on equity, price above key moving averages, and supportive momentum.
RA-Value-Quality - Quality Value
Cheaper stocks with solid business quality and balance-sheet support.
Reasonable valuation, lower leverage, solid profitability, longer-term trend support, and typically at least mid-cap liquidity.
RA-Value-Dividend - Dividend-GARP
Dividend payers with growth at a reasonable price.
Dividend support, sane payout ratios, reasonable valuation, and trend support, usually among larger-cap names.
RA-Value-IncomeQuality - Income Quality
Dividend franchises with stronger quality characteristics.
Dividend yield, restrained payout, healthy leverage, solid return on equity, and strong ownership or quality filters.
RA-ShortSqueeze-OnTheMove - High Short + On the Move
Crowded shorts that are already starting to move.
High short interest, strong recent volume, and signs of technical acceleration.
RA-ShortSqueeze-NearHigh - High Short Near Highs
Structurally strong stocks near highs with meaningful short crowding.
High short float, trading near highs, and enough liquidity to matter.
RA-Earnings-PreSqueeze - Pre-Earnings Squeeze Bias
Names attracting attention ahead of earnings.
Upcoming earnings, volume expansion, and supportive price action before the print.
RA-Earnings-PostMomo - Post-Earnings Momentum
Stocks showing strong continuation after earnings.
Strong recent performance after the event and price above major moving averages.
RA-IPO-Momo - Young + Ripping
Recent IPOs with real business momentum and strong price action.
Young listings, fast sales growth, fresh highs, and strong participation.
RA-Quality-LowBeta - Low Beta Compounders
Lower-beta ballast with stronger quality characteristics.
Large-cap bias, lower beta, healthier leverage, solid returns on equity, and longer-term trend support.
RA-Short-MomoBreakdown - Momentum Breakdown
Clear structural downtrends with fresh weakness.
Price below the 50-day and 200-day moving averages, new lows, and meaningful relative volume.
RA-Short-Resistance - Overbought Fade into Resistance
Overextended rallies running into nearby resistance.
Overbought RSI, price near recent highs, and signs of fading on the day.
Once the daily screens are produced, RankAlpha asks a narrower question: how many credible ways did this stock show up today, and how strong were those signals? The screener score is designed to reward agreement without letting duplicate-looking hits take over the table.
Every screener belongs to a style family and carries a source weight. Each style also has its own weight and a long or short bias.
Consensus is based on weighted membership, not raw hit counts. Repeated appearances help, but they are measured in a controlled way so one noisy family does not drown out the rest.
Within each style, the first few confirmations matter most. Additional hits still help, but with diminishing returns.
decay = [1.00, 0.70, 0.50, 0.35, 0.25] style_score = style_weight x sum(decay_k x source_weight_k)
LongScore sums all long-side style contributions plus bonuses and streaks.
ShortScore does the same for short-side setups.
NetScore is simply LongScore minus ShortScore.
Percentiles are then computed by side so the leaderboard stays stable and readable from one day to the next.
The final consensus score blends screen placement, breadth, and weighted coverage with the long, short, and net contributions. The result is clipped to a 0-100 range for display.
base = placement + weighted coverage + style breadth + source breadth consensus = base + long contribution - short drag consensus_score = clamp(consensus, 0, 100)
The screener system also helps explain the market backdrop. The goal is to show whether risk-on or risk-off styles are leading, and whether that leadership looks durable or fragile.
Raw breadth can be misleading because bullish and bearish styles should not be treated the same way.
RankAlpha signs breadth by style bias, so bullish styles add to the total while bearish styles subtract from it.
signed breadth = bullish participation - bearish participation net breadth = weighted average of signed style breadth
Pullbacks are not always bullish. In a healthy tape they can reflect buy-the-dip behavior, but in a weak tape they can signal distribution instead.
RankAlpha adjusts the pullback contribution depending on how strong breakouts look and how much stress is coming from risk-off styles.
Beyond raw intensity, RankAlpha also tracks flows: new entrants, exits, continuers, churn, and how setups are resolving across days.
Those flow measures are standardized and rolled into broader composites such as Momentum Breadth, Breakdown Breadth, Defensive Breadth, and Risk-Off Pressure.
regime score = positive trend forces - negative defensive forces smoothed regime score = rolling mean of regime score labels = Trend / Chop / Risk-Off depending on sustained score levels
Each screener emits daily symbol hits into the screener fact tables.
Styles and sources are controlled by dimension tables so weights and opt-outs can be adjusted without rewriting the scoring logic.
Views expose both the latest screener values and the enriched consensus composite used by the API.
The screener consensus API returns daily long, short, and net aggregates plus percentiles for display in the app.
Why use tiers?
Tiers capture selectivity. A fresh 52-week breakout should not be treated the same way as a looser near-high condition.
Why use decay?
Decay keeps six near-duplicate signals from overpowering the score. Early confirmation matters most.
Why reward breadth?
Different styles test a stock from different angles. Cross-style agreement is rarer and often more durable.
What about liquidity and price floors?
Those filters are enforced inside the screens themselves, so the ranking layer does not need to penalize them again later.
What if a screen definition changes?
The screener remains just one weighted source inside the system. Update the definition and weight, and the broader scoring framework still holds.