Ready to go further
Next: how a bot is put together
The five parts every bot needs, whatever the platform.
What is included
- What it is, in plain words
- The formula or mechanism, with exact arithmetic
- How it hits grid, martingale and DCA bots
- A check you can run before you switch a bot on
Who it is for
- People who run or plan to run a trading bot
- Anyone reading a backtest or a bot sales page
- Readers who want the numbers, not the pitch
- Not advice, and not a signal service
Key facts
- Tradovate is a broker connection you reach from your own code. This page explains the general method, not the product's current features.
- A bot is only as trustworthy as its test. Before relying on any result here, check costs, fills, data and timing, and keep a stretch of data the rule never saw.
- The worked example on this page uses made-up numbers, checked in node on 31 Oct 2026. It shows the arithmetic, not how any product performs.
- Prices, fees, markets, versions, limits and supported languages change and belong to the vendor. We state none of them. Check the vendor's current pages.
- Start on a simulated account, keep stops where they still work if the bot stops, and move to real money only in very small steps, if at all.
What it is
Tradovate is a futures broker whose accounts can be reached by a web API as well as by its own trading screens. That is the second common way a bot connects: instead of scripting inside a charting program, you write a separate program in any language you like, and that program sends requests to the broker over the internet and listens for updates.
The general shape of such an API is familiar. You authenticate to get an access token that expires, you send order requests over a request and response channel, and you receive prices, order updates and position changes over a streaming channel. Exact endpoints, limits, token lifetimes and costs are the vendor's to state and change, so read the vendor's current documentation. This page explains how it works in general terms. We have not tested it for this page. Check the vendor's current terms.
How a bot connects here
The connection style is a broker API. Your code is the bot, the broker is the other end.
- Authentication. Credentials are exchanged for a token that must be renewed. A bot that does not renew it stops working at an inconvenient time.
- Request channel. Place, change and cancel orders. Each request can succeed, fail or time out, and a timeout does not mean it failed.
- Streaming channel. Order updates, fills and positions arrive as events. Your bot should treat these as the truth and its own memory as a guess.
- Demo and live environments. APIs of this kind usually offer a demo environment that mirrors the live one. The addresses and credentials differ. Confirm with the vendor.
- Everything is yours to build. Charts, indicators, backtests and risk limits are not included. You bring them.
Worked example: one order, three fills
A bot sends a market order for 5 contracts when it sees a price of 100.00. The order fills in three pieces. The bot that assumed a single fill at 100.00 has the wrong entry price in its records. All prices are made up and checked in node.
| Fill | Contracts | Price | Contracts x price |
|---|---|---|---|
| Fill 1 | 2 | 100.00 | 200.00 |
| Fill 2 | 2 | 100.25 | 200.50 |
| Fill 3 | 1 | 100.50 | 100.50 |
| Total and average | 5 | 100.20 | 501.00 |
The average entry is 100.20, not 100.00. That is 0.20 points worse per contract, or 1.00 points across 5 contracts. If a point were worth a made-up $50, that is $50.00. A bot that works out its stop or target from 100.00 is wrong from the first second, and one that thinks it holds 5 contracts after only 2 have filled is wrong in size. Drive the bot from fill events, never from the order request. See slippage.
What to verify before trusting a backtest here
These checks apply to any platform of this kind. The answers come from the vendor's current documentation and from your own tests, not from this page.
| Check | Why it matters |
|---|---|
| Token renewal | Confirm the bot renews before expiry and survives a refused renewal. |
| Timeout handling | A timed out order may still be working. Query before you resend. |
| Partial fills | Position and average price come from fill events. |
| Reconnect and resync | After a dropped stream, read current orders and positions before acting. |
| Demo versus live differences | Fills, delays and rejections can differ. Do not assume the demo proves the live behaviour. |
| Limits and rejected requests | Read the vendor limits and log every rejection. |
How bots break on this kind of platform
- Expired token. The bot goes quiet while a position is open.
- Duplicate orders. A retry after a timeout sends the order twice.
- Stale state. The bot thinks it is flat after a missed fill message.
- No backtester. An API gives you orders, not tests. A bot with no honest test is a guess.
- Clock and ordering. Events can arrive out of the order you expect. Use the ids and timestamps that come with them.
A safe order of work
Backtest with honest costs, forward test on new data, run on a simulated account for weeks, then trade a very small size and compare each step with the one before. See forward testing and paper trading.
What this page does not tell you
It does not tell you whether the product is suitable, what it costs, or how it behaves today. Those change and belong to the vendor. It does not give a strategy to trade. This page explains how it works in general terms. We have not tested it for this page. Check the vendor's current terms.
Keep Going
Related Tools and Guides
Keep exploring
FAQ
Frequently Asked Questions
Can I run my own bot against a futures broker API?
Many brokers offer an API for this. Whether and on what terms is the vendor's to say, so check its current documentation and your account terms.
What is a partial fill?
An order that fills in more than one piece, at more than one price. Your bot should track the average price and the filled quantity.
Does a good Tradovate backtest mean a bot will make money?
No. A backtest shows how a rule behaved on past data under its assumptions. Costs, fills, data and luck can all make live results different.
Should I test on a simulated account before real money?
Yes, as a general practice. A simulated account tests your code and your plumbing. Its fills are usually kinder than real ones, so it does not prove a rule works.
Have you tested Tradovate?
No. This page explains how it works in general terms and we have not tested it for this page. Check the vendor's current terms.
Are the numbers on this page real?
Example numbers are made up to show how the maths works, and the page says so. A figure only counts as exact when the page says it was calculated on a stated date. Nothing you enter in a calculator leaves your browser.
Can I use this to decide whether to run a bot?
It can show whether a bot's numbers hold together and how much an account can lose. It cannot say what the market will do, and it is not advice. Use it to ask better questions, then read the terms of your own broker or exchange.
Is this financial advice?
No. It is general education. The numbers are made up and it does not consider your situation.
Know the Risk Before You Run It
Free calculators and guides, added every week. Leave your details and we will email you when new ones go up.
Trading carries a risk of loss