> ## 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.

# Realtime Alerts

> The Alerts panel streams in-force notifications as setups trigger. Filter by timeframe, direction, and candle state. Receive alerts via Pushover or Telegram.

<Note>
  The Alerts panel and push notifications require the **Founders Plan**. Basic plan subscribers do not have access to alerts, alert groups, or push notification delivery. [Compare plans →](/pricing)
</Note>

The Alerts panel is your real-time feed of setups going in force. When price crosses a trigger level — the high of a 2U or the low of a 2D — an alert fires immediately and appears at the top of the stream. You don't need to watch the Setups Table for price action; the alerts come to you. Press **A** anywhere in the app to jump to the panel.

## What each alert shows

Every entry in the stream contains the full context you need to evaluate the trade without leaving the panel.

<CardGroup cols={2}>
  <Card title="Symbol and timeframe" icon="chart-candlestick">
    The ticker and the candle period the setup lives on. A daily 1-2U and a 60-minute 1-2U are different trades — the timeframe tells you which one fired.
  </Card>

  <Card title="Setup sequence" icon="layers">
    The C2-C1 combination (e.g., 1-2U, 2D-3, 1-2D) and the current candle (CC) state at the moment the trigger was crossed, so you know the structural context of the alert.
  </Card>

  <Card title="Direction and price" icon="arrow-up-right">
    Whether the break was **up** (above the trigger high) or **down** (below the trigger low), and the exact price at which the trigger was crossed.
  </Card>

  <Card title="Detected" icon="clock">
    The time the setup was detected, shown as a dedicated column in `HH:MM:SS` format on the Mission Control alerts stream. Detection timestamps give you a more accurate read on when the trigger actually crossed. Alerts are sorted most recent first, so the freshest signals stay at the top of the stream.
  </Card>
</CardGroup>

## Filtering the stream

Use the filter controls above the stream to narrow the alerts to the ones relevant to your session.

<Tabs>
  <Tab title="By timeframe">
    Select one or more timeframes to show only alerts from those periods. The default view includes 60m, 4H, 12H, Daily, Weekly, Monthly, Quarterly, and Yearly. Toggle off shorter timeframes if you trade larger structures, or pin intraday-only timeframes during the session. Click **All** to select every timeframe at once.

    Available timeframes: **All, 15m, 30m, 60m, 4H, 12H, D, W, M, Q, Y**
  </Tab>

  <Tab title="By direction">
    Filter to **up** alerts only (bullish in-force triggers), **down** alerts only (bearish), or leave on **All** to see both directions. Useful when you have a directional bias for the session and want to reduce noise.
  </Tab>

  <Tab title="By CC state">
    Show only alerts where the current candle matches a specific ID — **1** (inside), **2U**, **2D**, **3**, or detail values like **2D-green** (failed bearish candle) or **2U-red** (failed bullish candle). The CC state at alert time is the candle forming when the trigger was crossed.
  </Tab>

  <Tab title="By market">
    Scope the stream to **Stocks**, **Futures**, **Crypto**, or **Core** (stocks and futures together). When you're focused on equities, hiding crypto reduces irrelevant alerts.
  </Tab>
</Tabs>

## Alert settings

**Alerts → Settings** is the single home for all notification delivery and alert rule configuration. The settings area is organized into dedicated pages:

* **Pushover** — connect and configure Pushover delivery
* **Telegram** — connect and configure Telegram delivery
* **Sim Break Alerts** — manage simultaneous break alert rules
* **Metrics** — configure metric-based alert rules (see below)

