Brokers can tag orders placed by API and send them to exchange. Exchange gets a unique ID of a user who placed the order. Now, the exchange can cluster all orders received from all brokers. They will end up creating groups of similar orders. Now, they know, this group of people (in thousands) are placing similar orders and are a threat (can move the market). Exchange can take some action against those users, and leave people like me, who have a unique algorithm alone.
Just mentioning the above solution, If SEBI needs to do something. In my opinion, let us be free and place orders however we want. @nithin
This is a system problem and needs technical solutions. My proposals:
Only Limit orders permitted for API orders. No Market or Stop Loss (Limit, Market) orders allowed.
Broker induces a “speed bump” execution delay for API Orders (up to 1 Minute to match the time taken to place an order manually on an average) for API orders .These delays are only for 1st leg orders and modify orders. It does not apply to cancel orders or exit orders.
Broker applies rate limits such as 5 orders a minute, 50 orders a day (1st leg orders) for API orders for each client.
If more than 50 1st leg orders arrive from the same IP address in a day, no further orders will allowed from that IP (This virtually ends all these illegal algo platform entities)
If algo sellers software is installed on client side, again Point (3) above will curb it.
A combination of client id and/or ip addr will solve the problem for the brokers to check if the order is algo or non-algo. Even if they are algo triggered, the risk or impact will be insignificant, because the rules ensure that algo trading is levelled down to merely a restricted form of automated trading, while API technology is retained for the benefit of disciplined investors and continued innovations in Indian fintech industry.
Providing recognition to Algo sellers and platforms needs a comprehensive new Certification and is unrelated to the technical solution presented above.
I have given this some thought lately and feel have a solution to this problem in case the worse happens i.e. Sebi decides to have a blanket approach and treat execution orders as algo orders just because they are flowing to exchanges through API access.
So the solution is as zerodha has several kind of features such as AMO and GTT where the orders are sent to broker and broker sends it to exchanges whenever markets are open. I assume zerodha had to take approval from exchanges to provide such kind of order placement features such as AMO/GTT. Similarly zerodha can have a feature like ‘Live market orders’. The idea around it will be that the order is punched by the client (manually/systematically) just like it is done for AMO orders. It flows through the broker’s servers and immediately is fired to the exchange instead of having a predefined time or condition. Zerodha can get approval for such a feature from exchange just like in case of AMO /GTT order type. This would bypass user’s order execution program being treated as algorithmic trading as user is just passing few orders to broker’s server providing a special feature for orders which will be fired on the fly after going through all checks like in case of AMO.
@nithin what are your opinions on this? Does this sound as a reasonable solution?
This is exactly how it works even today and why we have been debating that this shouldn’t be considered as an algo. With GTT, a customer specifically says place an order at a certain price, there is nothing algo about this. The algo issues come when the entry rule isn’t defined and is variable.
GTT orders stay in Zerodha’s servers till trigger condition is met, right? Order is sent to exchanges after certain market condition is triggered. So it could be said it is an algo.
IMO, The algorithmic trades should be classified into two groups, whether the order goes through brokers RMS or orders going to exchanges directly.
For the first case, via broker RMS, exchanges and SEBI should stay away. At best they could require brokers to tag ‘automated’ orders for auditing. They could ask a risk disclosure document signed by traders when they get api access. Anything above this is not acceptable at all.
For the second case, orders directly going to exchanges, it is upto SEBI/exchanges and they can put all the restrictions they want, since brokers let the orders bypass their RMS. The best idea I can think of is that Exchanges can put some kind of sub-membership for these algo/hft and ask for additional deposit and networth requirements.