Why is my bot not trading?
Work through the six usual reasons a Nyria bot places no order: paused, disconnected broker, small budget, ticker filter, strategy rules, no alert.
A bot that places nothing is in one of six states. Each section below starts with what you see in the app and ends with the one change that fixes it. Open the bot's Logs tab first: the newest rows say which state it is in.
Most of these also raise a notice on the bot's page once the same thing has happened more than once. The notices are quoted exactly, so you can match one by its words.
The bot is paused
A paused bot acts on nothing. It ignores every alert, entries and exits alike. Whatever it already holds stays open at your broker, and nothing will close it while the bot is paused.
Open the bot from My bots and check its Status header. If it says Paused, start it. If it holds a position, read closing a position first: an exit alert sent while the bot was paused did not close it.
The broker connection expired
When a broker connection expires, the bot can't place orders, exits included. Charles Schwab ends each sign-in after 7 days, so a Schwab bot needs a fresh sign-in every week. Other brokers disconnect when the credentials are refused or access is revoked at the broker.
You see it in two places:
- A notification titled
<Broker> disconnected, for exampleCharles Schwab disconnected - A notice on the bot headed Broker disconnected: "This bot can't place orders, including exits, until you reconnect." Its button is Reconnect
The notice appears after three refused orders in a row. To fix it, go to Integrations, select the broker and select Reconnect, then sign in again or enter a new API key. The bot trades from the next alert. An exit alert that arrived while the connection was down is not sent later, so check your positions at the broker. Schwab steps are in Schwab shows Disconnected.
The budget per entry cannot buy one unit
If one share, contract or spread costs more than the bot's Budget per entry, Nyria places no order and logs a refusal. The bot's page shows a notice headed Budget per entry below one share (or contract, spread or coin), reading like this:
One NVDA share costs $1,240.00, more than this bot's $500.00 budget per entry. Raise it to at least $1,240.00.
Select Edit budget, raise Budget per entry to at least the cost it names, and save. The notice appears after three identical refusals in a row and goes away after the bot's next successful order.
A different notice, Not enough buying power, means the budget is fine but the account has less cash than one unit costs. That one is fixed at the broker by adding funds.
The instrument filter skips the strategy's alerts
A bot trades only the tickers chosen when it was deployed. An alert for any other ticker is skipped and logged as a warning, and nothing is ordered. After two skipped alerts in 7 days with no order since, the bot's page shows a notice headed Alerts are being skipped:
Every alert is being skipped: this bot only trades TSLA, and the strategy's recent alerts were for NVDA and AMD. Add them or switch to all instruments.
Select Edit bot and change Selected tickers: add the tickers the strategy alerts on, or switch the bot to all instruments. The filter is on the bot, so a strategy's own list of tickers can include a ticker that your bot still skips.
The strategy's rules refused the alert
Some alerts are refused before any bot sees them. These show on the strategy's Logs tab, which only the strategy's owner can read.
| What you see | What it means | What to do |
|---|---|---|
| The entry arrived outside the strategy's Limit trading hours | Exits still run outside the window. Entries and reversals are dropped, not queued | Widen the window, or send the entry again inside it. See trading window |
a long SPY position is already open and Allow multiple entries is off | The strategy holds one position at a time and one is open | Wait for it to close, or turn on Allow multiple entries |
| Options market is closed | Options alerts are refused while the options market is closed. Stocks and crypto on Nyria Paper fill at any hour | Send the alert during market hours |
DELTA_UNAVAILABLE | "Nyria skipped this entry. The options data has no delta for the contracts in your range, so it can't pick the delta your strategy asks for. Nothing was ordered." | Widen the days-to-expiration range so more contracts are in range, or send the alert again when the market is open. If it keeps happening, select the strike by offset instead of delta |
DELTA_OUT_OF_RANGE | "Nyria skipped this entry. Your strategy asks for a 0.30 delta and the closest available is 0.62, too far to stand in for it. Nothing was ordered." The figures change with each alert | Widen the days-to-expiration range, or change the target delta to one the chain offers for that ticker |
QUOTE_UNAVAILABLE | "Nyria skipped this entry. No live quote was available for the option your strategy picked. Nothing was ordered." | Send the alert while the market is open. If it repeats, the contract may be too thinly traded: change the strike or expiration settings |
For all three delta and quote refusals, nothing is ordered and nothing is retried. Send the alert again once the setting is changed. Other refusals, such as an alert Nyria couldn't read, are listed in when an order fails.
The strategy has not fired
If the strategy's Logs tab shows no row for the time you expected an alert, nothing reached Nyria, so there is nothing for the bot to do.
- Check that the strategy is Active, not a draft.
- For TradingView, check its alert history to see whether the alert fired, and check the strategy doesn't repaint.
- For Discord, Nyria's bot has to be in a server you run, with access to the channel. You can't connect a server where you are only a member. See Discord alerts.
- For Telegram, Nyria has to be an admin in a group or channel you own or administer. It doesn't read other bots' messages in a group. See Telegram alerts.
- An edited message is not read again. Send a new one.
Where to look
- The bot's Logs tab has one row per alert for that bot: orders, broker responses and refusals. Open a row for its details.
- The strategy's Logs tab has one row per incoming alert and shows how it was read. Only the strategy's owner sees it.
A refusal row carries a reason code in its details, under Raw JSON, as reason_code. Examples are budget_below_one_unit for the budget case and ticker_not_selected for the instrument filter. Quote it if you contact support, along with the bot's name and the time of the row.
FAQ
Why is there no notice on my bot when it isn't trading?
A notice needs a repeat: three identical refusals in a row, or two skipped alerts in 7 days. A bot that is paused, or whose strategy never fired, has no refusals to count. Use the sections above and the Logs tab.
Does pausing a bot close its positions?
No. Pausing closes nothing and the bot ignores exit alerts while it is paused. Close the position at your broker, or start the bot before the exit alert is sent.
Does Nyria retry a refused order?
No. A refused entry or exit is logged and not sent again. Fix the cause, then send the alert again.
Related
- Troubleshooting: alert sources, brokers and positions
- When an order fails: the three stages an alert passes through
- Bots: starting, pausing and editing a bot
- Trading behavior: trading window and multiple entries
- Connect a broker
- Paper trading: Paper is free. Live trading from $15 a month.
Troubleshooting
Why an alert didn't trade, what a broker rejection means, why a bot stays quiet, and how to reconnect a broker.
Frequently asked questions
Answers on which brokers Nyria connects, what it costs, how alerts from TradingView, Discord and Telegram become orders, selling strategies, and safety.