Using Z-Scores to Increase Your Holdings and Portfolio Value in Crypto Markets

I've always been interested in cryptocurrency tokens that pay a dividend, especially ones that pay that dividend in the form of another token (think NEO and GAS for example), and so much the better if that dividend token happens to be liquid and almost an entity in itself. I've often thought that given both are inextricably linked, they should be highly correlated, and therefore is there any reward for actively following and trading the spread between the two...so I decided to find out.

I decided to look at NEO vs GAS as NEO is a well established top 30 coin, but I could easily have chosen ONT vs ONG or VET vs VTHO, you get the idea.

Now, as shorting neither NEO or GAS is really an option, this little study is less trading the spread (buying one selling the other), more a case of using the spread to always be long the cheapest leg, and in turn this approach would hopefully increase ones holdings over time.

After a bit of thought I decided to use Z-Scores to decide when the spread was out of line or not, I calculated Z-Scores for both the NEOBTC and GASBTC currency pairs, and then the difference. For those that don't know a Z-Score is a relatively simple mathematical measure that calculates how many Standard Deviations something is from its moving average. As it's expressed as a Standard Deviation, Z-Scores are incredibly useful for comparing apples with apples.

With all this sounding good in theory I then needed to make sure that NEO and GAS were even correlated. So I simply plotted each series Z-Scores using a scatter graph, and as you can see in the chart below, so far so good.

scatter.jpeg

I then charted the difference between the two sets of Z-Scores to try and determine what level I would enter trades.

diff.jpeg

I decided in a very unscientific and slightly arbitrary way that I would use +/- 1.5 Z-Scores as my entry point for each trade. This was simply based on 'eyeing up' the chart in this case, but there are more mathematical approaches you could use. My idea then was to start with 1K NEO at the start of November and using =/- 1.5 Z-Scores as my limit, to trade between NEO and GAS so that I was always holding the cheapest. So starting with a portfolio of 1K NEO I then had to wait until the Z-Score difference hit 1.5, this meant NEO was more expensive than GAS by 1.5 Z-Scores, which in turn suggested that either GAS would rally back in line with NEO, or NEO would come back off, in line with GAS, either way I no longer wanted to be long NEO, I wanted to be long GAS. Having switched my portfolio to GAS, I would then wait for the spread to hit -1.5, where I would sell GAS, buy NEO, as NEO was now undervalued compared to GAS, and this would go on up until the present date (15/04/19).

Using the last 6 months of historical data I calculated each trade, including what GAS I would have earned from simply holding NEO for each period I would have done so, and then plotted the results, which I'll admit surprised me, in a pleasant way.

result.png

The orange line represents the portfolio values, in BTC terms of simply holding 1K NEO since the start of November. As you can see the portfolio begins with a value of 2.5BTC down to a valuation of about 2.2BTC, so a loss in other words. However, the blue line represents the portfolio value using the trading method we've just discussed, essentially always being long the cheapest leg. It finished with a valuation of about 3.2BTC which is 45% higher than if you had just held NEO during that time period, and given that NEO in fact came off in price, to make a near 30% profit on the initial valuation is quite promising.

Although I don't factor in exchange costs here, and assume execution prices that may not have been available in my whole size, I think it's fair to say taking the time to track and trade spreads such as this is probably worth it. It's worth pointing out however, that many of the trades in this study would have been done over night (European time), which presents a bit of a problem. You could use this approach with a number of pairs, and would be able to make more if you were able to convert this thought process in to an algo, and use some machine learning to refine the parameters. Unfortunately however, as Michelangelo once said to Pope Julius II, that's not my profession. GL.