Algorithmic trading adds noise to the markets we have known. So why not add some noise to your historic market data? This way you can check if your algorithmic trading strategies are fit for the future. Learn how to generate noisy data and how to test your strategies for stability in a noisy market.
In this article I will discuss a simple algorithmic stock picking approach based on momentum and volatility. The goal will be to generate excess returns versus a capital weighted stock basket. Continue reading
Implied volatility data is key in options trading. This article shows how to access free volatility data in the Tradesignal software suite. Continue reading
Ever since John Bollinger introduced his Bollinger Bands in the early 1980s the bands have been a favourite indicator to all technical trades. This article is about the prediction capabilities of Bollinger bands. Continue reading
I have been in search for a signal I could use for a short vertical spread or naked short option strategy. So my main concern has been to find a level, which will most probably not be penetrated over the next few bars.
This is what I came up with. Continue reading
The 200 day average is considered as a key indicator in everyday technical analysis. It tells us if markets are bullish or bearish. But can this claim be proved statistically, or is it just an urban legend handed down from one generation of technical analysts to the next? Let’s find out and demystify the 200 day moving average. Continue reading
The CBOE volatility index VIX measures the market’s expectation of future volatility. This article will show you some key statistics of VIX and help you to decide if it is better to buy or to sell volatility.
Statistics of VIX
The spikes to the top and the long phases of relatively low volatility are reflected in a left-leaning distribution diagram and a long tail towards the higher levels. The median value is 17%, meaning 50% of the prices are above (below) this level.
The next chart shows the distribution of returns over 25 trading days. The median price movement being slightly shifted to the negative area shows the mean reverting characteristics of volatility.
Buy or sell volatility?
Analysing the level of VIX and the returns afterwards yields an even more interesting picture:
The green line gives the 25 bar percentage returns of VIX, with VIX noting above 25, the red line gives the returns with VIX below 15. Observe the median of the two lines:
The median 25 bar return with VIX above 25 (green) is around -15%, only 20% of the returns are positive when VIX is currently above 25. Sell volatility.
The median returns with VIX currently below 15 (red) is above 0% and with a fat tail to positive returns. Buy volatility. (data from 2004-2018)
Adverse movement of VIX
The above chart suggests that going short on volatility, if VIX is above 25, seems to be a good idea. But it is not without risk. The chart below shows what can go wrong during the next 25 days. The distribution diagram gives the maximum adverse movement of the VIX, with VIX currently trading above 25.
The green line, VIX currently above 25, shows a +10% median maximum up movement over the next 25 days. So do not expect a short vola position to be without risk. Some adverse movement has to be expected.
On the other side, the distribution of the maximum loss of the VIX during a 25 day period shows a median of below -20%. This represents the profit potential of a short volatility position.
Conclusion of VIX statistics:
If you plan to short volatility wait until VIX is trading above 25. If you want to buy volatility, do so if VIX is trading below 15.
I always thought that inspiration and experience are key factors in trading. But every time my chess computer beats me without any inspiration, just by brute force, I get my doubts. This article will be about a brute force approach in trading. The kNN algorithm.
Rule based trading
Rule based trading – algorithmic trading, is just a name for a set of if..then rules which will define the machines trading decisions. e.g. if the market crosses below the 200 day line, then short 100 contracts. If the market rises by 2% then exit the position. Easy stuff like this… (for the beginning)
This article will be a short introduction to machine learning. I will use a classic algorithm of machine learning to let my computer find a prediction for tomorrows market move. In the meantime I’ll have a glass of wine with some friends and let the machine do the job; At least that’s the idea, but can it be that simple in real life trading?
Unsupervised machine learning – kNN algorithm
The kNN algorithm is one of the most simple machine learning algorithms. Learning, in this case, is only a nice sounding label, in reality kNN is more of a classification algorithm.
This is how it woks:
The scatter chart above is a visualisation of a two dimensional kNN data set. For this article I used a classical indicators of technical analysis to do the prediction: a long-term and a short-term RSI indicator. The dots on the two dimensional scatter chart represent the historic RSI values at a given point of time.
Now have a look at the fat circled point. This point represents today’s value. It means, that today’s RSI1 has a value of 63, and RSI2 got a value of 70.
Additionally to the position on the chart the dots have got colours. A green dot means that the market moved up on the following day, a red dot shows a falling market on the day after.
We already know what has happened in history, so it is easy to colour the historic dots. But we do not know the colour of today’s dot, as it is not known where tomorrow’s market will end.
Based on the chart above, will it be a red or green dot? Will tomorrow be up or down? Should I go long or should I go short?
kNN – k nearest neighbours
To do a prediction of tomorrow’s market move, the kNN algorithm uses the historic data shown on the scatter plot above and finds the k-nearest neighbours of today’s RSI values. As you can see, our current fat point is surrounded by red dots. This means, that every time the two RSI values have been in this area, the market fell on the day after. That’s why today’s data point is classified as red. Wish it would be that easy all the times…
Call it classification or prediction, the two dimensional kNN algorithm just has a look on what has happened in the past when the two indicators had a similar level. It then looks at the k nearest neighbours, sees their state and thus classifies today point.
kNN as Tradesignal Equilla Code
To implement the algorithm in Tradesignal we first have to do the shown scatter plot. The algorithm stores the values in an array.
8/9 calculates the value of the fast and slow RSI indicators
12/13 looks what will happen on the day after (for the training data set)
16/17/18 stores everything in an array.
The next task to complete is to calculate the distances of today’s RSI point to all the historic points in the training data set.
23/27 calculates the euclidean distance of today’s point to all historic points, line 29 then creates a sorted list of all these distances to find the k nearest historic data points in the training data set.
Nearly done. The next step is just to find out what classification (colour) the nearest points have got and use this information to create a prediction for tomorrow. This is done in lines 33 to 35
Have a look at the scatter chart at the beginning. If this would be the data stored in our training data set, the prediction, using the 5 nearest neighbours, would be -5. All the 5 nearest neighbours of our current data point are red.
Now that we got a prediction for tomorrow, we need to make use of this prediction and trade it. The returns then will show if everything works as predicted.
Over here I just do a simple long/short interpretation of the prediction, but of course you could also use the quality of the prediction (+5 or +1?) in some sort of way. Position sizing…?
kNN algorithm performance
The next chart shows 2000 bars of daily Brent data. It uses a 14 and 28 day RSI to predict the next day’s move in the Brent oil market. The training was on the first half of the data set, and the 5 nearest neighbours did the classification.
Underneath the chart the returns of this test are shown. (strategy equity). On the bottom of the char you see the two RSI indicators used for the generation of the prediction / buy-sell command.
kNN algorithm – conclusion
The kNN algorithm offers a framework to test all kind of indicators easily to see if they have got any predictive value. Judging on the shown graph it seems to work. It seems to be possible to use these two RSI indicators to predict tomorrow’s Brent move.
But unfortunately this also could be just completely useless curve fitting. It is you who has to select the indicators and their periods and you will have to define if you like the outcome of a selected parameter set. To many degrees of freedom to be sure. The kNN algorithm is useful, but its application in finance has to be treated carefully. Otherwise bad surprises are guaranteed
Not everything can be done by brute force, inspiration and experience are key factors in finance…
When ranking a market analysts usually pick the percent performance since a given date as their key figure. If a stock has been at 100 last year and trades at 150 today, percent performance would show you a 50% gain (A). If another stock would only give a 30% gain (B), most people now would draw the conclusion that stock A would have been the better investment. But does this reflect reality?
Percent Performance and Volatility
In reality and as a trader I would never just buy and hold my position, I would always adjust my position size somehow related to the risk in it. I like instruments that rise smoothly, not the roller coaster ones which will only ruin my nerves. So ranking a market solely by percent performance is an useless statistic for me.
Lets continue with our example from above: if stock A, the one who made 50% has had a 10% volatility, and stock B, the 30% gainer, only had a 5% volatility, I surely would like to see stock B on top of my ranking list, and not the high vola but also high gain stock A.
Risking the same amount of money would have given me a bigger win with stock B.
Combining Performance and Volatility
To get stock B up in my ranking list I will have to combine the absolute gain with the market volatility in between. This can be done quite simple. Just add up the daily changes of the stock, normalized by market volatility.Have a look at the formula of this new indicator:
index(today)=index(yesterday)+(price(today)-price(yesterday))/(1.95*stdev(price(yesterday)-price(2 days ago),21))
In plain English: Today’s Vola Return Index equals yesterdays Vola Return Index plus the daily gain normalized by volatility
So if the index has been at 100, the volatility (as a 95% confidence interval over 21 days) is 1 and the stock made 2 points since yesterday, then today’s index would be 100 + 2/1 = 3
Vola Return Index vs. Percent Return Index
Lets have a look at a sample chart to compare the 2 ranking methods. I therefore picked the J.P.Morgan stock.
The upper indicator shows you a percent gain index. It sums up the daily percent gains of the stock movement, basically giving you an impression what you would have won when you would have kept your invested money constant.
The indicator on the bottom is the Vola Return Index. It represents your wins if you would have kept the risk invested into the stock constant. (=e.g. always invest 100$ on the 21 day 95%confidence interval of the daily returns)
Have a closer look at the differences of these two indicators up to October 2016. JPM is slightly up, and that`s why the percent change index is also in the positive area. During the same time the Vola Return Index just fluctuates around the zero line, as the volatility of JPM picked up during this period of time. To keep your risk invested constant over this period of time you would have downsized your position when JPMs volatility picked up, usually during a draw down. No good.
The same can be observed on the upper chart, showing the last months movements of the index. Right now, after the recent correction the percent change index is, like the JPM stock, up again. On the other side the Vola Return Index is still down, due to the rising volatility in JPM.
Vola Return Index – Ranking
Lets put this to a test and rank the 30 Dow Jones industrial stocks according to the percent return index and using my Vola Return Index as a comparison, calculated since 01/01/2015.
The first three stocks are the same, they got the highest vola and highest percent return. But JPM and Visa would get a different sorting. Just see how low the JPM Vola Index is, it would not be the 4th best stock.
Percent returns says JPM and Visa are abou the same, only the Vola Return Index shows that VISA would have been the better investment vehicle compared to JPM. But see for yourself on the chart…
Make sure your indicators show what you actually can do on the market. There is no use in just showing the percent gains of a stock if you trade some kind of VAR adjusted trading style.
Keeping you risk under control is one of the most important things in trading, and using the Vola Return Index instead of just plotting the percent performance can give you some key insights and keep you away from bad investment vehicles. Also have a look at this stock picking portfolio based on similar ideas.
Tradesignal Equilla Code for Vola Return Index:
Ein jeder kennt die klassischen Indikatoren wie RSI oder Stochastic. Und ein jeder kennt die dazugehörigen Handelsanweisungen: Long, wenn überverkauft, Short wenn überkauft. Und zumindest im Lehrbuch funktioniert das auch. Aber wie sieht das ganze am realen Chart aus? Würden Sie dem Lehrbuch vertrauen und Ihren Kunden auch einen baldigen Kauf empfehlen wenn der RSI unter 20 liegt?
Testen anstatt zu studieren
Schön, wenn ein Indikator im Lehrbuch funktioniert, doch will ich hier ein Verfahren darstellen, bei dem der Indikator selbst angibt ob, wann und wie gut er funktioniert! Dazu habe ich mir für diesen Beitrag den RSI Indikator vorgenommen.
Zunächst wird der Wert des Indikators betrachtet, sowie, ob er steigt oder fällt. Mit diesen beiden Kriterien lässt sich der RSI einfach klassifizieren.
Dann erfolgt der eigentliche Backtest: Innerhalb der letzten 1000 Bars wird nun geschaut, wie sich der Markt bei einem gleichen Indikatorstand (zwischen 90 und 100) und Richtung (über Triggerlinie) verhalten hat.
Am Bild kam dies innerhalb der letzten 100 bars 36 mal vor. Dabei war die durchschnittliche Bewegung innerhalb der darauffolgenden 5 min DAX Futures Kerze -0.03%. Der RSI hat beim aktuellen Stand also eine negative Kurs Prognose.
Dass es auch nach dem nächsten bar statistisch nach unten geht, sieht man an den 5 Prognose Punkten am Chart. Sie zeigen, wie sich der Markt statistisch innerhalb der nächsten 5 Bars verhalten hat, unter der Bedingung, dass der RSI den aktuellen Stand und Richtung hatte.
Markt Performance als Indikator
Der obige Screenshot zeigt den Indikator und die Prognose für den kommenden bar (sowie die 4 darauf folgenden). Er zeigt jedoch nicht, wie sich diese Prognosen in der Vergangenheit verhalten haben, in welchen Bereichen der Indikator in der Vergangenheit seine höchste Aussagekraft hatte. Dies ist am nächsten Chart dargestellt.
Am Bild ist unter dem eigentlichen RSI seine aktuelle prognose für den nächsten Bar dargestellt. Um diese prognose ist ein Bollingerband gelegt, um so die Bereiche zu definieren, an welchen der RSI seine höchste Aussagekraft hat (= die stärkste Bewegung vorhersagt)
Der VIX Index als Panikindikator
Der VIX Index stellt die implizite Volatität der S&P500 Aktienoptionen dar. Damit ist er ein sehr gutes Mass für das aktuelle Paniklevel des Marktes. Und Sie kennen sicher die Börsenweisheit “Kaufe, wenn die Kanonen donnern”. Diese beiden Dinge werden die Ausgangsbasis des hier vorgestellten Handelssystems für den S&P500 Index sein.
Sehen Sie sich zunächst den VIX und den S&P500 Index an.
Schnell erkennt man, wie der VIX die Panik des S&P darstellt. In Phasen in denen alle glauben dass alles ist in Ordnung ist, ist das Paniklevel niedrig. 2003-1006, ab 2012 bis heute. In Zeiten in denen alle an das Ende von Allem glauben, ist der VIX hoch. 2001, 2008, 2011…
Der VIX Index als Timing Indikator
Sieht man sich dies mit weniger Kompression an, sieht man, wie sich der VIX zum timing von Kaufentscheidungen im S&P500 nutzen lässt.
Ich habe hierzu das in der traders tool box veröffentlichte multiple timeframe Bollingerband auf den VIX angewandt. Es stellt ein 20-Perioden Bollingeband mit 2 Standardabweichungen auf täglichen und wöchentlichen Daten berechnet dar. An den markierten Tagen liegt nun der Close des VIX über den täglichen und wöchentlichen Bollingerband. Wie man schnell sieht, scheinen dies gute Einstiegspunkte zu sein. Kaufe, wenn die Kanonen donnern und alle die Panik haben…
Nicht in das fallende Messer zu greifen ist jedoch ebenfalls eine nicht zu vernachlässigende Börsenweisheit, und so kauft das System nicht sofort, wenn der VIX über den Bollingerbändern liegt, sondern wartet noch, bis auch der S&P500 über das gestrige Hoch steigt.