<AccordionGroup>
  <Accordion title="Alert groups">
    Alert groups let you define a named collection of symbols, timeframes, and setups that you want to monitor. You can create multiple groups — for example, one group for your core watchlist on daily and weekly timeframes, and another for futures across all intraday timeframes. Each group can be enabled or disabled independently.

    Every alert group supports three filtering dimensions:

    * **Symbols** — the tickers you want alerts for (e.g., `SPY`, `AAPL`, `NQ=F`)
    * **Timeframes** — the candle periods to monitor (e.g., Daily, Weekly, 60m)
    * **Setups** — the specific setup types to match (e.g., `1-2`, `3-2`, `2d-green`)

    When you leave the setup selector on **All**, the group fires for every setup that matches your symbols and timeframes — this is the default behavior. To narrow delivery to specific setups, open the **Setup** dropdown in the group form and check the ones you care about. The dropdown uses the same setup labels you see throughout the app, including special candle states like `2d-green (failed)` and `2u-red (failed)`.

    A group with no setup selections behaves exactly the same as before — all setups are delivered. Once you select specific setups, only those setups trigger notifications for that group.

    Setup filters apply to both **Pushover** and **Telegram** deliveries. When you narrow an alert group to specific setups, only matching setups are sent through your configured push channels — there is no separate setup filter per delivery method.
  </Accordion>

  <Accordion title="Continuation alerts">
    By default, alerts fire for fresh in-force triggers. When a setup's C1 and CC are both the same directional 2 candle (e.g., 2U-2U), it's a continuation rather than a new setup break. You can allow continuations per alert group if you want to track those moves as well.
  </Accordion>

  <Accordion title="Snooze">
    Snoozing temporarily silences all push notifications without deleting your settings. Access the snooze control from the header bar or from within the Alerts workspace. Use it when you've already acted on a name and don't need to see repeated triggers during the session.
  </Accordion>
</AccordionGroup>

## Metrics alerts

The **Alerts → Metrics** tab lets you create rules that fire when real-time technical indicators hit conditions you define. Unlike setup-based alerts that track candle structure, metrics alerts monitor computed indicators — RVOL thresholds, VWAP deviation bands, ATR High/Low proximity, Initial Balance session levels, Opening Range Breakout (ORB) levels, and RSI superstacks — and trigger directly from the live metrics pipeline.

Each rule targets equities, futures, or both, and can be scoped to specific symbols or entire watchlists. See [Equities metrics](/scanner/equities-metrics) and [Futures metrics](/scanner/futures-metrics) for the full list of available indicators and how they are computed.

