Predicting digital currency price

March 08, 2018 bitcoin

Disclaimer: I'm not an expert in digital currencies neither I'm an expert in Blockchain. My thing is development and software engineering, so don't expect to find here the recipe to get rich.

Is it possible to predict accurately the price of a digital currency? The first idea that comes to my mind is no, but my gut feeling is that in the long-term future they will rise, so buy a stable asset and wait should be a good strategy. Besides the market, there are external factors that may affect the price of criptocurrencies like some political decisions (China prohibits the exchange of crypto currencies), hackers (Bitcoin price drops 10% as hackers exploit Binance’s API keys), scams (Cryptocurrency start-up Confido disappears with $375,000 from an ICO, and nobody can find the founders), etc.

Can we do better than just buy and wait? Nowadays cryptocurrency price is very volatile and unpredictable, it can go from €5000 to over €9000 in less than a month, so there's the risk of losing but also of gaining a lot of money:

Bitcoin price in February 2018

If we check short-time metrics we might be able to make a better prediction and, if we take the right decisions, earn some money.

There are plenty of people with recipes for trading, claiming that they know how to predict accurately using candlesticks or other metrics. But even if they'd right, given that the predictions are short-term, a huge amount of time needs to be spent waiting for the opportunity to buy an asset that is predicted to rise and once it did, sell it before it starts dropping.

First, I don't know who to trust, I don't have experience in economics nor in trading, and second, I don't have time to be monitoring dashboards, buying and selling assets.

The first problem can be addressed by measurements, using metrics to take into account all the different strategies of prediction and defining the best. Besides, since the best prediction may change over time and another strategy can become the best (especially if we have strategies fed by machine learning algorithms), it's good to maintain these metrics over time and change whenever it's appropriate.

The second problem can be automated using some public API (Binance for example). Having rules to freeze the automated process if we're losing money or we're not doing better than the strategy of doing nothing, is important because if the process or the predictions are malfunctioning, we want to stop using them and review what's going on. If this process is repeated several times in a short-term, we will be able to react faster to changes in the environment.

It's not easy to agree on what short-term is in terms of cryptocurrencies, but I'd say that a period from 15 minutes to an hour should be good. This window defines how often are we going to trade and also what's the minimum amount of time that we're going to keep an asset, and if it's too short we might lose our earnings with the commissions.

The problem and its solution seem very similar to a game, where you're in a loop consuming inputs that represent the state and executing actions that will affect the state of the game. Usually, in games there are different players, playing at the same time each one executing its own strategy.

And I want to close with that idea, because that's what I'm designing and what I'll be writing about in future posts as I define and code it.

Profile picture

Written by Gastón Fournier Software Engineer at @getunleash working from Cunit, Tarragona, Spain, where I live with my wife and 2 dogs. Find me on Twitter Github LinkedIn