Hi Peter JayJay and Jared,
Thank you for your suggestions! Here are my thoughts about the issue you pointed out:
1. Few trades are caused by the number of stocks in the universe. I can defenitely select more stocks to make up more pairs, but it takes 6 second on average to conduct ADF test on a single pair -- I'm thinking about using a lower resolution such as 5min or 10min to speed up the ADF test so that I can have more pairs.
2. If we use a lower resolution, the bid-ask spread might not be a big problem -- although we will still overestimate the profit. I will check that after the algorithm is finished.
3. All of the stocks are U.S. bank equity. I randomly deleted some of them to make the list shorter for test purpose. I plan to select stocks in traditional industries such as energy, retails, manufactory and bank. The reason is the companies in the traditional industries are not that distinguishable, thus they are likely to have a stable high correlation.
4. The strategy first use 3-month history data to select pairs, and then use a rolling window to conduct correlation and cointegration test very month.
I will write the 3-month warmup period into Initialize step, and try to use a lower resolution data. Hopefully we can have more stocks so that we can trade at a higher frequency. I will also update it here.
Again, thank you for your feedbacks!