One possible reason that most trading systems fail is that they never had a chance in the first place. You see most retail trading development environments like Tradestation and Ninjatrader predominantly support defining a trading system using only one technique and that technique is basically hand crafting decision trees using structured programming language.
On the other hand, many of the recent advances in machine learning and AI that have enabled computers to do tasks that were previously thought impossible, such as recognizing faces, categorizing objects, and driving cars make use of deep learning.
Please note, I am not stating that it is impossible to build profitable trading systems using the traditional techniques. Most of my systems have been built just that way including the system I’m offering for sale. The real point is that the majority of system developers are led down a narrow path, a restricted set of possibilities, for achieving success. There are biases at work against you. That is unless you become keenly aware of these “availability biases” then you are more likely to be negatively influenced by them.
Traditional trading environments are severely limited when compared to machine learning environments today which support a dozens of machine learning methods such as neural networks, deep learning models, numerous decision tree generation algorithms, support vector, linear regression, etc.
To recap system developers have availability bias toward one technique for developing their trading systems but it gets worse, way worse. These environments have strong availability bias of primarily supporting backtesting of price data. Programming against other types of data such as order flow, order book, sentiment, reports, and news events/reports will require a lot more legwork and grit on the developer.
Finally, there is a distinct lack of powerful robustness and statistical testing. Everyone knows it is easy to create a backtest that looks good.
What about some of the retail environments that support generative techniques? These systems claim to auto-generate working systems for the developer. The reality is that without expert understanding the probability of success with most generative techniques is going to be even worse. A very experienced developer can use such techniques to come up with new ideas but in general they won’t work well unless is already keen to the numerous sorts of problems they are likely to encounter. Even though those environments do offer more robustness testing: the problem is that they primarily tend to try various combinations of indicators involving different lookback lengths. One thing we know is that markets are relatively efficient which means that the longer you go back in history, the less likely that the data will be relevant. As such, it doesn’t make a lot of sense to search for systems that might work by combing random indicators with long lookback periods. In other words, these sorts of environments might open new possibilities to experienced developers but would be especially ill-advised for new developers, who they are often marketed too, and who are least likely to be able to identify and correct the problem systems.
There is one last point on why most systems fail. Most environments can only reliably backtest market order systems, and most systematic tracking services only support market orders (to ensure all subscribers get similar fills). However, in my active discretionary day trading, I always attempt to capture at least one side of the spread. There is rarely a need to market both sides of the trade unless it has failed and one is trying to exit at market. I typically enter at market and exit with a limit order. Think about it, if you exit with a market order then you are stating that you can (1) pick the direction and (2) pick the peak of the move in real-time but not with a limit order. Sometimes exiting with a market order is required but for the majority of time, a limit order exit would be sufficient. Question then, why do most developers/tracking services still insist on exiting with market orders? Again, the only reason I can think is that when you have subscribers then you need to keep everything synchronized. I understand that but it makes it much more difficult to build a day trading system when you willy-nilly give up the spread or have to assume worst-case scenarios.
Now, let me add that if you want to create more of a “market making” system then I suspect you will need to layer in many orders and keep your risk/exposure low. The futures are not suitable products for that style of trading for retailers due to the large contract sizes.
Let’s recap then why most trading systems are setup to fail:
And, we’ll end on a positive note of how one can change up the equation:
The author is passionate about markets. He has developed top ranked futures strategies. His core focus is (1) applying machine learning and developing systematic strategies, and (2) solving the toughest problems of discretionary trading by applying quantitative tools, machine learning, and performance discipline. You can contact the author at firstname.lastname@example.org.
Please log in again. The login page will open in a new tab. After logging in you can close it and return to this page.