Today ( 24th October 2015 ) Aiken, Matt and myself went for a High-Frequency Trading competition. It was sponsored by G-Research. These competitions are a fairly efficient way of hiring the best employees and getting visibility in the market. Plus, it was a fun day.
For context, the Stock Exchange is a place where you have instruments, mostly company shares, and their respective market price. The price is not an intrinsic property of the company, but instead it is obtained as the average value at which the shares are being trated. This is strongly correlated with the company performance, but there are exceptions. As part of the competition, we only had access to pricing data, and no other stock information was provided. There was a mechanism which kept a record of all the transactions and offers in the market, and each participant, representing a trader, could propose to buy/sell instruments. Whenever there is a match, meaning that there is a sell at a lower price than a buy offer, the transaction is made at the first price listed in the exchange. We also had a āBlack Boxā which gave us relatively accurate predictions of future prices for the instruments, but not everyone got the same price. By the end, the participant who makes the most money wins. The entire code was done in C#. G-Research scripted the structure of the program, and then we had to complete specific methods with our own ideas.
We started simple: We take the average of the last transactions, compare it to our black box prediction and decide to buy if or sell if . This confirmed the correctness of the infrastructure, allowing us to then improve our algorithm. We implemented a quadratic approximation of the values for the past few seconds in order to predict in a long-ish term how the stock values will change, and then decide to buy/sell based on whether the degree 2 coefficient in this approximation was positive or negative. When we implemented it we didnāt manage to make it run our algorithm in the given time, so we had to run the simpler idea.
During the live test, all teams seemed to have a similar behavior (they all improved at the same time, had the same spikes and, in general, showed the same trends). Even though some correlation is expected due to the correlation with the current stock prices, usually there are differences in behaviors which we didnāt see. From this I do believe everyone used the same algorithm, which makes it kind of boring.
Still, I wonder how it would be if such a system was set up online where people had all the time in the world to implement their algorithm of choice (Which happens to be the actual real money high-frequency stock exchange market). No doubt that is a lot more fun than this mini version we did. I might pitch in on building this Trading Competition some day.