- Project Overview
- Installation
- File Descriptions
- Approaches to Bitcoin price forecasting
- Results
- Acknowledgements
Time series forecasting is one of the most widely used data science techniques in business and finance to make future strategic decisions.
The aim of this project is to forecast the daily closing price series of Bitcoin, a peer-to-peer online currency, using the historical price of Bitcoin.
I followed different approaches to time series forecasting, implementing both statistical techniques and machine learning algorithms.
I used classical approaches to time series forecasting, such as exponential smoothing and ARIMA, and I leveraged Tensorflow to build a variety of artificial neural networks (including linear, CNN and RNN models) with multivariate time series.
This project requires Python 3 and the following Python libraries installed:
yfinance
, pandas
, numpy
, tensorflow
, pmdarima
, statsmodel
, matplotlib
, plotly
The main file of the project is BTC_forecast.ipynb
: the source code.
The project folder also contains the stats
folderwhich contains the evaluation metrics for all models (.CSV files).
I built the following models:
- Baseline: Naive Bayes.
- Simple Moving average (SMA).
- Exponontiel Smoothing: SES and Holt.
- ARIMA model with pmdarima.
- Deep learning models with Tensorflow: Dense, LSTM, GRU and Conv1D.
I wrote a blog post about this project. You can find it here.
Must give credit to yfinance for the dataset.