AlaGrine / Forecasting_Bitcoin_Price_Series

Time series forecasting with classical approaches (ARIMA and exponential smoothing) and artificial neural networks with Tensorflow.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Forecasting Bitcoin closing price series

Time series forecasting

Table of Contents

  1. Project Overview
  2. Installation
  3. File Descriptions
  4. Approaches to Bitcoin price forecasting
  5. Results
  6. Acknowledgements

Project Overview

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.

Installation

This project requires Python 3 and the following Python libraries installed:

yfinance, pandas, numpy, tensorflow , pmdarima, statsmodel, matplotlib, plotly

File Descriptions

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).

Approaches to Bitcoin price forecasting

I built the following models:

  1. Baseline: Naive Bayes.
  2. Simple Moving average (SMA).
  3. Exponontiel Smoothing: SES and Holt.
  4. ARIMA model with pmdarima.
  5. Deep learning models with Tensorflow: Dense, LSTM, GRU and Conv1D.

Results

I wrote a blog post about this project. You can find it here.

Acknowledgements

Must give credit to yfinance for the dataset.

About

Time series forecasting with classical approaches (ARIMA and exponential smoothing) and artificial neural networks with Tensorflow.


Languages

Language:Jupyter Notebook 100.0%