The search problem

No matter the type of trading (discretionary, hybrid, systematic), you are essentially searching for an edge. That process of "search" is quite often muddled into some confusing jargon. But what is really happening a lot of the time is that you are just searching.

In the discretionary world, some call these searches "deep dives" — studying and trying to find anomalies that have some statistical advantage in predicting future price movements. In the quantitative/systematic space, you're doing regular "research" — a systematic investigation to establish facts and reach new conclusions.

Having some experience in developing trading algorithms, I have realized that all efforts to develop your own traditional algorithms are futile and inefficient. By traditional, I mean using indicators (SMA, EMA, RSI, MACD, etc.) along with other factors such as price, volume, and fundamental (P/E, P/S, EBIT, etc.) values, and manually developing the logic of the algorithm.

When you develop something that actually works, you feel really smart, and the more time you spend tweaking and enhancing the code, you easily get addicted to the game of getting better results. So, you end up investing a lot of time and effort into a single algorithm, and all of the code and logic need to be maintained over time.

At some point, I learned about StrategyQuant — a tool that could generate strategies automatically. When I started learning StrategyQuant, it kind of clicked for me. It is essentially an automated search tool that uses brute force or genetic algorithms to find profitable strategies combinatorially. It mostly uses traditional indicators and pretty much anything it can tweak. You set up your criteria for pass and quality tests, and off it goes for as long as you want. Using StrategyQuant, I realized that "search" is all I had been doing all the time, even when coding my own strategies. It was much more inefficient, but still pretty much the same thing: trying different ideas, reading papers, and overall being super inefficient.

I have realized that I cannot use the algorithms that StrategyQuant generates (even if they might be profitable), as you are still left at the mercy of your own mistakes and human deficiencies to do the rest. You have a script with a bunch of magic numbers and combinations — essentially a "model" that is trained and tuned for a specific dataset that has the exact same problems and issues as a regular machine learning model, but also inherits many of the deficiencies of a manually programmed trading algorithm. StrategyQuant is not all bad. It gives you a lot of insight into the search and quality testing process, as well as building testing/quality pipelines.

I have now realized that I must unify all of my efforts into a single pipeline for strategies and only focus on ML-based solutions. This is the only solution for automating search — not only for edge but also for all other aspects. You have components like bet size, risk management, trade management, etc. All of these should also be ML-based models. A general principle should be that humans are not smarter. Any logic that has parameters and is possible to tweak and change, and that might be dependent on many other factors, should be seen as an ML problem.

The credo going forward is: "No humans allowed."