[ca] En aquest treball ens aproparem al món de la inversió, implementant algoritmes per fer trading amb criptomonedes. El trading consisteix en la compravenda estratègica d'un actiu, en aquest cas una criptomoneda, amb l'objectiu de guanyar diners. La motivació principal del projecte és automatitzar aquesta tasca. Per tal d'aconseguir-ho, desenvolupem robots de trading, que són executables que reben actualitzacions del preu cada pocs segons i han de comprar o vendre automàticament mirant de generar beneficis. Els robots plantejats pel projecte generen un senyal de trading que pren valors del conjunt [0,1,-1] on cadascun dels símbols correspon a una acció: 0 vol dir no fer res, 1 vol dir comprar i -1 vol dir vendre. Un bon senyal guanyarà diners i un senyal dolent perdrà diners. Al treball s'estudien diverses aproximacions a aquest problema. Mirem de valorar la idoneïtat de cada mètode a priori, i prenem la decisió de si fer-los servir o no per la implementació final dels robots. Un dels mètodes considerats es basa en fer prediccions del preu amb un model de regressió. Determinem fins a quin punt el preu d'una criptomoneda té autocorrelació lineal i generem models per tal d'avaluar-ne l'efectivitat. També estudiem un mètode basat en crear el senyal amb un model de classificació. En aquest apartat mirem de categoritzar les dades del preu en moments de compra, venda o neutralitat. L'últim mètode que estudiem es basa en indicadors tècnics, que són càlculs derivats del preu, i que poden ajudar a detectar oportunitats de compravenda. Cada estratègia és tunejada i testejada amb dades històriques. És el que anomenem backtesting. Per últim, prenem una decisió formada de quin mètode utilitzar i portem a terme la implementació final dels robots. Descrivim el test final al cloud i en temps real, per a posar a prova el seu funcionament.

[en] In this project, we get into the world of investment by implementing algorithms for trading with cryptocurrencies. Trading consists of the strategic buying and selling of an asset, in this case a cryptocurrency, with the aim to make money. The main motivation of the project is to automate this task. With this goal in mind, we develop trading robots, which are executables that receive price updates every few seconds and automatically buy or sell trying to generate profits. The robots proposed in this project generate a trading signal from the set [0,1,-1], where each symbol corresponds to a doable action: 0 means do nothing, 1 means buy and -1 means sell. A good signal will make money and a bad signal will lose money. In this project, we analyze several approaches and assess their suitability for generating a good signal, and make the decision of whether to use them or not for the final implementation of the robots. One of the methods consists of predicting the price evolution by means of a regression model. We determine to what extent a cryptocurrency price has linear autocorrelation and generate models to evaluate its effectiveness. The approach of creating the signal with a classification model is also studied. In this case, we try to categorize the price data into buying, selling or neutrality times. The last studied method is based on technical indicators, which are price derived calculations used to detect buying and selling opportunities. Each strategy is tuned and tested with historical data, by simulating how they would have performed in the past. This is what we call backtesting. Finally, we make a well-informed decision on which method to use for the final implementation of the robots. We describe the final test, which is carried out in the cloud and in real-time, to evaluate the functioning of the robots.