> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stratalerts.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Equities Metrics

> Real-time technical indicators and VWAP sigma bands computed continuously for every equity in the scanner universe, with configurable metric alerts.

## Real-time technical indicators for equities

StratAlerts computes a set of core technical indicators in real time for every equity symbol in the scanner universe. As trades and candle aggregates stream in during the session, the platform updates each metric continuously — you always see the latest value without refreshing or waiting for a candle close.

Aggregate-driven indicators (EMA, SMA, RSI, ATR) now update live for every runtime timeframe — **15m, 30m, 60m, 4H, D, W, M, Q, Y** — from the developing candle, not just on candle close. This means your metrics reflect the current bar's progress across all timeframes the scanner tracks.

The metrics pipeline covers two categories: **aggregate-driven indicators** derived from candle data (EMA, SMA, RSI, ATR) and **trade-driven indicators** derived from individual trades (session VWAP with sigma bands).

## Available metrics

<CardGroup cols={2}>
  <Card title="EMA (9, 12, 20, 26, 50, 200)" icon="chart-line">
    Exponential moving averages updated on every new candle aggregate. Six periods are available: the 9 and 12 for fast momentum reads, the 20 for short-term trend, the 26 for intermediate confirmation (commonly paired with the 12 for MACD-style analysis), the 50 for swing-level trend, and the 200 for long-term direction.
  </Card>

  <Card title="SMA (20)" icon="chart-line-up">
    Simple moving average over the last 20 closing prices. Useful for comparing smoothed price action against the faster EMA equivalents.
  </Card>

  <Card title="RSI (14)" icon="gauge">
    Relative strength index with a 14-period lookback. The platform tracks oversold (below 30) and overbought (above 70) transitions and emits events when RSI crosses these thresholds.
  </Card>

  <Card title="ATR (14)" icon="arrows-left-right">
    Average true range over 14 periods. Gives you a real-time read on volatility for each symbol — useful for sizing positions and setting stops. The platform also tracks ATR-based high/low proximity and fires events when price enters or leaves the zone near the ATR high or ATR low.
  </Card>

  <Card title="Session VWAP" icon="scale-balanced">
    Volume-weighted average price computed from individual trades throughout the session. VWAP resets each trading day and reflects the true average price weighted by volume.
  </Card>

  <Card title="VWAP sigma bands" icon="chart-area">
    Statistical bands at 2 and 3 standard deviations above and below session VWAP. When price touches or crosses a band, the platform fires a metric event you can use to trigger alerts.
  </Card>

  <Card title="RVOL (20)" icon="volume-high">
    Relative volume compared to the 20-day average at the same time of day. An RVOL of 2.0 means volume is running at twice the typical pace for that point in the session. RVOL updates in real time for every runtime timeframe and is available for both equities and futures.
  </Card>

  <Card title="Opening Range (ORB)" icon="brackets-curly">
    The high and low of the first completed bar of a session, tracked for the 15-minute, 30-minute, and 60-minute timeframes. Once the defining bar closes, the opening range locks and the platform monitors live price against the ORB high and ORB low for the rest of the session. Bull and bear break events fire intrabar — as soon as price crosses the level — so you can set ORB alerts without watching every chart.
  </Card>
</CardGroup>

## How the metrics work

### Aggregate-driven indicators

EMA, SMA, RSI, and ATR are computed from candle aggregates — the same OHLCV data that powers the setups engine. Each time a new aggregate arrives for a symbol and timeframe, all six EMA periods (9, 12, 20, 26, 50, 200) plus SMA, RSI, and ATR update. Metrics update live for every runtime timeframe (**15m, 30m, 60m, 4H, D, W, M, Q, Y**) from the developing candle path, so you see intrabar progress on higher timeframes without waiting for the bar to close.

Indicator state is bootstrapped from historical candles at startup, so EMA, SMA, RSI, and ATR values are available from the first update of the session — you never see blank or partially seeded metrics while the system catches up.

**RSI threshold events** fire automatically when the indicator crosses key levels:

