Skip to content

Guide

Trade unusual options activity alerts automatically

An unusual options activity alert, or options flow alert, reports a large or unusual trade in a contract: a ticker, a side, often a strike and an expiry, sometimes a price. Nyria can turn that post into an order at your broker when it arrives from a Discord server or Telegram chat you run, a TradingView or TrendSpider webhook, or your own script. This guide covers what the alert has to contain, how a contract gets picked when the alert names only a direction, why a paper run matters for alerts that arrive in bursts, how the bot refuses what it cannot read, and what it will not do.

What the alert has to contain

Every alert needs a ticker, a direction and an action. For options there are two ways to get a contract.

A contract named in a channel you run

BTO SPY 780c 11/20 @ 2.10

The same contract from your own script

{
  "ticker": "SPY",
  "action": "OPEN",
  "direction": "LONG",
  "legs": [{ "side": "CALL", "strike": 780, "expiration": "2026-11-20" }]
}

A side alone, for a strategy that picks the contract

SPY long entry

On a strategy whose contract selection is Provided in alert, each alert names the contract: the strike, the side as call or put, and the expiration, or an OCC option symbol in place of all three. A leg with neither a symbol nor an expiration has no contract to trade. A Discord or Telegram entry with no date takes the nearest listed expiration, which can be today's (0DTE), even late in the day; an alert from any other source has to name the expiration. A price in the alert is the limit when the strategy's limit target is Alert price. Otherwise Nyria prices from the live chain, and an entry it cannot price is not placed. Word your exits the same way as your entries, so Nyria can match them.

A direction without a contract

A flow alert that names only the ticker and the side still trades, on a strategy set to From my rules. Nyria picks each contract from the leg rules you set on the strategy: 1 to 4 legs, each with an action, call or put, a way to find the strike, and a DTE range. The strike can come from a target delta, such as 0.30, where Nyria picks the listed contract closest to your target that has a live quote and skips the entry if the closest one is more than 0.25 away; from a target price as the chain quotes it; from a number of strikes above or below the at-the-money strike; or from an offset to another leg. The DTE range sets the minimum and maximum days to expiry, from 0 to 31. A single call might be Buy, Call, 0.40 delta, 14 to 31 DTE.

On a From my rules strategy the strike, expiry and type an alert names are ignored, and the webhook has no field for delta or days to expiry. TradingView options strategies always use From my rules.

A worked example, from a channel to Nyria Paper

An options strategy with the contract provided in the alert, long only, Close on exit alerts on. Entries are limit orders at Ask; exits are limit orders at Bid.

Entry, posted in a channel you run

BTO SPY 780c 11/20 @ 2.10

Exit

STC SPY 780c 11/20

A bot on the strategy runs on Nyria Paper with a $500 budget per entry. The entry names the SPY 780 call expiring Nov 20, 2026. Options are priced per contract and one contract covers 100 shares, so one contract at the $2.10 ask costs $210: the bot buys 2 contracts and spends $420. When the exit posts, the bot sells the 2 it holds at the bid. If the budget per entry were smaller than the cost of one contract, the bot would buy nothing. On a From my rules strategy, the same trade could arrive as SPY long entry, and a leg rule of Buy, Call, 0.40 delta, 14 to 31 DTE would pick the contract.

Why paper first matters for alerts in bursts

Flow alerts tend to arrive several at once when a scanner fires, and three settings decide what a bot does with a burst. A paper run shows them before money does. First, Allow multiple entries: with it off, the default, the strategy holds one position at a time, and an entry alert that arrives while a position is open is logged and skipped; with it on, entries stack and each one spends the full budget per entry again, so three $500 entries hold $1,500. Second, duplicates on the webhook: a body that repeats an earlier one within 30 seconds is dropped. So is one within 5 minutes with nothing else in between. Third, the webhook's rate limit of 10 alerts at once, then 1 a second; past it Nyria answers 429 and drops the alert.

Deploy the first bot on Nyria Paper, the free simulated broker built into Nyria: one click, no credentials, and the free plan runs up to 10 paper bots with no time limit. Let the real alerts fire for a week or two and read the Logs tab. Each alert has a row there, and a rejected or skipped one carries its reason, so you can see which posts traded, which were skipped while a position was open, and whether each exit closed its entry. Nyria Paper fills or refuses each order at once. When the run reads right, deploy a second bot on the broker account, Charles Schwab, Tradier, tastytrade or Alpaca, or edit the paper bot to use it.

What the bot refuses, and what it will not do

An alert Nyria cannot read places nothing. The webhook answers 422 with a reason, such as a missing field, unreadable text, an unknown symbol, no matching strike or DTE range, or more than 4 option legs, and the strategy's Logs tab records it. The alert tester shows the same refusal word for word before you set the alert up. A Provided in alert strategy refuses an entry that leaves out the strike, the expiry or the type. On a leg priced by delta, no contract within 0.25 of the target means no order. An exit alert that names only the ticker closes the most recently opened position in it along with every entry stacked onto it; on a Provided in alert strategy, name the contract in the exit to close a different one.

What it will not do: Nyria places market and limit orders only, on every broker. It does not place stop or stop-limit orders, and exits come from exit alerts, so a position stays open until an exit alert closes it or you close it by hand. It never re-sends a failed or rejected entry. An alert cannot set the size: each bot sizes from its own settings, and a quantity in the alert is ignored. Spreads go up to 4 legs on one expiration, every leg the same quantity; ratio spreads, calendars and diagonals are not supported.

The leg rules and sizing are in What you can trade and the entry, exit and multiple-entry settings in Trading behavior, both in the docs.

Questions

Does the alert have to name a contract?
Only on a strategy set to Provided in alert. On From my rules, the strategy's leg rules pick the strike by delta, target price or strikes from the money, and an expiration 0 to 31 days out, and the webhook has no field to override them.
What happens to a burst of alerts on the same ticker?
With Allow multiple entries off, the first opens a position and the rest are logged and skipped while it is open. With it on, entries stack and each one spends the full budget per entry again.
What does it cost?
Paper is free. Live trading from $15 a month.

Run the alerts on a paper bot first

Paper is free. Live trading from $15 a month.