Main clusters and core pages.
The trade automation industry has developed a particular obsession with milliseconds. Almost every connector, webhook bridge, or automated trading platform wants to impress traders with a number: 12 milliseconds, 50 milliseconds, 100 milliseconds, 200 milliseconds. These figures look precise and technical, which is exactly why they work so well in advertising. A trader sees such a number and naturally assumes that it represents the time required to turn a signal into an open position on a real trading account.
Last updated: 2026-07-11 • Author: AlgoWay
A latency claim is meaningful only when it defines the exact starting event and the exact final event. Measuring the interval from webhook receipt to API submission is a legitimate internal metric, but it is not the same as measuring the complete route from signal generation to a correctly opened and confirmed position.
| Stage | What actually happens | Often included in advertised latency? |
|---|---|---|
| Signal generation | The strategy or platform detects the condition and creates the alert. | Usually no |
| Webhook delivery | The external platform queues and transmits the alert across the network. | Usually no |
| Connector processing | The connector parses, validates, maps and routes the instruction. | Usually yes |
| Broker submission | The request reaches the broker, exchange, API or Expert Advisor. | Sometimes treated as the finish |
| Execution confirmation | The order is accepted, filled and reflected as the intended position. | Frequently no |
In most cases, however, that is not what the number represents.
The figure itself may be genuine. A service may really process an incoming message in 100 milliseconds, pass a command to an Expert Advisor in 50 milliseconds, or submit an API request within 200 milliseconds after receiving a webhook. The deception begins when one isolated stage of a much longer process is presented in a way that encourages the user to mistake it for complete end-to-end execution.
A trade does not begin when the connector starts its timer, and it does not necessarily end when the connector sends a request to a broker.
Before a connector receives anything, the trading platform must generate the signal, create the alert, place the webhook into its delivery system, and transmit it across the network. In the specific case of TradingView, we have repeatedly observed a difference of approximately one full second between the timestamp associated with the alert and the timestamp recorded when the webhook reaches the connector. This delay is not merely something we noticed internally; traders and developers have discussed the same behaviour publicly, including on Reddit. The delay is not always exactly one second, because network conditions and TradingView’s own delivery process vary, but the external stage exists and cannot honestly be ignored.
That second is important because a company may advertise 100 or 200 milliseconds while beginning its measurement only after the webhook has arrived. By that point, the signal may already have spent considerably more time travelling through an external system than the connector claims to spend processing it. The advertised number may therefore be accurate inside a narrow technical definition while being completely misleading in the context in which an ordinary trader reads it.
This is equivalent to a courier company measuring how long an employee takes to carry a parcel from the entrance of a building to the third floor, and then advertising that the entire delivery took eighteen seconds. The eighteen seconds may have been measured correctly, but they do not include collecting the parcel, sorting it, transporting it across the city, finding the address, handing it to the recipient, and confirming that the delivery was completed.
Trade automation services often do exactly the same thing. They select the shortest and most flattering section of the route, measure it carefully, and allow the customer to believe that the number describes the whole journey.
Once a webhook finally reaches the connector, there is still no trade. There is only a message containing an intention. It may contain a command to buy or sell, the name of an instrument, the requested volume, protective levels, or instructions to close an existing position. Receiving that message quickly is not a difficult engineering achievement. The difficult part is converting it into a valid and appropriate action on a specific trading account.
A responsible system may need to establish whether the requested instrument actually exists at the selected broker, whether the market is open, whether the requested volume complies with the platform’s minimum and maximum values, whether the account has sufficient margin, whether the requested direction conflicts with an existing position, whether the symbol requires broker-specific mapping, and whether the operation is supported by the destination platform at all.
None of these checks are decorative, and none of them exist merely to make a system appear slower. They are the difference between genuine automation and blind forwarding.
A primitive connector can be made extremely fast. It receives a string, changes the format, and immediately throws the resulting request into the broker’s API. If the request is accepted, the vendor presents the outcome as proof of performance. If it is rejected, the system writes the broker’s error into a log and informs the customer that the original signal was invalid.
From the vendor’s point of view, this arrangement is convenient. The signal was forwarded quickly, the latency statistic remains impressive, and responsibility for the failed operation is placed entirely on the user. From the user’s point of view, however, nothing useful has been accomplished. The customer did not purchase an expensive pipe for moving malformed instructions from one server to another. The customer purchased automation that was supposed to transform an intention into a correctly executed trading action.
Another widespread substitution appears when the moment an order is submitted is described as the moment the position is opened. In reality, creating a request, sending a request, having it accepted for processing, placing an order, partially filling that order, fully filling it, and confirming the resulting position are separate states.
A connector can submit a request in a few milliseconds and still fail to create a position. The broker may reject the order, delay it, partially fill it, return a requote, refuse the volume, reject the instrument, report insufficient margin, or apply a platform-specific restriction. Even a successful response from a trading API may indicate only that the request passed an initial validation stage and was accepted for further processing.
MetaTrader’s own trading model makes this distinction clear. A successful call to an order submission function does not automatically prove that the requested trade has already been executed. The result code and subsequent trading events must still be examined before the system can determine what actually happened.
If a connector stops measuring immediately after sending an HTTP request or passing a command to an Expert Advisor, it is not measuring the time required to produce the result expected by the user. It is measuring how quickly responsibility left the connector’s own infrastructure.
There is nothing wrong with measuring internal processing time. Engineers need to know how long individual stages take, and AlgoWay measures such stages as well. The problem begins when an internal engineering metric is placed on a marketing page under a phrase such as “execution in 100 milliseconds,” even though the timer stopped before the broker executed anything.
A useful performance claim must clearly define where the measurement begins and where it ends. A statement such as “the interval between our server receiving the webhook and submitting the API request is normally 200 milliseconds” is understandable and technically meaningful. It does not claim more than it measures. A statement promising “trade execution in 200 milliseconds,” while quietly referring only to alert processing, creates an entirely different impression.
The same manipulation appears in laboratory benchmarks. A service can produce an excellent latency result when the account is already authenticated, the instrument is already cached, the server is located close to the broker, only one account is connected, the order is a simple market order, the market is calm, and no validation, retry, synchronization, or correction is required.
Such a test may be useful to developers, but it does not describe normal trading conditions.
Real users work with different brokers, different platforms, different symbol names, multiple accounts, simultaneous signals, changing positions, unstable connections, volatile markets, partial closes, protective orders, and platform-specific limitations. Under those conditions, one record showing an operation completed in 12 milliseconds says very little. It does not show how many operations took two seconds, how many required six seconds, how many were retried, how many were partially executed, and how many failed altogether.
A serious performance report would show not only the best result but also the median, the slowest normal cases, the failure rate, the number of retries, the platform used, the order type, and the exact event treated as final confirmation. Marketing pages rarely provide this information because a complete picture is far less impressive than one carefully selected number.
The external trading platform also controls a substantial part of the process. A connector cannot cancel the laws of physics, eliminate network latency, ignore rate limits, bypass authentication requirements, or force an external API to process requests more quickly than it was designed to process them.
Some platforms require pauses between certain operations or restrict the frequency of requests. Others require the connector to obtain and maintain information about available instruments, active orders, current positions, account state, and completed transactions. A properly designed integration may need to receive an initial account snapshot and then continuously update that state using streaming events. Without this information, the connector is not really aware of the account it is controlling.
It becomes a zombie that merely forwards whatever the user sends, without understanding whether the command corresponds to reality.
This distinction matters particularly when a service advertises millisecond execution on a platform whose own API imposes delays or requires several operations before a trade can be safely placed. Even if an incoming alert is processed in 200 milliseconds, the system may still need to authenticate, identify the correct instrument, obtain the current positions, verify the requested action, submit the order, and wait for confirmation. The connector cannot compress those external requirements into a marketing slogan simply because the slogan looks attractive.
It is possible to send raw material to an exchange in milliseconds. It is not always possible to transform that material into a correct and confirmed position in milliseconds.
This is why AlgoWay does not present one universal latency figure as if it applied to every platform, broker, account, and operation. On one platform, an instruction may be delivered and confirmed in approximately half a second. On another platform, the complete process may take as long as six seconds. This difference does not necessarily indicate that one connector route is badly designed. It may reflect the rules of the destination platform, the number of required API operations, the current account state, the requested order type, or the time needed to receive a meaningful confirmation.
We are not interested in throwing a bone to a dog and boasting about how quickly it left our hand. We care about whether it reached the correct destination, whether the destination understood it, whether the requested action was valid, whether the order was accepted, whether the position was created, and whether the user received a clear explanation of the result.
Users make small mistakes constantly. They enter an instrument name used by another broker, confuse lots with units or contracts, select a volume that does not match the permitted step, send a closing command for a position that no longer exists, choose the wrong direction, or use an alias that the destination platform does not recognize.
A responsible automation system should not celebrate the fact that it delivered such an instruction to the broker in 100 milliseconds and received an immediate rejection. It should attempt to understand the user’s intention, identify supported variations, normalize the volume when this can be done safely, verify the actual account state, and prevent an avoidable failure.
This work consumes valuable milliseconds. Sometimes it consumes seconds. We consider that time well spent.
The alternative is to forward the raw signal immediately, receive a rejection, and then show the user a log saying that the user originally sent an invalid command. In that model, the vendor assumes no responsibility, while the customer carries every consequence. The system exists mainly to protect its own latency statistic.
That is not intelligent automation. It is responsibility avoidance disguised as speed.
A connector that proudly reports how quickly it forwarded your instruction but refuses to take responsibility for understanding or confirming the result resembles a friend who carries a knife in his pocket, waits for a convenient moment, and then places the consequences in your back while explaining that you should have been more careful.
Speed is important in trading, but speed without understanding, validation, confirmation, and responsibility is not an advantage. A wrong order delivered in 100 milliseconds remains a wrong order. A malformed request rejected instantly is not a successful operation. An instruction submitted quickly but never confirmed is not execution.
Real trade automation should be measured by the time required to produce a clear, correct, and confirmed outcome, not by the time required to generate the first HTTP response or throw an unchecked request into someone else’s infrastructure.
When a company advertises 12 milliseconds, 100 milliseconds, or 200 milliseconds, the number should be read carefully. The real issue is not whether the measurement is fabricated, but whether it represents the entire process or only one favourable fragment of it. Without a clearly defined starting point, a clearly defined ending point, and confirmation that the operation resulted in an actual position rather than a submitted request, the advertised latency is not the whole truth.
It is a carefully polished piece of the truth, presented as though nothing else exists.
Before accepting a millisecond figure as a complete execution result, ask: