My Bitcoin Price Model Part II

My Bitcoin Price Model Part II

For those who follow me on twitter know that my bitcoin price model v1.1 that I presented on this blog last September 2019 has been invalidated by the recent low of March 13 at $3850.  I use 95% confidence level bands around my model forecast and that day the lower confidence level has been violated thus invalidating my model.
Since that day I have at various times pondered how to improve my old model and I recycled an idea that came to my mind last year when I presented the first model.
This idea is not to use the time factor to calculate the price of bitcoin but instead use the number of existing bitcoins that as you know grows over time and halves about every 4 years (until now it happened in 2012,2016 and 2020).
In doing so I discovered that there is a fairly strong linear relationship between the logarithm of the bitcoin price and the number of existing bitcoins at that particular moment.

All the important bitcoin bottoms are inside the 95% confidence bands (dotted lines)

With the software i use isn’t complicated to find a formula that approximate all the selected bitcoin bottoms.
This is the dataset used to compute the model:

Date Low Bitcoin Supply
2010/07/17 $0.05 3436900
2010/10/08 $0.06 4205200
2010/12/07 $0.17 4812650
2011/04/04 $0.56 5835300
2011/11/23 $1.99 7686200
2012/06/02 $5.21 9135150
2013/01/08 $13.20 10643750
2015/08/26 $198.19 14536950
2015/09/22 $224.08 14637300
2016/04/17 $414.61 15439525
2016/05/25 $444.63 15582350
2016/10/23 $650.32 15943563
2017/03/25 $889.08 16235100
2019/02/08 $3,350.49 17525700
2018/12/15 $3,124.00 17423175
2019/03/25 $3,855.21 17608213
2020/03/13 $3,850.00 18270000

The Formula is a very simple one, a first order price regression  between log(Low) and Bitcoin supply:

Where:
FPL = expected line where bitcoin is fairly priced
intercept = a costant
c1 = another coefficient that defines the slope of the Bitcoin supply input.

Here’s the resulting model after computing the parameters of the above formula.

This is the new bitcoin price model “FPL Line” v1.3 applied to a monthly bitcoin/usd chart:

Next Step: Computing the formula for the TopLine

The formula for computing the Top is:

 

My Bitcoin Price Model Part II


Where:
TopLine= is the forecasted price where the next long term top might be.
intercept = a costant
c1 = another coefficient that defines at which pow the bitcoin supply is elevated

This formula is different from the one used to compute the FPL or bottom line. I’ve seen that there is not a strong linear relationship betweel the logarithm of important Bitcoin Tops and the Bitcoin supply, so i decided to switch to the formula used for the old model and it works better.

This is the dataset used to compute the model:

Date Price Bitcoin Supply
2010/07/17  $      0.05 3436900
2011/06/08  $      31.91 6471200
2013/11/30  $      1,163.00 12058375
2013/12/04  $      1,153.27 12076500
2017/12/19  $    19,245.59 16750613

Here’s the resulting model after computing the parameters of the above formula.

This is the new bitcoin price model “Top Line” v1.3 applied to a monthly bitcoin/usd chart:

95% Confidence Error Bands

With the indicator that i give you for TradingView i included also the error bands.
This are the error bands for the TopLine:

And for the bottom line or FPL (FairPriceLine)
My Bitcoin Price Model Part IIMy Bitcoin Price Model Part II
It is quite obvious that with fewer points available the error bands for the TopLine are wider and less accurate compared to the FPL error bands where I have more points (17 instead of 5).

TradingView Indicator

I have also included an indicator for TradingView to give you the opportunity to experience the concepts and model illustrated in this update. You can also check the code and/or modify it as you like.

On April 10th, 2020 tradingview staff decided to censor my indicator and threatened to close my account, because of this i publish here the code so you can create your own indicator by yourself.

Bitcoin Model v1.3 Sourcecode:

Code is also available at pastebin

Remember to add a “TAB” key once before stock (line 10 and 13), in the process of copying and pasting data back and forth from tradingview the tab key is gone probably because there is not a tab code in HTML.

