All of my previous posts have been strictly focused on end of day trading. With this post I want to elaborate on how to test & trade intraday using limit orders. Furthermore I want to discuss the validity of the system presented with you.
The basic idea
- Buying oversold stocks intraday using limit orders.
- Oversold is defined when today’s price falls below yesterday’s close – 0.9 ATR(21)
- Buy top 5 stocks using ROC(20) for ranking
- All trades are closed at end of day
The test: Too good to be true?
- Strictly uses previous bar information in order to avoid look ahead bias, based on daily bars
- In case open is bellow limit order, open will be the execution price
- Based on NDX100 stocks (survivorship free: historical index adjustment + delisted stocks)
- No commission / slippage
- Explanation of the key performance indicators being used (link)
Click on the picture to enlarge it!
So what’s wrong?
The main issues with the system presented is the approach of taking (ranking) the trades according to previous bar’s ROC(20). In reality the limit orders won’t be hit in yesterday’s ROC(20) order. Using daily bars there is no way one can figure out the “real” sequence of the limit orders. So I decided to simulate the sequence by randomizing the selection. That can be easily done in AmiBroker by assigning a random variable as POSITIONSCORE. This way I’ve no influence (bias) what stocks are selected (as long as the low is lower than the initially defined limit). I’ve run the test 1000 times using randomized selection, bellow you find the randomized results. The results appear to be pretty stable regardless how the stocks are being picked. Even the “worst” run shows decent performance.
I’m interested to hear from YOU!
- Has the test faulty assumptions?
- Do you think the system is tradable?
Please enter your comments bellow. In case you are interested in the AmiBroker AFL code, please send an email to me (fhinbox-trading@yahoo) incl. your thoughts to these two questions.