In today’s article, I will show you, step by step, how effective work with Market Internals can lead to drawdown reduction by up to 70%, taking just seven minutes of work (on a regular PC – using a laptop would take a little more time). So, let’s get to it.
In this example, we will work with an extremely simple idea, which is to buy EMD.D (15-minute chart), when the first bar closes above yesterday’s close (i.e. breakout at 8:45 Exchange time or rather at 15:45 local time for me in Spain).
This simple idea doesn’t look bad at all; it seems like it has a decent potential – although there is still a long way to go in order to reach a completed, successful system.
There is definitely a need to decrease the number of trades, filter out “the bad ones”, increase average profit per trade and, what is most important, to substantially reduce the drawdown. It isn’t even important to present complete statistics – the first look at equity already shows what we are talking about. And how do we accomplish such an improvement? That is exactly the task for Market Internals!
First of all, I have put the above code in my Market Internals smart code and I have prepared a special chart/workspace for such purpose.
This MI smart code contains a few of my own MI conditions (it took me 6 months to put all of them together) and now I let TradeStation run all these conditions and let it find the one that is the most suitable one. To avoid the danger of over-optimization right from the beginning, we need to apply this process on 70% of In-Sample data and we keep the remaining 30% as Out-Of-Sample data.
Now we run optimization, which will take around 2 minutes on an average PC (around 6 minutes on a laptop).
As soon as optimization finishes, I arrange the In-Sample data by using the fitness function. In this case, it was a TS Index.
Now it is time to choose only one from the TOP solutions. Most of the time there is more than one usable solution. One that we can find roughly in the top 5-10 of the best outcomes (this isn’t a classical optimization of systems, but moreso a search for the most suitable switches – i.e. Market Internals conditions – there is quite a lot of these conditions in smart code, therefore more than one can work really well). In this case, the solution I like the most this time came up in row number two. Therefore I will choose this solution and I have a look at the In-Sample data.
The outcome looks great, so I will verify it in the Out-Of-Sample data.
Everything looks fine here as well, so I’ll quickly check the overall equity.
A look at the overall equity tells me that OOS isn’t much too different from IS. This means that everything is perfectly fine. Of course, I could carry out some more robustness testing, etc. – but that is up to each and every trader individually.
The whole procedure took me less than 7 minutes – and I am done.
Below are the results AFTER I applied the MI condition.
Drawdown improved by 69%, NP/DD ratio improved 120%, AVG Trade improvement was 65% – what else can you wish for after just 7 minutes of work?
This is just another demonstration of the application and power of Market Internals.