Last updated 4 August 2026
Slow performance
On average, order placement takes 100 to 200 milliseconds (0.1 to 0.2 seconds). AutoTrader Web's own server adds only about 20 milliseconds to that; most of the time is spent on your stock broker's server. If you see slower numbers, the usual causes are your network speed, load on your broker's server, or a first-of-the-day login. To measure it yourself, open Tools -> Activity: every log entry is timestamped down to the millisecond, so subtract the time of the 'Placing order' entry from the 'SUCCESS ... Result' entry to get the exact time taken. This works for every order, including orders you placed from your own program through the API. Average it over at least 100 operations.
When this happens
- 1 Your network connection speed.
- 2 Load on AutoTrader's server.
- 3 Load on your stock broker's server, such as during market start or end.
- 4 Speed of execution on your broker's server.
- 5 AutoTrader needing a first-of-day login before it can run a command.
Sometimes users may find performance to be more than the average. This page explains how performance works, what can slow it down, and how to measure it correctly.
Understand performance
Our system does not do much processing. It acts as an intermediate server, so its job is to be a bridge. The actual processing happens on your stock broker’s server. Because of this, the performance numbers depend a lot on your broker server’s performance.
To calculate performance correctly, take an average of at least 100 operations.
What can affect performance
If AutoTrader is not logged in to your account, it must log in before it runs any other command. This login can take time. You may notice it on the first order of the day, or when the session expires.
AutoTrader Web’s server
Slowness caused by external factors, like your network and your broker’s trading servers, is out of our control.
One thing we can guarantee: AutoTrader Web’s server processes any command in about 20 milliseconds (0.02 seconds) on average. That is the time our own code runs. The rest of the time is taken by your stock broker’s server.
Building a highly efficient system is always our priority. So any genuine performance issue caused by our code will be investigated and improved by us.
How to measure performance
Measure performance by the time AutoTrader took to run an operation.
Some users make the mistake of using the stock price tick time to calculate performance. This is wrong. A price tick of 12:12:55 pm might reach your computer at 12:12:57 pm.
The full chain has three parts, and each has a different owner:
| Step | Who is responsible |
|---|---|
| Time for the live price to reach your computer | Your datafeed provider |
| Time for strategy execution | Your strategy’s complexity and your PC hardware/software |
| Time once your strategy calls an AutoTrader API function | AutoTrader |
The last row is the only part we control, and you can measure it exactly. The next section shows how.
Measure it yourself on the Activity screen
You do not have to take our word for the numbers. Open Tools -> Activity and read them off your own account.
Every activity entry is timestamped down to the millisecond, so the measurement is simple subtraction. Placing an order writes two entries:
| Entry | What it means |
|---|---|
Placing order: Order [...] | The moment we received your order. |
SUCCESS - [...]. Result: ... | The moment your broker replied with the order id. |
For example:
10:15:32.118 AM [AB1234]: Placing order: Order [BUY 1 Qty (SBIN) @ 990.0 (LIMIT)]
10:15:32.267 AM SUCCESS - [MyAccount | mybroker | AB1234]. Result: 250804000123456
32.267 - 32.118 = 0.149 seconds, so that order took 149 milliseconds. Around 20 milliseconds of it is our system; the rest is your broker.
This is the most reliable measurement you can make, for two reasons. It is the real time of a real order in your own account, not an average. And it leaves out the time your own internet connection took to reach us, so it separates your network from our system and your broker.
This works for API orders too
If you place orders from your own program, the Activity screen is where the timing lives. The API response does not carry it, and you do not need to change any code to get it.
- Place the order. The API response contains a
commandId. - Paste that command id into the filter box on Tools -> Activity.
- You now see only that order’s entries. Subtract the two times as above.
Compare that with the full round trip your own code measured. The difference between the two numbers is your network plus your code, which is the part you can improve at your end.
Read your strategy or desktop client logs
You can also calculate the number from your strategy’s own logs, or from the AutoTrader desktop client’s logs if you use it.
Here are sample log entries. The order placement time is the gap between the “Processing line” entry and the “Successfully sent the command to server” entry.
It took approximately 0.2 seconds:
10:00:08.013 DEBUG InputFileMonitor : Processing line: PLACE_ORDER,XX9999,556874-1,REGULAR,NSE,SBIN,SELL,LIMIT,INTRADAY,16,130.50000,0.00000,0.00000,0.00000,0.00000,0,DAY,false,1593598464,-1,
10:00:08.209 INFO FileChangeListener : Successfully sent the command to server.
10:00:08.210 INFO FileChangeListener : Result: 200701001183871
It took approximately 0.16 seconds:
10:30:02.431 DEBUG InputFileMonitor : Processing line: PLACE_ORDER,XX9999,556874-2,REGULAR,NSE,WIPRO,BUY,SL_MARKET,INTRADAY,6,0.00000,436.95001,0.00000,0.00000,0.00000,0,DAY,false,1593598464,-1,
10:30:02.590 INFO FileChangeListener : Successfully sent the command to server.
10:30:02.591 INFO FileChangeListener : Result: 200701001184003
It took approximately 0.2 seconds:
10:00:10.564 DEBUG InputFileMonitor : Processing line: PLACE_ORDER,XX9999,556874-3,REGULAR,NSE,DMART,SELL,LIMIT,INTRADAY,2,1327.09985,0.00000,0.00000,0.00000,0.00000,0,DAY,false,1593598464,-1,
10:00:10.776 INFO FileChangeListener : Successfully sent the command to server.
10:00:10.777 INFO FileChangeListener : Result: 200701001184663