Bitcoin is the world’s most valuable cryptocurrency, introduced by Satoshi Nakamoto (2008) and whose network of nodes was started in 2009. It is enabled by the blockchain technology and allows for peer-to-peer transactions secured by cryptography. Currently, with a market capitalization at around $849.03B (September 2021) and priced at $45,000.00, Bitcoin represents about 66% of the cryptocurrency market, although it is 26.84% below the all time high of $65,000.00 that was reached in May 2021. Needless to say 2021 has been a big year for cryptocurrency. Hence, forecasting Bitcoin price has great implications both for investors and traders.
However, due to not only Bitcoin’s highly risky and speculative nature but also the fact that the digital currency industry is so young and largely untested, there is very few proven models, theories and strategies in place to help assess where things have been and where they’re going (Reiff, 2021). There are many algorithms like RNN LSTM, ARIMA, and linear regression such as Support Vector Regression (SVR), Support Vector Machines (SVM), Random Forest (RF), etc. that can be used for the task of prediction. In this project, we will only focus on Facebook Prophet.
Facebook Prophet is a procedure for forecasting time-series data based on an additive model where non-linear trends are fit with yearly, weekly and daily seasonality. Prophet is robust to missing data and shifts in the trend, and typically handles outliers well.
Why Facebook Prophet? It is because of the speculative nature of cryptocurrencies. Cryptocurrencies like Bitcoin do not have seasonalities, but they’re highly speculative and volatile. Because of this, most algorithms cannot correctly predict the future prices of Bitcoin. Facebook Prophet and LSTM (Long Short Term Memory) are the only recommended algorithms for such scenarios. We are using Facebook Prophet over LSTM because Facebook Prophet not only gives us the predicted value
, but also gives us the upper limit
and the lower limit
of prediction, which might be very beneficial for investors to know. Instead of having one predicted value or one parameter to play with, now you have three. It is highly beneficial for day traders if they know the upper limit and the lower limit, which means:
- If the price drops below the lower limit, there’s a really good chance that the price will come up, which makes it optimal for buying.
- If the price crosses the upper limit, there’s a really good chance that the price will fall, which makes is optimal for selling.
Considering the highly speculative nature of cryptocurrencies like Bitcoin, The Facebook Prophet is highly beneficial to make predictions compared to other traditional algorithms that just gives us one price point as the predicted value.
There are other advantages of Facebook Prophet as well:
- It is very simple.
- It is accurate, fast and reliable.
- It isn’t as complex as LSTM or Arima.
- It doesn’t need highly sophisticated data processing. Facebook Prophet really works well with missing data and outliers.
- Facebook company itself uses Prophet for internal forecasting and prediction.
- It also has an option for Domain knowledge integration i.e. you can use human-interpretable parameters to improve your forecast by adding your domain knowledge.
In this work, we will approach the forecast of daily closing price series of the Bitcoin cryptocurrency using data on prices of prior years (January 2016 to August 2020).
This file contains the historical data are Bitcoin from January 2016 to August 2020.
We will use Facebook Prophet to make prediction for the following 30 days (September 2020).
As you can see, we have only two columns Date
and Close
. Our date ranges from 1/1/2016
and ends on 8/31/2020.
In the financial world, we have 4 kinds of Price
commonly known as OHLC prices: open price
, high price
, low price
, and close price
. Among them, close price
is the most accurate representation of the price on that day.
RangeIndex: 1705 entries, 0 to 1704
Data columns (total 2 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Date 1705 non-null object
1 Close 1705 non-null float64
dtypes: float64(1), object(1)
We have 1705 rows and 2 columns.
Facebook Prophet requires that the price needs to be in float
and our data is in correct format. Let’s check out some other statistics:
As seen above, from January 2016 to August 2020, the minimum price of Bitcoin is $357 while the maximum prices $19,650. We need to remember that this was the close price
and the highest price of Bitcoin was actually over $20,000. The mean value our Bitcoin was around $5400 and the median was around $6000.
Let’s visualize our data:
- "
- 000
- 11
- 2016
- 2020
- algorithms
- All
- among
- around
- AUGUST
- Bitcoin
- Bitcoin Price
- Bitcoin price prediction
- blockchain
- blockchain technology
- Buying
- Column
- company
- cryptocurrencies
- cryptocurrency
- cryptocurrency market
- cryptography
- Currency
- data
- data processing
- day
- digital
- digital currency
- ends
- FAST
- financial
- fit
- Focus
- follow
- For Investors
- format
- future
- GitHub
- good
- great
- GV
- High
- hr
- HTTPS
- industry
- integration
- Investors
- IT
- July
- knowledge
- Long
- Machines
- Market
- medium
- model
- network
- nodes
- Option
- Other
- prediction
- Predictions
- price
- Price Prediction
- project
- Series
- Short
- Simple
- So
- started
- statistics
- Technology
- time
- Traders
- Transactions
- Trends
- us
- value
- W
- weekly
- Work
- works
- world
- year
- years