CryptoAnalytics: Cryptocoins Price Forecasting with Machine Learning Techniques
Pasquale De Rosa, Pascal Felber, Valerio Schiavoni
TL;DR
The paper tackles the challenge of forecasting highly volatile cryptocoins prices by leveraging cross-coin co-movements. It introduces CryptoAnalytics, a Python-based toolkit that integrates state-of-the-art ML models—Gradient Boosting Machines and Recurrent Neural Networks (LSTM/GRU)—to forecast prices using correlated asset data, with a modular data-pull/split/pretrain/forecast workflow and optional correlation analysis. An illustrative end-to-end example demonstrates the workflow on eight coins over three months, achieving $MAPE \\approx 6.57\\%$ and $RMSE \\approx 2438.37$ USD, and discusses production deployment via TorchServe, BentoML, and MLFlow. The work contributes an open-source, production-friendly tool that enables researchers and practitioners to harness co-movement signals for crypto-price forecasting, with potential impact for investors and regulatory bodies.
Abstract
This paper introduces CryptoAnalytics, a software toolkit for cryptocoins price forecasting with machine learning (ML) techniques. Cryptocoins are tradable digital assets exchanged for specific trading prices. While history has shown the extreme volatility of such trading prices, the ability to efficiently model and forecast the time series resulting from the exchange price volatility remains an open research challenge. Good results can been achieved with state-of-the-art ML techniques, including Gradient-Boosting Machines (GBMs) and Recurrent Neural Networks (RNNs). CryptoAnalytics is a software toolkit to easily train these models and make inference on up-to-date cryptocoin trading price data, with facilities to fetch datasets from one of the main leading aggregator websites, i.e., CoinMarketCap, train models and infer the future trends. This software is implemented in Python. It relies on PyTorch for the implementation of RNNs (LSTM and GRU), while for GBMs, it leverages on XgBoost, LightGBM and CatBoost.
