Learn To STOP Curve Fitting!
Download this free guide on how to stop curve fitting. Following these four simple steps can improve your trading dramatically!
In my 10+ years’ full-time trading career, I have found very few tools and tactics that would get my attention so deeply as Market Internals.
In 2014, I spent about six months in a row with this unique traders tool, exploring its possibilities every single day, searching for new and creative implementation ideas for my own automated trading systems (ATSs). With a real obsession for this concept, I finally found almost 40 new ideas (mostly my own proprietary ideas) on how to squeeze the most out of this great tool, and slowly started implementing many of them into my own trading – with great success.
I truly believe that Market Internals can give a trader a small, unfair advantage – if thoroughly thought out and implemented well, especially in new, creative ways. Therefore, in this article I would like to give you a very brief introduction into the Market Internals world, together with an example of one of my private Market Internals filters – to show you, how dramatic the impact of Market Internals deployment can be – in a favorable way.
We all know how hard it is to find a new, viable trading edge. We are also aware that the scope of our possibilities is quite narrow: It doesn’t really matter what trading indicators or other tools of technical analysis we use – most of the time they all use the same source of data anyway. This data is consist of Open, High, Low and Close values of the bars in our trading chart, and whatever trading indicator we use, we basically use only a slightly different interpretation of the same O-H-L-C values.
So, if we really want to go a step further and implement a broader view for our trading decisions (trading entry/exit conditions), we have to start investigating outside the O-H-L-C values. We can, for example, implement information like Volume or Open Interest to our trading entry/exit conditions, which is not a bad idea at all, and many of my ATSs use O-H-L-C values together with Volume effectively.
However, we can still go a step further.
We can do something that many traders have no idea they can even do: We can start making our trading (entry/exit) decisions based not only on the data coming from the underlying market but also on taking into consideration the market (its overall direction, quality, strength, and overall “mood” ) as a whole!
Wouldn’t it be fantastic to know where the stock market as a whole is heading before we enter a position in our emini S&P strategy?
And that is exactly what Market Internals are about: The ability to read the market as a whole and effectively incorporate this much broader view into our trading decisions.
So what exactly are Market Internals? Where do they come from?
It’s very simple: Market Internals are information about the overall stock market, provided by the stock exchanges (NYSE, AMEX), usually in the form of a standalone data feed.
And this data feed instantly provides us with real-time information about the overall stock market situation.
Using Market Internals we can immediately, in real-time, start receiving information like, for example:
As you can see, there is plenty of information that can be obtained through this standalone data feed about the stock market as a whole (and later on, to be used in our strategies).
All this information can be split into several different categories, and every category has its own meaning and preferred method of implementation. However, because the space for this article is very limited, and the subject of Market Internals could give more than a dozen articles like this, I am going to focus only on one Market Internals category, one of my most favorite, the MI pair UVOL-DVOL.
This category of MI simply consists of two separate data feeds provided from the exchange:
$UVOL monitors the total volume of all rising stocks on the exchange.
$DVOL monitors the total volume of all falling stocks on the exchange.
By using these data feeds (often called MI indicators), we can monitor the volume on one side or the other, so we can get a better idea where the volume is moving to, i.e. which side is stronger. This is, of course, a very powerful view on the market that can provide us lots of important information (if we know how to use it).
From a practical means, we usually add two different data symbols into our chart (data2 and data3) to start using UVOL-DVOL pair for our trading:
Then we can start using these MI indicators as additional, or even leading filters (or as I usually call them – “Super Filters”) for our existing systems – with the goal to improve them significantly.
Let’s have a look at such a condition in practice. I am going to reveal one of my proprietary UVOL-DVOL MI conditions, which I use as a filter for many of my breakout index or stock strategies (MI can only be implemented on indexes or stocks of futures indexes).
To demonstrate the effect that Market Internals can have, I have decided to use the most simple condition that I could think of – a primitive breakout condition high=highest(h,N1). I haven’t done any optimization of the N1 parameter, nor have slippage and commission been included in the results shown below – the purpose of this article is not to present a functional breakout trading system but to demonstrate that Market Internals can be applied to even the most basic systems and get immediate, and very often dramatic improvements. For the N1 parameter, I have used the first number that came to my mind, number 20.
Here is the basic code that I will use to demonstrate the impact of the Market Internals “Super Filter”. The test will be completed on the EMD.D market, 15-minute time frame, from 3/22/2006 – 3/21/2016:
If high = highest(h,20) then buy this bar at close;
Here are the results:
And also the equity curve:
Now let’s move on to the implementation of a very simple Market Internals condition that is based on the following rules:
In a moment, I will show you the outcome of the application of this code to the original system. But first, I need to mention that I have used several small add-ons, like for example, taking into consideration the zero line of the UVOL-DVOL difference to cancel the “Super Filter” in certain situations – all of this is included in the code and the workspace that you can download at the end of this article. Yet the basic idea is exactly as I have described it – to work with the UVOL-DVOL difference and with the moving average of this difference.
Let’s take a look at the results after application of the Market Internals “Super Filter”. First, the performance report:
Now the equity:
And finally the comparison table showing the results before and after the application of the Market Internals “Super Filter”.
|Metric||Before MI||After MI||Improvement|
|Max DD (C-to-C)||12,650||7,790||-36.8%|
|Net Profit / Max DD||6.28||9.76||+55.4%|
I believe that the numbers speak for themselves – maximum drawdown has improved by almost 40% (36.8%), Average trade by +74.8%, and the Net Profit to Maximum DD ratio by +55.4%. All really great improvements, and I see similar improvements of Market Internals very often.
I have been using Market Internals for my own trading since 2014.
Here is what I have generally achieved by implementing them into my own trading strategies:
I was really surprised that Market Internals are used by so few traders, yet when I present them the Market Internals possibilities, they usually get quite excited and implement it to their own trading systems with instant positive impact.
This is exactly the reason why I like them and I encourage all traders to investigate them further.
Please visit this link at Better System Trader to download the source code used in this article.
— by Tomas Nesnidal from blog, Better System Trader
Tomas is a European trader and developer, with 10+ years of full-time trading experience. You can download an example of his strategy for FREE on his blog www.SystemsOnTheRoad.com/blog.
Please log in again. The login page will open in a new window. After logging in you can close it and return to this page.