Finance, like many fields, has become an increasingly siloed industry, especially in relation to technology. There are people who understand finance and there are others who can code, but unfortunately there are few who understand both. This is the situation I faced when arriving as a summer analyst at JP Morgan in the summer of 2017.
As the technology department generally lacked a working knowledge of the financial industry, there were many opportunities to integrate the two fields. In an attempt to do this, I set out to develop an algorithm that would utilize cutting edge data science technology to help fully meet the needs of financial analysts. As our division focused primarily on Chinese equity I opted to develop a machine learning algorithm that could outperform the archaic research methods that were in use for this investment class.
Building a hypothesis
I began this project asking several fundamental questions. What do the financial analysts want? What could they have right now that could make there lives easier and their decisions more robust? So I started to talk to people, as many as I could, and as I did, the message became abundantly clear: there was too much information.
When an analyst wants to determine what a market will do in the coming months, he or she can look at hundreds, if not thousands of variables. For an analyst, and their finite brainpower, this is an impossible task.
So to solve this problem, I decided to build a machine learning algorithm that could process all these variables simultaneously, giving the analyst a more simple and digestible way to understand the market. I hypothesized that an algorithm could do this by comparing current economic indicators to past ones in order to predict future movements.
To test this hypothesis, I looked at three key indicators of Chinese economic activity and analyzed points in time when they were strikingly similar, such as in March 2014 and July 2012. The several months following these two points of time had remarkably similar movements in large cap Chinese equity. This is shown in the graphs above, where the black lines denote the time when the market environments were congruous and the blue lines represent movement in Chinese equity before and after that point. With many other similar examples of this being the case, my hypothesis that past market movements could predict future ones seemed feasible.
Launching the idea
Having confirmed my hypothesis, I set out to build an algorithm that could do this on a large scale. After going through multiple iterations, and hearing feedback from both programmers and analysts I landed on an algorithmic design:
This model could pull in factor data, process it by breaking it down into first and second derivatives, aggregate the factor results, search for similar instances, output predictions and then continuously back-test the algorithm to fine tune the predictive strength.
Testing the results
After implementing this architecture through python code, the testing process began. I did this by running my algorithm through a k-fold assessment model, which back-tested my model over multiple time periods. The predictions proved strong, as shown in the example below for 2017:
Over a 20 month testing period this algorithm proved an 85% success rate in predicting Chinese market movements.
When used to decide whether to buy or sell Chinese stocks, this model created significantly more value than the standard buy-and-hold strategy that was used by JP Morgan. The stark contrast in the investment returns over a 5 year period can be shown below:
Due to it’s success, this algorithm is now being utilized by JP Morgan to create value for its clients on a day to day basis.
This example is just one of many in how technology, due to a disconnect between industry experts and software developers, is not being fully utilized. There is a strong need for people in todays workforce who have a firm understanding of both business goals and technology.