Coverage › Signals › Signal catalog
Price action catalog
Price action has four categories: Performance & change, Gaps, Intraday momentum and Ranges & reversals. Each signal links to its full reference page.
Performance & change
Price change over standard horizons, today through 1 year, plus streaks and day-mover booleans.
| Column | Type | Description |
|---|---|---|
afterhours_change_pct | numeric | Percent change between regular-session close and most recent after-hours print. Sparse — most equities don't trade in after-hours, and the column updates only when a print actually happens. |
change_1d_pct | numeric | Percent change vs previous_close, as a whole percent (0.5 = 0.5%, not a fraction). Signed. Percent scale on every read â live, asof by date and asof by timestamp â since the 2026-09-07 cutover (this signal was day_change_pct as a fraction before it). |
change_1m_pct | numeric | Percent change vs. close ~21 trading days ago. Daily; see change_1w_pct for note. |
change_1w_pct | numeric | Percent change in close vs. the close 5 trading days ago. Computed post-close; does NOT update intraday — use from_open_pct + change_1d_pct for intraday-aware change. |
change_1y_pct | numeric | Percent change vs. close ~252 trading days ago. |
change_3m_pct | numeric | Percent change vs. close ~63 trading days ago. |
change_6m_pct | numeric | Percent change vs. close ~126 trading days ago. |
change_ytd_pct | numeric | Percent change since the first trading day of the calendar year. |
day_change | numeric | Absolute change vs previous_close. |
days_down | integer | Consecutive trading days closing lower than the prior close. Resets to 0 on an up day. |
days_up | integer | Consecutive trading days closing higher than the prior close. Resets to 0 on a down day. |
from_open_pct | numeric | Intraday: percent change from today’s session open to the latest snapshot price. Resets at session boundary. |
premarket_change_pct | numeric | Pre-market: percent change from the previous session close to the latest pre-market print. Resets at session boundary. |
price_down_3pct | event | Intraday move of -3% or worse vs prior close.change_1d_pct <= -3 |
price_up_3pct | event | Intraday move of 3%+ vs prior close.change_1d_pct >= 3 |
top_gainer | state | Among the session's top 20 gainers.Ranks in the top 20 by change_1d_pct among active tickers with price above $1 and session volume above 100k shares. |
top_loser | state | Among the session's top 20 losers.Ranks in the bottom 20 by change_1d_pct among active tickers with price above $1 and session volume above 100k shares. |
Gaps
Opening gaps: size, direction, extremes, and intraday fill.
| Column | Type | Description |
|---|---|---|
gap_pct | numeric | Percent change of session_open vs previous_close. One value per session. |
gap_down | event | Today opened 3%+ below prior close.(close_prev - open) / close_prev >= 0.03, measured at the open. Whether the gap is reclaimed later in the session does not change the flag. |
gap_down_extreme | event | Today opened 10%+ below prior close.(close_prev - open) / close_prev >= 0.10 |
gap_filled_today | event | Today’s opening gap was closed by an intraday move.Opened with gap >= 0.5% AND intraday range straddled close_prev. |
gap_up | event | Today opened 3%+ above prior close.(open - close_prev) / close_prev >= 0.03, measured at the open. Whether the gap holds later in the session does not change the flag. |
gap_up_extreme | event | Today opened 10%+ above prior close.(open - close_prev) / close_prev >= 0.10 |
Intraday momentum
Directional strength read straight off the session's bars: drives, drifts, spikes, rallies, exhaustion.
| Column | Type | Description |
|---|---|---|
afternoon_drift_up | state | Afternoon session net up.close_1600 > close_1200 |
last_hour_rally | event | Final hour of session net up.close_1600 > close_1500 * 1.005 |
last_hour_selloff | event | Final hour of session net down.close_1600 < close_1500 * 0.995 |
microspike_down | event | Single 1-minute candle return ≤ −1%.(close - open) / open <= -0.01 |
microspike_up | event | Single 1-minute candle return ≥ +1%.(close - open) / open >= 0.01 |
momentum_down | state | Sustained downward momentum on the daily bars.Three or more consecutive down days whose average daily move exceeds about 1%. |
momentum_exhaustion_down | event | Downward momentum showing signs of exhaustion.rsi_14 < 30 AND days_down >= 5 |
momentum_exhaustion_up | event | Upward momentum showing signs of exhaustion.rsi_14 > 70 AND days_up >= 5 |
momentum_strong_down | event | Strong downward momentum across multiple measures.days_down >= 3 AND volume_trend_5d = 'increasing' |
momentum_strong_up | event | Strong upward momentum across multiple measures.days_up >= 3 AND volume_trend_5d = 'increasing' |
momentum_up | state | Sustained upward momentum on the daily bars.Three or more consecutive up days whose average daily move exceeds about 1%. |
morning_strength | state | First two hours of session net positive.close_1130 > open_0930 |
opening_drive_down | event | First 5 minutes of session down < −0.5%.close_0935 < open_0930 * 0.995 |
opening_drive_up | event | First 5 minutes of session up > +0.5%.close_0935 > open_0930 * 1.005 |
pre_close_drift_down | event | Last 10 minutes before close net down.close_1600 < close_1550 |
pre_close_drift_up | event | Last 10 minutes before close net up.close_1600 > close_1550 |
pre_earnings_drift | state | Stock has moved ≥5% (absolute) over the trailing week with earnings within 7 days — a setup the literature shows often continues through the report.days_to_earnings BETWEEN 1 AND 7 AND ABS(change_1w_pct) >= 5 |
rapid_move_down_5m | state | Price down more than −0.5% in the last 5 minutes.(close - close_5m_ago) / close_5m_ago <= -0.005 |
rapid_move_up_5m | state | Price up more than +0.5% in the last 5 minutes.(close - close_5m_ago) / close_5m_ago >= 0.005 |
three_down_hours | state | Three consecutive lower hourly closes.close < close_1h_ago < close_2h_ago < close_3h_ago |
three_up_hours | state | Three consecutive higher hourly closes.close > close_1h_ago > close_2h_ago > close_3h_ago |
Ranges & reversals
Range structures and their resolution: opening range, breaks, consolidation, pullbacks, reversals, unusual range width.
| Column | Type | Description |
|---|---|---|
above_opening_range | state | Price is trading above the first 15-minute opening-range high.close > or_high (OR = first 15 min after 09:30 ET) |
below_opening_range | state | Price is trading below the first 15-minute opening-range low.close < or_low (OR = first 15 min after 09:30 ET) |
consolidating_15m | state | Last 15 minutes traded in a tight range.high_15m - low_15m < 0.5 * ((max(close, 30m) - min(close, 30m)) / 15) (ATR-30m proxy, not true ATR) |
consolidation | state | Price is range-bound — the last 5 sessions span less than 5%.(max(high) − min(low)) / midpoint < 0.05 over 5 bars |
expanded_hourly_range | state | This hour’s range is unusually wide.(high - low) > 1.5 * atr_hourly_20 |
hourly_reversal_bearish | event | Higher high, lower close than the prior hour.high > high_1h_ago AND close < close_1h_ago |
hourly_reversal_bullish | event | Lower low, higher close than the prior hour.low < low_1h_ago AND close > close_1h_ago |
in_opening_range | state | Price is inside the first-hour high/low range.or_low <= price <= or_high (OR = first 15 min after 09:30 ET) |
narrow_hourly_range | state | This hour’s range is unusually narrow.(high - low) < 0.5 * atr_hourly_20 |
pullback | state | Pullback to the 20-day moving average within an uptrend.in_uptrend (sma_50 > sma_200 AND price > sma_200) AND price below the 20-day or 50-day SMA by < 2% AND price down >= 2% from the 5-day high. Live evaluation at minute resolution. |
range_break_15m_down | event | Broke below the prior 15-minute low.close < min(low, prior 15 min) |
range_break_15m_up | event | Broke above the prior 15-minute high.close > max(high, prior 15 min) |
range_expansion | event | Today's true range > 2 × ATR(14) with volume — direction-agnostic regime-change tag.true_range > 2 * atr_14 AND volume > 1.5 * avg_volume_10d AND volume > 100,000 |
repeated_test_of_high | state | Tested today’s session high three or more times — failed-breakout setup.Close within 0.1% of the session high (close >= session_high * 0.999) on at least 3 minutes this session. |
repeated_test_of_low | state | Tested today’s session low three or more times — failed-breakdown setup.Close within 0.1% of the session low (close <= session_low * 1.001) on at least 3 minutes this session. |
sticky_breakout | state | Latches on when price makes a 52-week high and stays on until the nightly reset — a persistent breakout tag.set on a 52-week-high breakout; reset each night |