<AccordionGroup>
  <Accordion title="RVOL high">
    Fires when a symbol's relative volume (RVOL) exceeds a threshold you set. RVOL is evaluated per timeframe using the same `RVOL20` values shown on the live metrics page — so a rule with 60m and D selected can fire independently when either the 60-minute or daily RVOL crosses your threshold. A reading above 2.0 means volume is running at twice the typical pace, which often signals unusual institutional activity.

    When creating or editing an RVOL rule, use the inline **Lookup** panel to query current RVOL for any symbol before committing to a threshold — see [Look up current RVOL](#look-up-current-rvol) below.
  </Accordion>

  <Accordion title="VWAP bands">
    Fires when price touches or crosses a VWAP sigma band (±2σ or ±3σ). Use this to catch mean-reversion setups or identify overextended moves without watching every chart.
  </Accordion>

  <Accordion title="ATR High/Low">
    Fires when price approaches or crosses the ATR-derived high or low on any of your selected timeframes. Each rule offers two toggle modes per side (high and low):

    | Toggle       | Condition                                                      |
    | ------------ | -------------------------------------------------------------- |
    | **Near**     | Price enters the proximity zone around the ATR high or ATR low |
    | **Crossing** | Price crosses through the ATR high or ATR low level            |

    You can enable **Near**, **Crossing**, or both independently for highs and lows. For example, you might enable **Near** on the ATR high to get an early warning as price approaches the upper end of its expected range, and **Crossing** on the ATR low to catch confirmed breakdowns.

    ATR High/Low rules use the shared timeframe selector, so you can target specific timeframes like 60m and D to monitor intraday and daily ATR levels independently.
  </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 defined as the high and low of the first closed 60 minutes of the session — for equities this is the first hour after the regular open. For futures, the initial balance is tracked per session — **Globex** and **NY** each have their own independent IB range that locks once the first 60 minutes of that session close. When creating an Initial Balance rule for futures, you select which sessions to monitor — **Globex**, **NY**, or both. A Globex IB break and an NY IB break on the same contract do not suppress each other. No timeframe selection is needed.

    The Initial Balance range expires after 6 hours. Once expired, the range stops producing new alert events — this prevents stale IB levels from generating false signals late in the session when the range is no longer relevant.

    Four event types are available:

    | Event                 | Condition                                              |
    | --------------------- | ------------------------------------------------------ |
    | **Bull break**        | Price trades above the IB high                         |
    | **Bear break**        | Price trades below the IB low                          |
    | **Bull 50% pullback** | Price pulls back to the IB midpoint after a bull break |
    | **Bear 50% pullback** | Price pulls back to the IB midpoint after a bear break |

    Pullback events only fire after the corresponding break has occurred in the same session. Both breaks and pullbacks can retrigger within the session, subject to the cooldown you set on the rule. Cooldowns are tracked independently per symbol, session, side, and event type — a bull break cooldown does not block a bear break or a pullback alert.
  </Accordion>

  <Accordion title="Opening Range Breakout (ORB)">
    Fires when price breaks above or below the opening range for a session. The opening range is defined as the high and low of the first completed bar of the selected timeframe — so a 15-minute ORB uses the first 15 minutes of the session, a 30-minute ORB uses the first 30, and a 60-minute ORB uses the first hour.

    Two event types are available:

    | Event          | Condition                                 |
    | -------------- | ----------------------------------------- |
    | **Bull break** | Price trades above the opening range high |
    | **Bear break** | Price trades below the opening range low  |

    ORB triggers are intrabar — they fire as soon as price crosses the level, without waiting for a candle close. The opening range does not become active until its defining bar has fully closed and the high/low are locked. The range expires after 6 hours, so late-session price action does not trigger alerts against a stale opening range.

    ORB rules use a dedicated timeframe selector limited to **15m**, **30m**, and **60m**. You independently toggle **Bull** and **Bear** directions, and optionally enable **Alert retriggers** to allow repeated alerts on the same symbol, session, and direction after the cooldown expires. When retriggers are off, each symbol can only alert once per session, timeframe, and direction.

    For futures, you also select which sessions to monitor — **Globex**, **NY**, or both. Each session tracks its own opening range independently, so a Globex ORB and an NY ORB on the same symbol do not suppress each other. Equities always use the NY cash session.
  </Accordion>

  <Accordion title="RSI superstack">
    Fires when RSI readings across multiple timeframes align in the same extreme zone — for example, three or more timeframes simultaneously in oversold territory. This highlights symbols under broad, multi-timeframe momentum pressure. New rules default to both **oversold** and **overbought** enabled, so you get alerts on superstacks in either direction out of the box. You can disable either side when creating or editing a rule.
  </Accordion>

  <Accordion title="Clone a rule">
    Use **Clone** to spin up a new rule pre-populated from an existing one — handy when you want to fork a working configuration to test a different threshold, narrow the symbol scope, or swap watchlists without rebuilding the rule from scratch.

    The Clone button appears next to each saved rule in the list and in the inline editor footer. Clicking it opens a **Clone rule** prompt asking for the copy name. The field is pre-filled with the source rule's name plus a ` Copy` suffix (or ` Copy 2`, ` Copy 3`, … if a copy already exists), so you can press **Clone** straight away or rename it first. The name is required — submitting a blank value surfaces an inline error without creating the copy.

    Cloning preserves the source rule's:

    * Rule type
    * Symbol scope (individual symbols, all equities, all futures, all crypto)
    * Attached watchlists
    * Cooldown
    * Type-specific parameters (thresholds, toggles, sessions)

    The new rule is always created **disabled**. Review and adjust the configuration, then toggle it on to start receiving alerts — this prevents duplicate notifications firing from both the original and the clone before you've made your changes.

    The Metrics page refreshes in place after a successful clone — no full page reload — and a toast confirms the copy was created.
  </Accordion>

  <Accordion title="Look up current RVOL">
    Picking a useful RVOL threshold is easier when you can see what symbols are printing right now. The RVOL create composer and inline editor include a compact **Lookup** strip that queries live RVOL stats without leaving the form, so you can size the multiplier against real readings before saving.

    Enter one or more tickers in the **Lookup** field (comma- or space-separated, up to 25 at a time) and click **Query**. The strip shows the queried symbol as a single `SYMBOL / MARKET` header followed by inline RVOL chips, and exposes compact `<` / `>` icon-width pagination buttons (labeled **Previous** / **Next** for accessibility) plus a `1 / N` page indicator to step through the rest of the entered symbols one at a time. Empty, loading, and error states render as a single inline message — there is no separate **Stats** heading or nested card around the results.

    For each symbol, the strip reports the same RVOL values used by the alert engine, with each value rendered as its own chip:

    | Row                                                     | Source                                                         |
    | ------------------------------------------------------- | -------------------------------------------------------------- |
    | **Daily 10D**                                           | 10-day daily RVOL from the ticker's stored stats               |
    | **Daily 20D**                                           | 20-day daily RVOL from the ticker's stored stats               |
    | **5m / 15m / 30m / 60m / 4H / 12H / D / W / M / Q / Y** | Current runtime `RVOL20` for each timeframe that has live data |

    Values display as a `2.34x` multiplier — the same convention used for the rule threshold — so a reading of `1.80x` on the 60m chip means a rule set to `1.5x` on 60m would currently be firing for that symbol. Timeframe chips only appear when runtime data is available, so a quiet pre-market session may return only the daily chips.

    The lookup is currently RVOL-only. Other metric rule types (VWAP bands, ATR High/Low, Initial Balance, ORB, RSI superstack) do not show the Lookup strip.

    <Tip>
      Query a few representative names from your watchlist — a high-beta mover, a steady large-cap, and an illiquid small-cap — to see how RVOL ranges differ before you commit to a threshold. A `1.5x` rule that's quiet on liquid names may flood you on thin tickers.
    </Tip>
  </Accordion>
</AccordionGroup>

When you create a rule, you choose:

* **Rule type** — RVOL high, VWAP bands, ATR High/Low, Initial Balance, ORB, or RSI superstack
* **Timeframes** — the candle periods the rule evaluates against (RSI, RVOL, and ATR High/Low rules). Available timeframes are **15m, 30m, 60m, 4H, 12H, D, W, M, Q, Y**. By default, rules use 60m, 4H, 12H, D, W, M, Q, and Y. You can narrow or expand the selection per rule — for example, limit an RVOL rule to intraday timeframes only, or enable 15m for faster signals. VWAP bands rules do not show the timeframe selector — they always evaluate against session VWAP. Initial Balance rules do not use timeframe selection — they always use the first closed 60-minute session window. ORB rules have their own timeframe selector limited to **15m, 30m, and 60m**.
* **Symbols** — individual tickers, entire watchlists (using a multi-select dropdown), all equities, all futures, or any combination
* **Cooldown** — minimum seconds between repeated alerts for the same rule, so you aren't flooded during volatile stretches
* **Parameters** — type-specific settings. For Initial Balance rules, you independently toggle **bull** and **bear** sides, and **break** and **pullback** event types; for futures, you also select which sessions to monitor (**Globex**, **NY**, or both). For ATR High/Low rules, you independently toggle **Near** and **Crossing** for highs and lows. For ORB rules, you toggle **Bull** and **Bear** directions, enable **Alert retriggers**, and select **Futures sessions** (Globex, NY). For other rule types, set thresholds like the RVOL multiplier or sigma band level.

Metric alert rules evaluate in real time as metrics update. Each rule fires independently per selected timeframe — an RVOL rule with 60m and D selected can alert on both the 60-minute and daily RVOL independently. Events include the observed value, threshold, symbol, timeframe, direction, and a second-precision detection timestamp. Each event is deduplicated automatically — the same condition on the same bar or trade only fires once per timeframe.

The **Recent Events** table on the Metrics page shows only events detected within the last 15 minutes. Older events roll off automatically so the table stays focused on live, actionable signals. Timestamps display in a compact `HH:MM:SS TZ` format for quick scanning during active sessions.

<Tip>
  Metric alerts pair well with setup alerts. Create an RVOL rule on your core watchlist to flag unusual volume, then check the setups table for actionable Strat structures on those names. Add an Initial Balance rule on the same symbols to catch initial balance breaks during the session — when a name breaks the IB high on elevated RVOL, that confluence can signal strong directional conviction. Use ATR High/Low rules to get a heads-up when price is nearing the extremes of its expected range, which can help with timing entries and exits. Add an ORB rule to catch early-session directional momentum — a bull ORB break on elevated RVOL in the first 30 minutes often signals strong follow-through.
</Tip>

## Push notifications

When you step away from the screen, push notifications make sure alerts still reach you. StratAlerts supports two delivery channels.

<Tabs>
  <Tab title="Pushover">
    Pushover delivers alerts to your phone as a clean, glanceable notification. Each message includes the symbol, timeframe, direction, and price so you have everything you need at a glance.

    <Steps>
      <Step title="Install Pushover">
        Download the Pushover app on your iOS or Android device and create an account at pushover.net.
      </Step>

      <Step title="Connect your account">
        In StratAlerts, go to **Alerts → Settings → Pushover** and enter your Pushover user key. Save the settings.
      </Step>

      <Step title="Choose delivery methods">
        Select which alert groups should trigger Pushover notifications. You can enable push for your core watchlist while keeping crypto or futures alerts screen-only.
      </Step>
    </Steps>
  </Tab>

  <Tab title="Telegram">
    Telegram delivery sends alert messages to a Telegram bot linked to your StratAlerts account. Tapping the notification links directly back into your trading workflow.

    <Steps>
      <Step title="Start the bot">
        Go to **Alerts → Settings → Telegram** and follow the setup link to start the StratAlerts bot in Telegram. The bot will send a confirmation code.
      </Step>

      <Step title="Enter your code">
        Paste the confirmation code into the Telegram settings page in StratAlerts to link the accounts.
      </Step>

      <Step title="Enable delivery">
        Select which alert groups should send Telegram messages, then save. Alerts will begin arriving in Telegram immediately.
      </Step>
    </Steps>
  </Tab>
</Tabs>

<Warning>
  Push notifications only deliver for alert groups that have at least one symbol and one timeframe configured. If you've also selected specific setups in a group, only those setups trigger delivery on both Pushover and Telegram — make sure the setup you expect is checked. If you've enabled Pushover or Telegram but aren't receiving notifications, check that your alert groups are set up and enabled under **Alerts → Settings**, and verify that the correct markets are enabled under each delivery method's [market selection](/notifications/pushover#market-selection).
</Warning>

## Live stream reconnection

The alerts stream uses a cursor-based resume flow so you never miss an alert during brief disconnects or page reloads. When the connection opens, the server sends a batch of current in-force alerts along with a **cursor** — an opaque position marker in the alert event stream. If you lose the connection and reconnect, the client sends its last-known cursor back to the server, which replays any alerts that fired between the disconnect and the reconnect. All filtering — timeframes, direction, market, watchlists, alert groups, and market cap — is applied server-side during replay, so the resumed alerts match your active filter state exactly.

Three bootstrap modes can occur on reconnect:

| Mode          | When it happens                             | What you see                                                               |
| ------------- | ------------------------------------------- | -------------------------------------------------------------------------- |
| **Bootstrap** | First connection or no cursor saved         | Full snapshot of current in-force alerts matching your filters             |
| **Replay**    | Reconnect with a valid cursor               | Only the alerts that fired since your last cursor, filtered server-side    |
| **Reset**     | Reconnect with an expired or invalid cursor | Full snapshot, same as bootstrap — the stream was too far behind to replay |

You don't need to manage this process manually. The app handles cursor tracking and reconnection automatically. The result is that your alerts panel stays accurate across network interruptions without resorting to periodic polling, and filtered views — including watchlist and alert group scoping — remain consistent because the server applies the same subscription filters during replay that it applies to live events.

<Tip>
  If you notice the alerts panel flash a full reload after a long disconnect, that's the reset mode kicking in — the cursor expired and the server sent a fresh snapshot instead of a partial replay. This is expected behavior and ensures you always see a complete, accurate view.
</Tip>

## Keyboard shortcut

| Key   | Action                                         |
| ----- | ---------------------------------------------- |
| **A** | Open the Alerts panel from anywhere in the app |
