Hi! I just want to clear my concern about the legality of automated trading. I am running a small trading company with a team of 5 members. Is there any legal complication involved in automating the order placement through kite apps. Needless to say, the entire process is automated through algorithms. Is there any need to get my algorithms approved by SEBI?
Saurabh, this is a grey area. Let me explain, exchanges call it algo trading/auto trading, if the broker offers algorithms which are automated to his clients. Just to be clear, we as Zerodha/Kite connect don't offer this.
The question is, what if clients automate on their own? Clients have been doing this using hacky ways like using macro's and all for a long time now. The brokerage will never get to know how the order was fired. We have been asking exchanges clarity on this. But until then, if you want to do complete automated trading, you can reach out to our team, we will help you getting approvals from the exchange.
I differ with Nithin on this a bit. However I agree it is a gray area.
It is clear that algorithmic trading is not allowed by the regulator for the retail traders. Read on....
But who can stop the hacks/workarounds to prevent automated trading? As Nithin mentioned, this has been happening for many years.
The problem arises if the regulator checks on your order flows and collects evidence that you did algorithmic trades. And you could do algorithmic trading in many ways with many workarounds without use of Kite.
Now Kite API enables users to perform automated trading, but does not tell you to perform algorithmic trading and hence it can shed off responsibility for your actions - It is a double edged sword. You could use the APIs just to get some details or make a convenient tool instead - Zerodha doesn't tell you to do algorithmic trades.
Automated trading was deliberately not enabled on platforms like NEST for the retail traders. You could do hack and write automation scripts, but could not have a straight forward way of doing such automation. Was it very difficult for a programmer? No!
I remember reading about early days of automated trading where they had physical push button machines to place orders at WallStreet because the regulator required them to "Key in orders via the keyboard". People always come up with hacks and its not feasible to restrict automated trading.
The regulator's stance to not allow algo-trading is not-reasonable. Even for a non-retailers, the strategy approval mechanism sucks and in a way worked-around. They will allow it sooner or later for the retailers with appropriate checks and policies in place.
I have spent a lot of time with the exchanges on this. The concern for regulators is risk that arises from a bad algo that can make the markets crash/go up, the high frequency kinds. If you speak to exchange or regulators, algo for them is essentially that. Also if you read the circulars, it doesn't say anywhere that it is banned for retail.
Algorithmic trading means any order that is generated using automated execution logic through the trading member front end.
This is gray, but friends in exchange have concurred that, it is an algorithm/automated trading if it is available on the trading platform and is offered by the broker. I had asked them informally when I used to use excel macros on NEST, the response was that they don't care. Also the exchanges will never ever talk to the client, they will only speak to the broker. Interactive brokers in India for years now have opened up API's similar to Kite connect for everyone to use.
I want to do fully automated trading using Kite's Python APIs. I called Zerodha about this and have got conflicting answers. One person told me that fully automated is not possible - order firing needs to be done manually. Another person told me that if I get exchange approvals for each strategy, I could do fully automated. Yet another one told me that if I could get some NCFM/NISM certification, I can do fully automated, without any exchange approvals. Could someone please clarify?
I have spent reasonable hours on this topic and still not convinced with the info available online
on the NSE portal it says :
Decision Support Tools / Algorithms trading Automated Trading” shall mean and include any software or facility by the use of which, upon the fulfillment of certain specified parameters, without the necessity of manual entry of orders, buy/sell orders are automatically generated and pushed into the trading system of the Exchange for the purpose of matching. SEBI has allowed Exchanges to extend Algorithmic trading facility to members involving usage of various Decision Support Tools / algorithms / strategies.
So if thats the case then why requires approvals and all ?, because as long as we are not doing any direct execution to the exchange trading system but sending orders to Zerodha and after all type of validation Zerodha forwarding the orders to exchange, this statement somehow satisfies that no one can perform any action which will lead to a market crash, Also the API has the limit function which stops too many requests in a certain time frame which obviously blocks the HF trading.
This is a grey area, but just to reiterate, we don't allow automated trading i.e run algorithms on our servers on behalf of clients which according to regulators is algorithmic trading ( buy/sell orders are automatically generated and pushed into the trading system of the Exchange). These API's are just a layer over our exchange approved web based platform which has all risk rules in place for internet based trading. @andy , do send an email to [email protected], someone can explain in detail.
There are several people in Kite Connect Forum who have published their trade execution function logs for debug or as a question, Can it be assumed that all of them have got the required Trading approval of exchanges through Zerodha?
Might be a bit unfair to pin Zerodha folks on this as they are just the overlay platform and have to balance next generation use cases with what the exchange binds them to do.
In general though, my personal read is that most regulatory concerns are around high frequency trading vs low frequency. Low frequency in general can be justified to have a 'human hand' in selection/quantity/timing etc and may not be as controversial. It is virtually impossible for any authority to distinguish automated low frequency trades vs human initiated via a UI. In fact, you will hardly see any mention of trying to regulate low frequency trades anywhere. Most regulatory concerns are around specific HFT constraints (order success ratio etc) which anyway Zerodha seems to have enforced.
The question is, what if clients automate on their own? Clients have been doing this using hacky ways like using macro's and all for a long time now. The brokerage will never get to know how the order was fired.
We have been asking exchanges clarity on this. But until then, if you want to do complete automated trading, you can reach out to our team, we will help you getting approvals from the exchange.
You can reach to [email protected] and [email protected] with your contact details.
It is clear that algorithmic trading is not allowed by the regulator for the retail traders. Read on....
But who can stop the hacks/workarounds to prevent automated trading? As Nithin mentioned, this has been happening for many years.
The problem arises if the regulator checks on your order flows and collects evidence that you did algorithmic trades. And you could do algorithmic trading in many ways with many workarounds without use of Kite.
Now Kite API enables users to perform automated trading, but does not tell you to perform algorithmic trading and hence it can shed off responsibility for your actions - It is a double edged sword. You could use the APIs just to get some details or make a convenient tool instead - Zerodha doesn't tell you to do algorithmic trades.
Automated trading was deliberately not enabled on platforms like NEST for the retail traders. You could do hack and write automation scripts, but could not have a straight forward way of doing such automation. Was it very difficult for a programmer? No!
I remember reading about early days of automated trading where they had physical push button machines to place orders at WallStreet because the regulator required them to "Key in orders via the keyboard". People always come up with hacks and its not feasible to restrict automated trading.
The regulator's stance to not allow algo-trading is not-reasonable. Even for a non-retailers, the strategy approval mechanism sucks and in a way worked-around. They will allow it sooner or later for the retailers with appropriate checks and policies in place.
Anyways, here is a link on algo trading issued by NSE. This is gray, but friends in exchange have concurred that, it is an algorithm/automated trading if it is available on the trading platform and is offered by the broker. I had asked them informally when I used to use excel macros on NEST, the response was that they don't care. Also the exchanges will never ever talk to the client, they will only speak to the broker.
Interactive brokers in India for years now have opened up API's similar to Kite connect for everyone to use.
I want to do fully automated trading using Kite's Python APIs. I called Zerodha about this and have got conflicting answers. One person told me that fully automated is not possible - order firing needs to be done manually. Another person told me that if I get exchange approvals for each strategy, I could do fully automated. Yet another one told me that if I could get some NCFM/NISM certification, I can do fully automated, without any exchange approvals. Could someone please clarify?
on the NSE portal it says :
Decision Support Tools / Algorithms trading
Automated Trading” shall mean and include any software or facility by the use of which, upon the fulfillment of certain specified parameters, without the necessity of manual entry of orders, buy/sell orders are automatically generated and pushed into the trading system of the Exchange for the purpose of matching. SEBI has allowed Exchanges to extend Algorithmic trading facility to members involving usage of various Decision Support Tools / algorithms / strategies.
So if thats the case then why requires approvals and all ?, because as long as we are not doing any direct execution to the exchange trading system but sending orders to Zerodha and after all type of validation Zerodha forwarding the orders to exchange, this statement somehow satisfies that no one can perform any action which will lead to a market crash,
Also the API has the limit function which stops too many requests in a certain time frame which obviously blocks the HF trading.
There are several people in Kite Connect Forum who have published their trade execution function logs for debug or as a question, Can it be assumed that all of them have got the required Trading approval of exchanges through Zerodha?
-SR
In general though, my personal read is that most regulatory concerns are around high frequency trading vs low frequency. Low frequency in general can be justified to have a 'human hand' in selection/quantity/timing etc and may not be as controversial. It is virtually impossible for any authority to distinguish automated low frequency trades vs human initiated via a UI. In fact, you will hardly see any mention of trying to regulate low frequency trades anywhere. Most regulatory concerns are around specific HFT constraints (order success ratio etc) which anyway Zerodha seems to have enforced.