Last updated 6 September 2026

Slow performance

In short

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. 1 Your network connection speed.
  2. 2 Load on AutoTrader's server.
  3. 3 Load on your stock broker's server, such as during market start or end.
  4. 4 Speed of execution on your broker's server.
  5. 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.

Note also that work for many accounts is done in parallel, never one account after another. If you place, modify, cancel or square off across many accounts, or if a master order is copied to many child accounts, all of those accounts are processed at the same time. So a large number of accounts does not multiply the time taken. Our full measured numbers are on the speed and performance page.

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:

StepWho is responsible
Time for the live price to reach your computerYour datafeed provider
Time for strategy executionYour strategy’s complexity and your PC hardware/software
Time once your strategy calls an AutoTrader API functionAutoTrader

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:

EntryWhat 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.

  1. Place the order. The API response contains a commandId.
  2. Paste that command id into the filter box on Tools -> Activity.
  3. 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 own strategy logs

You can also measure the time from your strategy’s own logs.

The AmiBroker, MetaTrader and Excel libraries all have a debug switch in their settings file. Turn it on and the library prints every request and every reply, so you can see how long the platform took to answer. It never prints your API key, and you should turn it off again once you are done — it is noisy.

LibrarySettingWhere the lines appear
AmiBrokerAT_HTTP_DEBUG in autotrader-http-config.aflAmiBroker trace window
MetaTraderAT_HTTP_DEBUG in autotrader-http-config.mqhThe Experts tab
ExcelAT_HTTP_DEBUG in the AutoTraderConfig moduleThe VBA Immediate window (Ctrl+G)

The most reliable timing, though, is not in your logs at all. Tools → Activity timestamps every entry to the millisecond, for every order, however it was placed. Subtract the time of the Placing order entry from the SUCCESS ... Result entry.

Did this solve your problem?
Contact support