I was part of a team that created similar (but a lot simpler) algorithms over 5 years ago.
15 years ago you could create a algorithm and let it run for years and it still would be profitable.
5 years ago the same algorithm stayed profitable for about a minute. After that "someone" started guessing your actions and cutting your profit, in few minutes your algorithm would only generate losses, while profiting others.
Initially our program traded with options and futures and most strategies were based on correlation of different goods/markets, a bit later on we had a pool of algorithms running in paralel, with constant reevauluation of profitability of each algorithm. In the end the most profitable algorithms were the ones that acted against all logic and should have generated imense losses in "classic" market. It was all about guessing what others will guess what you will do next and acting against it.
The company ended it's operations 3 years ago since it couldn't keep up with time (By then it was all about latency and proximity to ex datacenters).
We did consider building a high-frequnecy trading datacenter next to ex datacenter but the plan was shelved due to uncertanty what our competitors would do. (HF trading is really simple.. you don't need any complicated algorithms... just wait for any buyer to send an order to market, with market price and huge quantity (near or orver current cap for given level) and since ex will take few ms. to allocate the order you can, within that time place 2 smaller orders one for buying at given price and one for selling at next level. If your quantity is 10% or less of the clients quantity and you can act within 1-2ms (incl. latency) there is a good chanse that your order will be prefered over the larger order...)