| Event              | Condition               |
| ------------------ | ----------------------- |
| Entered oversold   | RSI drops below 30      |
| Exited oversold    | RSI rises back above 30 |
| Entered overbought | RSI rises above 70      |
| Exited overbought  | RSI drops back below 70 |

**ATR proximity events** fire when price approaches or retreats from the ATR-derived high or low:

| Event                 | Condition                                    |
| --------------------- | -------------------------------------------- |
| Entered ATR high zone | Price moves within proximity of the ATR high |
| Left ATR high zone    | Price retreats away from the ATR high        |
| Entered ATR low zone  | Price moves within proximity of the ATR low  |
| Left ATR low zone     | Price retreats away from the ATR low         |

### Trade-driven indicators

Session VWAP and its sigma bands are computed from individual trade executions, not candle data. Every trade updates the running VWAP and recalculates the standard deviation bands in real time.

The platform tracks where price sits relative to the VWAP bands and fires events on transitions:

| Event               | Condition                                         |
| ------------------- | ------------------------------------------------- |
| Touched +2σ         | Price moves above the upper 2-sigma band          |
| Touched −2σ         | Price moves below the lower 2-sigma band          |
| Touched +3σ         | Price moves above the upper 3-sigma band          |
| Touched −3σ         | Price moves below the lower 3-sigma band          |
| Re-entered from +2σ | Price returns inside the 2-sigma range from above |
| Re-entered from −2σ | Price returns inside the 2-sigma range from below |
| Re-entered from +3σ | Price returns inside the 3-sigma range from above |
| Re-entered from −3σ | Price returns inside the 3-sigma range from below |

<Tip>
  VWAP sigma bands are especially useful for identifying mean-reversion opportunities. A stock that touches the −2σ band during an otherwise bullish session may be presenting a pullback entry, while a touch of +3σ could signal overextension.
</Tip>

## Metric alerts

You can create custom metric alert rules from **Alerts → Metrics** that fire when specific indicator conditions occur in real time. There are two layers of metric alerting:

### Custom metric alert rules

Custom rules let you define named alert rules that evaluate directly from the live metrics pipeline. Each rule specifies a **rule type**, **timeframes**, **symbol scope**, and **type-specific parameters**. Go to **Alerts → Metrics** to create and manage rules.

Every rule includes a **timeframe selector** that controls which candle periods the rule evaluates against. Available timeframes are **15m, 30m, 60m, 4H, 12H, D, W, M, Q, Y**. The default selection is 60m, 4H, 12H, D, W, M, Q, and Y. The rule fires independently per selected timeframe — for example, an RVOL rule can alert on 60-minute volume separately from daily volume. VWAP bands rules do not show the timeframe selector — they always evaluate against session VWAP. Initial Balance rules do not use the timeframe selector — they always reference the first closed 60-minute session window. ORB rules have their own timeframe selector limited to **15m, 30m, and 60m**.

Available rule types:

