About my little Bitcoin price tracker

This web script reads current and historical prices from Bitcoinaverage and presents the prices from some selected points in time.

There's a "semi-logarithmic" timescale of 3 days, 1 week, 1 month (30 days), 6 months, and 1 year. In addition, price from 1 Jan of the current year, this year's high, and this year's low are included.

I've also included the current record high price (commonly referred to as "All time high").

In the data files from Bitcoinaverage, historical days have average, high, and low volume-weighted prices. The prices in the tables are average for each day, except of the highs and lows mentioned above.


Price data accuracy and timeliness is neither implied nor guaranteed.

This service uses a free, rate-limited service from Bitcoinaverage. It can be interrupted or terminated at any time.

The data as presented is based on my understanding of the data feed, and may not confirm with currently accepted models of BTC price data.

Update 2019-05-17 From 2019-03-03, the data in the historical section is not from Bitcoinaverage directly. Instead it is derived from the ticker data that is sampled at regular intervals during the day.

This is because my free API key has expired.

Regression testing has shown that the value for the average price is close to the canonical data, but the values for highs, lows, and averages are not the same.

Current price compared to historical prices

Percentage calculations

The percentage in the table is

percentage = ( current_price - historical_price ) / historical_price * 100

This means that the current price is calculated using the formula

current_price = historical_price * (1 + percentage/100)

Market cap

The number of coins at a certain date is calculated using extrapolated values from a sampling of blocks at a certain timestamp. This is pulled from the Blockexplorer.com API once a day.

Note that this is a naive definition of "market cap" and not really applicable to Bitcoin, as it's not a share in a company. However it's widely used as a sort of benchmark within the community.

Historical prices compared to extrapolated trends

It's often postulated that Bitcoin's underlying price development is exponential (or rather, that it's in the "exponential" phase of a S-shaped saturation curve). To compare this, I calculated a best-fit line approximation against the natural log of the the average historical price, and this calculated price is presented compared to the actual prices.

I've also compared to a linear approximation, using the same methodology but of course using the straight numbers.

I've excluded all data newer than 3 days. The coefficients are updated daily. The values are shown in the headers.

I've used Julian dates to deal with the days, mostly because SQLite has built-in support for the datatype.


Q: why Perl? Why CGI? Are you some kind of Luddite?

A: Yes, it's what I'm most familiar with, and what's available on the server I'm using. I'm more interested in dealing with the actual data analysis, and I'm using tools I know about to deal with it.

Q: I love this page! Do you take Bitcoin donations?

A: Fame and appreciation is payment enough for me.


Questions? Comments? I'm gerikson on Twitter and Reddit.


Code repository at GitHub.