Over the last couple of weeks, many traders have been sharing screenshots of trades being executed far away from the current market price in F&O contracts on social media, referred to by many as “freak” trades. These incidents are especially around index F&O contracts.
I will explain why there has been an increase in such freak trades, what you can do as a trader to steer clear of them, and what we are doing about it at Zerodha.
Shallow market depth and impact cost
Media usually tends to cover Indian exchange turnover in terms of lakhs of crores of Rupees daily, which is misleading. Yes, the notional (contract value) daily turnover on the exchanges is over Rs 50lk crores (Rs 49lk crores in options, Rs 1lk crores in futures), but that is not really the right way to look at turnover when determining the liquidity of an exchange. If you look at the premium amount for options and margin amounts for futures, this turnover reduces to a mere ~Rs 20,000 crore for options and ~Rs 20,000 crore for futures (considering 20% margin for futures). That is ~Rs 40,000 crores or $5 billion.
If you consider that 50% of this turnover comes from market orders (most HFT / Algo platforms are typically buying at the market) and that the turnover is distributed across hundreds of different F&O contracts and less than ~1 million active F&O traders. Then, you’d realise that F&O contracts trading on our exchanges have a very shallow market depth. This means that at any given time, the total number and quantity of pending limit orders to buy or sell isn’t as high as it would seem if you just read the headline turnover number. This also means that the impact cost or money you can lose while entering or exiting a trade using market orders can be quite high.
First rule of trading: Always place limit orders
This sounds counterintuitive because, in trading, when you have an opportunity to enter or exit, the best strategy is to do it immediately without waiting, ideally using a market order. But like I mentioned before, due to the shallow market depth, you might get unlucky. Your trade could get executed at a price far away from the current market price in a fraction of a second, causing a significant loss, especially if your order coincides with another large market order on the exchange.
A good trader always tries to reduce all possible risks that they can control. So, a way to cover yourself from a large loss due to a freak trade while also entering/exiting immediately is to use limit orders with a price higher than the current market price for buy orders and lower for sell orders. This will ensure that you are still placing market orders but also are protected against freak trades. Let me explain with an example.
Assume that an Index call option contract is trading at Rs 100, and you decide to buy five lots at market price. Instead of placing a market order, you can place a limit buy order at Rs 102. This will ensure that your order is treated as a market order and that the impact cost does not exceed 2 points, if at all. Similarly, if you want to sell at the market price of Rs 100, place a limit selling order at say Rs 98 to ensure impact cost is not more than 2 points on the trade.
Why has the number of complaints around freak trades increased recently?
On August 16th 2021, NSE completely removed execution ranges, price bands within which contracts could trade. Until then, NSE had a concept of Trade Execution Range (TER) mechanism as a risk management measure which ensured that market orders didn’t execute beyond this execution range. This circular explains how TER was calculated. Essentially a reference price for every F&O contract was arrived at using a theoretical price based on the underlying stock/index price. Based on this reference point, the execution range would be:
- 5% for all futures contracts
- Rs. 20 for all options with reference price between Rs. 0.05 to Rs. 50
- 40% for all options with reference price above Rs. 50
So if Nifty is at 15000, all futures contracts could be executed only between 15750 & 14250 (5% above or below). Similarly, if for a particular Nifty call option, the reference price was at Rs 100, a market order wouldn’t execute beyond Rs 140 or below Rs 60 (40% above or below).
But, this execution range was causing issues, especially during the market opening. When there were large moves at market opening, this reference price and range calculated based on previous closing price, historical implied volatility, etc., could be far from the actual price. Even within the trading day when there were sudden large price moves, the actual price could be outside the range set by the exchange. Whenever the actual price was outside the trade execution range, no trades would get executed. This meant not being able to enter or exit until the exchange increased the execution range manually.
So if Nifty closed at 15000 the previous day and the theoretical price of 15100 calls was, say, Rs 80, the execution range for this contract at the market opening would be 40% above and below Rs 80 or between Rs 48 and Rs 112. If the market opened, say at 15250, the 15100 calls would be at a minimum Rs 150 (15250-15100), but 150 is above the execution range of Rs 112. This would have meant no trading on this contract until the exchange increased the trade execution range manually. As you can imagine, this inability to enter or exit options at market open or even during the day in certain contracts due to TER led to many complaints at the exchange.
Having a dynamic trade execution range that can automatically keep changing is quite a complex problem to solve at the exchange level. So, NSE published this circular (see the last paragraph) on July 31st 2021, saying that from August 16th 2021, there won’t be any trade execution range. NSE decided to follow what most other exchanges in the world do, which is not to have such restrictions and allow demand and supply at any given time to determine at what price a trade gets executed. Their stance seems to be that traders have to be careful about this while placing orders on the exchange and that contracts being completely banned from trading for a few minutes is a lot worse than a few freak trades.
Internal dynamic execution range at Zerodha
Due to the extremely shallow market depth, we have had many incidents in the past with our customers losing money trading market orders on stock options. We have blocked market orders on stock options for many years now. For customers who want to trade market orders, we suggest placing limit orders with a price higher than LTP for buying and lower than LTP for selling.
Index F&O contributes more than 90% of all F&O trading volumes. Most intraday traders looking to enter or exit quickly also mostly trade index F&O. So blocking market orders on Index F&O isn’t the optimal way to ensure customers don’t lose money on freak trades.
However, we have come up with a solution where market orders for index F&O with an impact cost of more than a certain percentage of the last traded price will be disallowed. To calculate this impact cost, the system will consider the best five bids and offers and the quantities available at those prices while placing the order. If the impact cost from that market order is more than a certain percentage, the order form will reject the order and nudge you to place a limit order.
The plan is to have this percentage based on the premium value, 20% if the premium is above Rs 50, 20% to 40% for premiums between Rs 10 to Rs 50, 50% or more for premiums less than Rs 10. We hope that this will significantly reduce customers incurring losses due to market orders filling at unexpected faraway prices. We will update this post as soon as this feature is live.
Stoploss orders getting triggered due to freak trades
While our dynamic execution ranges will help you from the direct risk of freak trades on your market orders, there is another indirect risk. If you have placed stoploss orders, freak trades on the exchange can trigger your pending stoploss orders. So if you had bought an Index call option at Rs 80 and stoploss at Rs 70, a freak trade at Rs 50 would trigger your stoploss order; there is no way to avoid triggering a stoploss order due to a freak trade. But to ensure your stoploss order triggered doesn’t have a high impact cost due to freak trades, for the same reasons mentioned above, make sure to use stoploss limit orders and not Stoploss market orders. Check this article to know the difference between SL and SL-M.
By the way, many times these freak trades may not show up on the charting platforms provided by your brokerage firm. Charts are formed by the broker trading platforms from the data that they receive from the exchange, typically 1 to 4 ticks per second. The actual number of trades on the exchange can be much higher in that 1 second, which means all trades that happen on the exchange can’t be shown on the chart due to this technical limitation. Check this article to read more.
Recapping, when trading the markets, there are certain things in your control and many that aren’t. A good trader always does whatever to reduce risk on things that can be controlled, like using limit orders instead of market orders and using SL over SL-M, especially when trading contracts with a shallow market depth.
If you have any questions, post them on this Trading Q&A thread.