Creating an index for cryptos is difficult - there are lots of potential ways and you're never going to please everyone - but we've tried to come up with the best methodology possible to give an accurate or best price index for Bitcoin and Ethereum - or any other crypto that trades in multiple places.
Volume - the volumes for our index are aggregated from all exchanges we include in our system. We generally attempt to include any exchange that has sizeable volume - but this does come down to subjective metrics such as whether the exchange seems to be of a good enough standard.
There are problems with some exchanges where we can't get data or the prices are not very efficient. When the price is not efficient we generally exclude the exchange's price from our index calculations but include it in our volume (after all the assets did change hands). This occurs with LocalBitcoins due to their exchange set up which can lead to price inconsistencies.
Our index uses a VWAP approach (Volume Weighted Average Price) taking into account the past 24 hours volume. So taking two exchanges, A and B, where A has 75% of the volume in the past 24 hours we calculate our index as follows:
0.75 x (Last Trade on A) + 0.25 x (LastTrade on B)
To work out the percentage of volume that an exchange has we only sum exchanges that we include in the price calculation (i.e. we don't include exchange that have poor pricing).
The price index also has a volume reduction when taking it into account in the average value (CryptoCompare Index). The reduction applies only on volumes over 0.01 so it does not affect smaller coins and the volume is reduced as follows:
reductionOnTime = {Over5Min:0.8,Over10Min:0.6,Over15Min:0.4,Over20Min:0.2,Over25Min:0.01}
So that means that if the last trade was
between 5 and 10 min ago, we only take 80% of the volume into account
between 10 and 15 min ago, we only take 60% of the volume into account
between 15 and 20 min ago, we only take 40% of the volume into account
between 20 and 25 min ago, we only take 20% of the volume into account
over 25 min ago, we only take 0.1% into account
This ensures that if a high-volume exchange goes offline for a while, the un-updated price will be taken less and less into consideration on the CryptoCompare Index.
With OHLC data we take our set of efficient exchanges and take the highest high and the lowest low of the aggregated price!
And that's how we do it. We are updating with some new features that will hopefully give our indices more accuracy and better information on market pricing for our users - and as always if you have any bright ideas just drop us a line by leaving a comment on the bottom of this guide!
If you want to read a more formal description, please see our CCCAGG Price Index Methodology