//@version=2

study(“Bitcoin Price Model v1.3”, overlay=true)

//stock = security(stock, period, close)
stock = security(“QUANDL:BCHAIN/TOTBC”,’M’, close)

if(isweekly)
//insert “TAB” key before stock
stock = security(“QUANDL:BCHAIN/TOTBC”,’W’, close)
if(isdaily)
//insert “TAB” key before stock
stock = security(“QUANDL:BCHAIN/TOTBC”,’D’, close)

FairPriceLine = exp(-5.48389898381523+stock*0.000000759937156985051)

FairPriceLineLoConfLimit = exp(-5.86270418884089+stock*0.000000759937156985051)
FairPriceLineUpConfLimit = exp(-5.10509377878956+stock*0.000000759937156985051)

FairPriceLineLoConfLimit1 = exp(-5.66669176679684+stock*0.000000759937156985051)
FairPriceLineUpConfLimit1 = exp(-5.30110620083361+stock*0.000000759937156985051)

plot(FairPriceLine, color=gray, title=”FairPriceLine”, linewidth=4)

show_FPLErrorBands = input(true, type=bool, title = “Show Fair Price Line Error Bands 95% Confidence 2St.Dev.”)
plot(show_FPLErrorBands ? FairPriceLineLoConfLimit : na, color=gray, title=”FairPriceLine Lower Limit”, linewidth=2)
plot(show_FPLErrorBands ? FairPriceLineUpConfLimit : na, color=gray, title=”FairPriceLine Upper Limit”, linewidth=2)

show_FPLErrorBands1 = input(false, type=bool, title = “Show Fair Price Line Error Bands 68% Confidence 1St.Dev.”)
plot(show_FPLErrorBands1 ? FairPriceLineLoConfLimit1 : na, color=gray, title=”FairPriceLine Lower Limit”, linewidth=1)
plot(show_FPLErrorBands1 ? FairPriceLineUpConfLimit1 : na, color=gray, title=”FairPriceLine Upper Limit”, linewidth=1)

TopPriceLine = exp(-30.1874869318185+pow(stock,0.221847047326554))
TopPriceLineLoConfLimit = exp(-30.780909776998+pow(stock,0.220955789986605))
TopPriceLineUpConfLimit = exp(-29.5940640866389+pow(stock,0.222738304666504))

TopPriceLineLoConfLimit1 = exp(-30.3683801339907+pow(stock,0.221575365176983))
TopPriceLineUpConfLimit1 = exp(-30.0065937296462+pow(stock,0.222118729476125))

plot(TopPriceLine, color=white, title=”TopPriceLine”, linewidth=2)

show_TOPErrorBands = input(false, type=bool, title = “Show Top Price Line Error Bands 95% Confidence 1St.Dev.”)
plot(show_TOPErrorBands ? TopPriceLineLoConfLimit : na, color=white, title=”TopPriceLine Lower Limit”, linewidth=1)
plot(show_TOPErrorBands ? TopPriceLineUpConfLimit : na, color=white, title=”TopPriceLine Upper Limit”, linewidth=1)

show_TOPErrorBands1 = input(false, type=bool, title = “Show Top Price Line Error Bands 68% Confidence 1St.Dev.”)
plot(show_TOPErrorBands1 ? TopPriceLineLoConfLimit1 : na, color=white, title=”TopPriceLine Lower Limit”, linewidth=1)
plot(show_TOPErrorBands1 ? TopPriceLineUpConfLimit1 : na, color=white, title=”TopPriceLine Upper Limit”, linewidth=1)

Forecast up to 2032

Bitcoin Model 1.3

This is a forecast up to 2032 halving, price will saturate between 27,000$ and 130,000$ with a maximum possible peak at 450,000$ in case of a strong bubble.

Conclusions

This model is clearly experimental, we will see in the future how it will behave. It is probably questionable my choice to use the existing bitcoin supply instead of using time as a main input for the model, I’m curious to know your opinion about it. Thank you.

 

Leave a Reply

Your email address will not be published. Required fields are marked *

Pin It on Pinterest