Why was the stop-loss order executed even though the price did not breach the trigger?
We get this query quite often, “my limit/market/stoploss order was executed, but the price at which it is executed doesn’t show up on the charts. How is that possible?”
Firstly, you need to be aware that it is technologically impossible for a chart offered by a broker (irrespective of which broker) to show all trades that are executed at an exchange today. Here is why:
Lakhs of people are executing tens of thousands of trades on the exchange every single second. Trades on a single stock happen within microsecond intervals at the exchanges, and exponentially more on volatile days. The charts that you see on Kite (or at any other broker) are formed using the data feed streamed by the exchanges. These feeds of “ticks” are combined snapshots of many such trades over larger intervals, for instance, one to four times every second, that is, all the trades over a minimum of 250 milliseconds. The charts are formed using those four ticks and not the thousands of ticks or trades that happen on the exchange. So there is no way the chart can show all trades.
Why can’t exchanges send all trades to the broker?
The data feed including every single trade that happens at the exchange every microsecond is known as the Tick By Tick (TBT) feed. Because it is enormous amounts of data, impossible to efficiently send over the internet or leased lines.
This issue of not being able to see a certain price on the chart typically happens when a large order moves the price for a few microseconds which may not get captured in the exchange snapshot transmitted to the broker. Like I said above, there is no technical way to solve this issue today. Maybe in a few years from now when internet bandwidth available is exponentially more than what it is today, we could get exchange feeds with every single trade. This issue exists at all the international exchanges as well.
Every single order that is placed, be it market, limit, or SL etc., is immediately transmitted by the broker to the exchange in real time. The actual filling or the execution of the order happens at the exchange. Any price that an order fills it, is filled by the exchange centrally. Brokers have zero involvement or control on order matching and execution at the exchange.
If there is an exchange trade ID, that means that trade is executed at the exchange. You can also verify this using the NSE trade verification module .
What if I want to see all the ticks or trades?
Exchanges give a colocation service where you can have your servers within the exchange premises and consume the premium Tick by Tick data stream offered by the exchange. You have to consume these feeds within exchange premises over LAN and not internet. You would have to then build a program to consume many GB’s worths of raw data and convert it into an intelligent format and consume it right there on the co-located server because it will not be possible to stream it out over the internet. Check more here and pricing here .
TBT data is used mainly by high-frequency trading desks. It is not meant for retail customers and is prohibitively expensive, and as explained above, impossible to transfer over the internet anyway.