All articles
Live Trading

Deploy vs Start: Why Your Bot Did Not Trade Today

Deploying a strategy and starting it are two different actions. What each one does, why bots switch off after market close, and the full checklist for why a bot took no position.

Arthalab11 min read
Deploying a strategy creates the bot. Starting it is what makes it trade. A deployed bot that was never started will sit there all day looking perfectly healthy and do nothing — and that is the most common reason a strategy takes no position.

What each action does

DeployStart
What it doesCreates a bot from the strategy and attaches a broker and modePuts that bot into an active, watching state
How oftenOnce, until you change somethingEvery trading day the bot should run
After market closeThe bot stays deployedThe bot switches itself off
What it looks likeListed, with a statusListed, with a running status
Bot with this onlyExists but never tradesNot possible — you start a deployed bot

What deploying actually captures

Deploying is not just a toggle — it takes a snapshot. Understanding what is in that snapshot explains several behaviours that otherwise look arbitrary.
When you deploy, the strategy configuration as it stands is attached to the bot, along with the broker you chose and the mode, live or paper. From that point the bot executes that captured configuration.

Why an edit does not reach a running bot

Which is why editing the strategy afterwards does not change a running bot. The bot is not reading your strategy live; it is running the version it was handed. The strategy and the deployment are two separate things that happen to have started identical.

Why bots do not stay on overnight

It is a safety default, and a deliberate one. A strategy left running unattended across days will keep placing trades through conditions nobody reviewed — a results day, a policy announcement, a gap open after a weekend of news.
Requiring a deliberate start each morning means someone has looked at the day before capital is committed. The cost is one action per day; the benefit is that no strategy trades a day you did not intend it to.

Why the opposite default is worse

The alternative — bots that run until explicitly stopped — fails in a specific and expensive way. You forget a bot exists, it keeps trading, and you find out weeks later. An opt-in default makes forgetting harmless.

Automating the start

If the daily action is the friction, the scheduler removes it: you can set bots to auto-start on specific days relative to expiry, and they will start without you. The broker login still has to be done by hand.

Full checklist for "my bot did not trade"

Work down this list in order. It is roughly ordered by how often each cause is the real one.
  1. Was the bot started? Deployed is not started. Check the bot's status, not just that it exists.
  2. Did you complete the broker login today? Broker API sessions expire daily.
  3. Did the entry condition actually trigger? The logs record this explicitly, including when it correctly decided not to trade.
  4. Was there enough margin? Margin shortfall is the most common broker rejection.
  5. Is your IP still whitelisted? A rotated address fails silently until an order is sent.
  6. Was it a trading day? No weekends, no exchange holidays.
  7. Is your plan active? An expired plan stops live deployment.
  8. Were you already at your running-strategy limit? Paper bots count towards it too.

What the statuses actually mean

StatusWhat it meansWill it trade today?
Deployed, not startedThe bot exists but is inactiveNo
RunningActive and watching for its entry conditionIf the condition is met
Running, position openIt entered and is managing the positionAlready has
StoppedTaken out of the active stateNo
Switched off after closeThe normal end-of-day stateNo, until started again
The first and last rows look similar on screen and mean slightly different things: one was never started today, the other ran and finished. The logs distinguish them instantly, which is why they are the first place to look.

The logs answer most of this

The execution logs record what the strategy decided at each check, not only what it did. A bot that correctly found no valid entry looks identical from the outside to a bot that was never started — the logs are what distinguish them. Reading strategy logs covers what gets recorded.
Three distinct situations produce the same visible outcome of "no position today":
What the logs showWhat happenedAction
No entries at allThe bot was never startedStart it tomorrow
Evaluations, no triggerThe condition was not met — working correctlyNothing. Review the condition if this repeats
An order sent, broker rejectedSetup or margin problemRead the broker's message
Only the third row is a problem to fix urgently. The second is the system working, and mistaking it for a fault is how people end up loosening entry conditions until the strategy trades every day and makes nothing.

A morning routine that works

  • Complete the broker login before 9:15
  • Confirm the broker connection shows as active
  • Start the bots you want running today
  • Confirm each shows as running, not just deployed
  • Check the logs once after your entry time has passed
Connecting Telegram alerts shortens this: a morning message goes out when a broker token has expired, and another when bots are deployed but not started.

Why the last step matters

The last item is worth keeping even once the routine is habit. Checking the logs after your entry time takes seconds and catches the difference between "did not trade because conditions were not met" and "did not trade because something broke" — on the same day, rather than at the end of the week.

A worked example of the confusion

It is worth walking through the exact sequence that produces the most common support question, because seeing it written out makes the distinction stick in a way a definition does not.
A trader builds a short straddle, backtests it, paper trades it for three weeks and is satisfied. On Monday evening they deploy it to live with their Zerodha connection. The bot appears in the list. Everything looks correct.
Tuesday morning they do the broker login at 8:40. At 9:20, the strategy's entry time, nothing happens. The bot is still listed. The broker shows as connected. The strategy is unchanged from the one that paper traded fine. Nothing about the screen suggests a problem.

What actually happened

The bot was deployed on Monday and never started. Deploying created it; it has been sitting in an inactive state since. The logs for Tuesday contain nothing at all, because nothing was running to produce an entry.

Running several bots

Once you run more than one strategy, the start step becomes the thing most likely to go wrong, simply because there are more of them to forget.
Three strategies means three starts every morning, and the failure is partial rather than total: two start, one does not, and you do not notice because the dashboard shows activity. The day ends with one strategy having silently sat out.

How to avoid a partial start

Two habits prevent this:
  • Count, do not scan. Know how many bots should be running today and confirm that number, rather than glancing at a list that looks busy.
  • Use the scheduler for the ones that run on a fixed cycle. A bot that should run every expiry day is better scheduled than remembered.
Remember the limit while you are at it: three strategies running at once on the Monthly Plan, with paper bots counting towards the same number. A paper bot you forgot about can be the reason a live one will not start.

Stopping a bot

Stopping a running bot takes it out of the active state. What happens to an open position depends on how you stop it, and this is worth understanding before you need it in a hurry.
Stopping the bot prevents further action. It does not, by itself, close what is already open — the position stays until your exit rule fires or you square off. If your intent is to be flat, square off explicitly rather than assuming a stop did it.

The short version

One cause dominates all the others, and it is not a strategy problem.
  • Deployed is not started — check the status, not just that the bot exists
  • Bots switch off after each market close, by design
  • An empty log means it was never running; a log full of evaluations means it was
  • The broker login is a separate daily step from starting bots
  • Paper bots count towards the same three-strategy limit
Work down the checklist before changing anything. In most cases the strategy was fine and something in the routine was not, and editing a correct strategy makes both harder to reason about.

Frequently asked questions

Read the log. A correct no-trade shows the condition being evaluated and not met. A failure shows either nothing at all, or an order that was sent and rejected.

Yes, and it will watch from that point. What you cannot recover is an entry whose time has already passed.

No. The scheduler starts bots. The broker login is interactive by design and has to be done by you.

Most often it was deployed but never started. After that: the broker login was not done, the entry condition never triggered, or there was not enough margin. The execution logs identify which.

Yes, unless you use the scheduler. Bots switch off after each market close by design, so that no strategy trades a day you did not intend.

Deploying creates the bot from your strategy and attaches a broker and mode. Starting puts it into an active state where it watches for its entry condition.

Yes. The scheduler can auto-start live bots on chosen days relative to expiry, which removes the daily manual start. The broker login still has to be done by you.

Usually not. A running bot with no position normally means the entry condition has not been met. The logs record each evaluation, so you can confirm the decision was correct.

Three simultaneously on the Monthly Plan. You can deploy more than that; the limit is on how many run at the same time, and paper bots count towards it.

No. Stopping prevents further action but does not square off what is already open. If you want to be flat, square off explicitly.

Start with a free 3-day trial

Build a strategy, backtest it and run it on paper — no broker, no IP and no money needed to try it.

Ask us on Telegram
Deploy vs Start: Why Your Bot Did Not Trade Today | Arthalab — Algo Trading India