@Big Short, Even I have started automated my trading. I want to know 2 things from you. Firstly, how do you execute orders in order to reduce slippage which is a major profit eating dragon. I am more concerned about execution than strategy. Secondly, if you use limit orders how do you know if the order is executed/pending/rejected as a client Nest terminal would not give any feedback.
yes that exactly I want to know about execution of trade.
However I don't want fully automate system but needs some mechanism of execution of trade in BO order.
As i said earlier , i am not into HFT. Execution is a big part of HFT , thats why all the HFT firms have some sort of execution Algorithms to execute their trade. So for simplification purposes , we can break down our Algorithms in 2 parts.
1. Strategy/Logic Algorithm
2. Execution Algorithm
If you are into HFT or scalping then you require execution Algorithm, If you are into Mid Frequency or Low Frequency Trading then Execution Algorithms dont matter.
I usually trade with market orders although there are strategies which trade on limit order as well. Usually There is a hybrid of order types which you can use. e.g. if you are trading a breakout strategy , you can enter in your position with a Market Order and while exiting it end of the day (Intraday)
you can use a limit order.
We also use this tool which converts our limit orders to market orders if they are unfullfilled after a set amount of time which can be adjusted. (like 10 seconds).
Frankly if you are trading the indices , e.g. Nifty or Banknifty, the slippage is not an issue. My analysis on at least 6 months of data on our systems suggest that we are paying a slippage of roughly 1000 rupees per crore if we trade market orders. Now for an HFT thats big, but for mid frequency traders thats actually inconsequential. Please note that thats an average, I have seen huge slippages on days like RBI policy meet etc, and i have seen days with positive slippage also. It evens out in the long Run.
So how is this slippage related to strategy development?
So it seems unless we make execution algorithms of our own, we cant actually control our slippage. Slippage is a factor of many things like
trading time, liquidity in the market, market depth etc. all of which we cant control. So the right thing to do here is take slippage into account while testing a trading strategy. Infact i recommend to over estimate your slippage and put that as a cost in your trading strategy while you are backtesting it.
If you are an institution , you may want to foray into developing execution algorithms but if you are a stand alone trader, forget about slippage, Use market orders, and put that slippage in your cost while designing a strategy.
Hope that answers your questions.