<AccordionGroup>
  <Accordion title="RVOL high">
    Fires when a symbol's relative volume exceeds a threshold you set on any of your selected timeframes. RVOL compares current volume to the 20-day average at the same time of day. A value of 2.0 means twice the normal volume — often a sign of unusual institutional activity or a catalyst-driven move. The rule evaluates each selected timeframe independently, so you can catch volume spikes on the 60-minute bar without also needing a daily threshold breach.
  </Accordion>

  <Accordion title="VWAP bands">
    Fires when price touches or crosses a VWAP sigma band (±2σ or ±3σ). Catches mean-reversion opportunities or flags overextended moves without requiring you to watch every chart.
  </Accordion>

  <Accordion title="ATR High/Low">
    Fires when price approaches or crosses the ATR-derived high or low level. Each rule provides two per-side toggles — **Near** (price enters the proximity zone) and **Crossing** (price crosses through the level) — that you can enable independently for ATR highs and ATR lows. The rule evaluates on each selected timeframe, so you can monitor intraday ATR levels on the 60m bar while also tracking the daily ATR range. See [Realtime alerts](/scanner/alerts#metrics-alerts) for full configuration details.
  </Accordion>

  <Accordion title="Initial Balance">
    Fires when price breaks above or below the initial balance range, or pulls back to the 50% midpoint after a break. The initial balance is the high and low of the first closed 60 minutes after the regular equities session open. Once the first hour closes, the system locks the IB high, IB low, and IB midpoint, then monitors live price against those levels for up to 6 hours. After 6 hours the range expires and stops producing new alert events — this prevents stale levels from firing late in the day when they are no longer meaningful. You independently toggle bull/bear sides and break/pullback event types when creating the rule. See [Realtime alerts](/scanner/alerts#metrics-alerts) for the full list of Initial Balance event types and cooldown behavior.
  </Accordion>

  <Accordion title="Opening Range Breakout (ORB)">
    Fires when price breaks above the opening range high (bull break) or below the opening range low (bear break) during the NY cash session. The opening range is the high and low of the first completed bar of the selected timeframe — choose from **15m**, **30m**, or **60m**. Triggers are intrabar, meaning the alert fires the moment price crosses the level rather than waiting for a candle close. Toggle **Bull** and **Bear** independently, and enable **Alert retriggers** if you want repeated alerts after the cooldown expires. When retriggers are off, each symbol alerts once per session, timeframe, and direction. The opening range expires after 6 hours, so late-session price action against a stale range does not produce spurious alerts. See [Realtime alerts](/scanner/alerts#metrics-alerts) for full configuration details.
  </Accordion>

  <Accordion title="RSI superstack">
    Fires when RSI readings across multiple timeframes align in the same extreme zone simultaneously — for example, three or more timeframes all in oversold territory at once. This highlights names under broad, multi-timeframe momentum pressure that may be setting up for a reversal or continuation. New rules default to both **oversold** and **overbought** enabled, so you catch superstacks on both sides of the spectrum without extra configuration. You can disable either side when creating or editing a rule.
  </Accordion>
</AccordionGroup>

Each rule supports flexible symbol targeting:

* **Specific symbols** — enter a comma-separated list of tickers
* **Watchlists** — select one or more watchlists to monitor every symbol in them
* **All equities** — match every equity in the scanner universe
* **All futures** — match every futures contract in the scanner universe

Set a **cooldown** (in seconds) to control the minimum gap between repeated alerts for the same rule. Events are automatically deduplicated per timeframe — the same condition on the same bar only fires once per timeframe, and the cooldown adds a time-based buffer on top.

### Event-level metric alerts

You can also create alert definitions that fire on specific metric transitions. Each definition targets a combination of:

* **Metric family** — RSI, SMA, EMA, ATR, or VWAP
* **Metric key** — the specific indicator (e.g., `rsi_14`, `ema_9`, `ema_12`, `ema_26`, `atr_14`, `session_vwap_2sigma`)
* **Event type** — the transition you want to be notified about (e.g., `rsi_entered_oversold`, `price_touched_vwap_plus_2sigma`, `entered_atr_high_zone`)
* **Symbol** — a specific ticker, or leave blank to match all equities
* **Session mode** — regular session or extended hours
* **Cooldown** — minimum time between repeated alerts for the same definition

<Note>
  Both custom rules and event-level alerts use automatic deduplication. If the same event fires multiple times for the same candle or trade, you only receive one alert. The cooldown setting adds an additional time-based buffer on top of deduplication.
</Note>

Metric alerts automatically **rearm on reset events**. When a metric enters an extreme zone (for example, RSI crosses into overbought), the alert fires once and is then suppressed while the condition stays active. As soon as the corresponding reset event clears the state (RSI exits overbought), the alert rearms so it can fire again immediately if the condition recurs. This applies to RSI, VWAP sigma band, and ATR proximity alerts — repeated extremes are suppressed while active but can trigger again after each reset.

### Example alert configurations

<AccordionGroup>
  <Accordion title="RVOL spike on your watchlist">
    Create an **RVOL high** rule, select your core watchlist, and set the threshold to 2.0. Select the timeframes you want to monitor — for example, 60m and D to catch both intraday surges and full-day volume spikes. You'll get alerted whenever a name on your list exceeds the threshold on any selected timeframe.
  </Accordion>

  <Accordion title="RSI superstack for reversal candidates">
    Create an **RSI superstack** rule, enable **All equities**, and set the minimum timeframe count to 3. Both oversold and overbought are enabled by default, so the rule fires on either extreme. You'll be notified when a stock has three or more timeframes simultaneously in an RSI extreme, which often precedes a sharp reversal.
  </Accordion>

  <Accordion title="VWAP band touch on a specific ticker">
    Create a **VWAP bands** rule, enter the ticker you want to monitor (e.g., AAPL), and select the ±2σ band. This fires when the stock pulls back to 2 standard deviations below session VWAP — a potential mean-reversion entry.
  </Accordion>

  <Accordion title="RSI oversold on any equity (event-level)">
    Set the metric family to **RSI**, metric key to **rsi\_14**, and event type to **rsi\_entered\_oversold**. Leave the symbol blank to match every equity in the scanner. Set a cooldown of 300 seconds (5 minutes) to avoid repeated alerts during choppy conditions.
  </Accordion>

  <Accordion title="ATR high proximity on a specific name">
    Set the metric family to **ATR**, metric key to **atr\_14**, event type to **entered\_atr\_high\_zone**, and symbol to the ticker you want (e.g., `NVDA`). This fires when price moves into the ATR high zone, indicating the stock may be reaching the upper end of its expected daily range.
  </Accordion>

  <Accordion title="Initial Balance break alerts on your watchlist">
    Create an **Initial Balance** rule, select your core watchlist, enable **Bull** and **Bear** sides, and check **Break**. Set a cooldown of 120 seconds. After the first hour of the regular session closes, you will be alerted whenever a name on your list trades above the IB high or below the IB low. Optionally enable **50% Pullback** to also catch retracements to the midpoint after a break — useful for re-entry or scaling opportunities.
  </Accordion>

  <Accordion title="ATR High/Low on a futures contract">
    Create an **ATR High/Low** rule, enter the futures symbol (e.g., `ES=F`), select the **D** and **60m** timeframes, and enable **Near** on the ATR high and **Crossing** on the ATR low. You'll get an early warning when the contract approaches the upper end of its daily expected range, and a confirmed alert when it breaks below the lower end on an intraday basis.
  </Accordion>

  <Accordion title="ORB break on your watchlist">
    Create an **ORB** rule, select your core watchlist, and choose the **30m** timeframe. Enable both **Bull** and **Bear** directions. Leave **Alert retriggers** off so each name only alerts once per direction per session. After the first 30 minutes of the regular session close, you'll be alerted whenever a name on your list breaks above the opening range high or below the opening range low — useful for catching early-session directional momentum.
  </Accordion>
</AccordionGroup>

## Combining metrics with setups

Equities metrics work alongside the existing setups engine — they don't replace it. Use metrics as an additional filter layer on top of your Strat-based workflow:

<Steps>
  <Step title="Identify a setup on the setups table">
    Start with a setup that matches your criteria on the Setups Table — timeframe, candle structure, and quality score.
  </Step>

  <Step title="Check the metric context">
    Before entering, check whether the equity's RSI is in a favorable zone. A 2U daily setup with RSI below 70 has more room to run than one already in overbought territory.
  </Step>

  <Step title="Use VWAP bands for entry timing">
    If price is near the lower VWAP sigma bands during an uptrend setup, the pullback may offer a better entry price than chasing a break at the highs.
  </Step>

  <Step title="Set a metric alert for confirmation">
    Create a metric alert for the specific event you want to confirm — for example, an RSI exit from oversold — so you get notified when conditions align without watching the screen.
  </Step>
</Steps>

<Warning>
  Metrics are computed from live market data and update continuously. Values can change rapidly during volatile conditions. Always confirm with the full setup context before acting on a metric signal alone.
</Warning>
