I am an avid investor, however one of the things that I, and many other investors struggle with is the emotion involved in investing. It is really hard to remove the emotion from investing, ownership often brings unwanted emotions, whether it is the fear of missing out from additional profits, not wanting to sell because you feel the stock will turn around or many, many other potential mistakes.
I wanted to remove these challenges by developing a machine learning approach to stock picking, and then follow the rules that my employer imposes on my trading behaviours (I must hold a stock for a minimum of 7 days, cannot use conditional trades, and cannot use stop losses) .
With these restrictions in mind, I trained an XGBoost classifier to identify whether or not a stock will appreciate by more than 5% in in 7 days. The classifier uses technical analysis, as well as the analysis’ rate of change over a couple of different periods. Surprisingly the model itself has a prediction accuracy of 60-68% which many investors would be ecstatic about.
Week 1 performance -9%
Overall performance over the first week was -9.46% with the below positions closed
- ISX: -9.46%
- LSX: 0%
- SXY: 0%
Where the same stock has been predicted again before the end of the initial hold period, I will continue to hold the stock and the 7 days will reset and I will hold for another 7 days.
I will be tracking the performance of the model every week. Depending on the performance of the model, I may provide a more detailed explanation of the model in another post.