Introduction to Improving Your Stock Trading Systems
Systematic traders have a huge advantage over discretionary traders because the system defines exactly what actions we should take in the markets at all times. We know this because our rules are fully defined and completely objective – we do not require any discretion to make our entry decisions.
While this advantage is huge, there is also a corresponding curse – the constant thought of “How can I make my trading system better?” can lead to endless tinkering, optimization and modifications that can ultimately result in a trader hopelessly curve fitting their trading system to past data and losing money in real time trading.
A single trading system can make you a lot of money, but markets can change and rules can be improved. We need to investigate ideas to improve our systems so we don’t leave too much money on the table, but we need to do it in the right way.
When we come up with a new idea for one of our trading systems we have three choices:
- Add it to the system
- Swap out an existing rule
- Throw away the new idea and leave the system as it is
There are always opportunities to improve our trading systems, but how do we know when adding a new rule will make your system better in real time rather than just curve fit it more to past data? In this article I will share with you a simple model to help you avoid the curve fitting curse and make improving your trading systems much easier.
Why Most Trading System Improvement Attempts Fail
When you create a trading system you need a rule to cover each of the components in the diagram below. If you are missing any one of these components then your trading system is not complete and you will either lose money or leave a lot of money on the table.
Once you have a complete trading system, there is an ongoing process of monitoring, optimization and improvement. After the initial design phase, this is what trips up most systematic traders.
The usual (flawed) approach traders take is to follow the system until something happens that they don’t like (for example a drawdown or a losing trade) then add new rules to the system to avoid that type of market behaviour in future. This is illustrated below.
This approach is flawed because it results in increasing complexity and highly specific trading rules that are designed to eliminate a specific trade or set of conditions. This is the essence of curve fitting and needs to be avoided at all costs. This approach produces amazing looking backtests because the system ends up curve fit to past market conditions. A system refined like this will degrade substantially or lose money in real time trading.
The problem with this approach is that you generally add more of the same types of rules to your trading system with incremental results. If you already have a long term trend filter based on price, then adding a second long term trend filter that uses price in a slightly different way is not going to have a real and dramatic impact on your trading system’s performance. At best all it will do is tweak the results on a small number of trades, and this is just curve fitting to past price movements so we want to avoid this!
Improved Framework For Trading System Improvement
I often say to my students, when we are designing trading systems we are looking for rules that work like a sledgehammer, not like a scalpel. This means we want any new rule in our system to give a big, obvious improvements, not minor tweaks that carve out a small blemish from our backtest.
We need a better process for refining our trading system.
Step 1: The first step is to use a framework that clarifies whether we are adding new information to our trading system or improving something that is already there. If the new rule is based on an input type / timeframe combination that our system does not use then you can add the rule to your system. If the new rule is just another way of using the same input type / timeframe combination then you need to replace the original rule rather than adding to the system.
Step 2: Once you make the change, compare the backtest of your modified system to the original and determine whether the system statistics are significantly improved. Don’t just focus on net profit because a system which trades less often but has a much smoother equity curve is an improvement, even if the backtest makes less money. If the improvement is incremental then discard the idea and brainstorm another one, if it is significant then move to the next step.
Step 3: A new rule must improve the trading system results by making a large number of trades better (or eliminating a large number of bad trades). If the rule improves the system by eliminating just a small number of bad trades then it will probably not hold up in real time trading and should be discarded. If the new rule does impact a significant number of trades then move to the next step.
Step 4: To ensure our new rule is not just curve fit to past data we need to vary any input parameters and ensure the performance is strong and stable over a wide range of parameter values. If the rule improves performance for a narrow band of parameter values then it should be discarded, but if it has a stable impact over a wide range of values then move to the next step.
Step 5: Next we optimize the input parameters and select values that give strong performance and are surrounded by values which perform similarly strongly. Do not just blindly pick the parameter that has the highest next profit in the backtest as this will not hold up in real time trading. Choose a parameter value in the middle of a broad area of stable good performance.
Take the optimized value and validate the system works similarly well on unseen data. Depending on your system you can do this with either an out of sample test or with walk-forward optimization. If the performance holds up on unseen data then chances are you are safe to trade this new modified version of your system.
This whole process is illustrated in the following diagram:
The key to improving your trading systems in a sustainable way is to ensures you don’t just add rules that torture the same data series in slightly different ways to produce incrementally better results. This process helps you achieve that.
All of your trading system rules should be like a sledgehammer rather than a scalpel. We want blunt trading rules that have a big impact on a wide range of trades.
A solid system has ONLY the rules it needs to extract an edge from the market safely. If you remove a rule from your system the deterioration should be significant – this shows that the rule is truly pulling its weight.
About The Author:
Adrian Reid has over 18 years of trading experience and has been a profitable systematic trader for over 15 years. He trades for a living and spent most of 2019 traveling with his wife and two kids and trading from the road. He is the founder and trading coach at Enlightened Stock Trading where for the last 5 years he has been mentoring stock traders globally.
This article first appeared in Your Trading Edge Magazine in the Jan/Feb 2021 edition.