通过使用PostgreSQL分析以太坊,比特币和1200多种其他加密货币

加密货币是新淘金热的推动力。 作者建议使用数据分析来更好地了解这个新兴市场。

最近,有一种感觉,钱在树上生长。

图片

交易所交易量达到数百万美元,市值达到 十亿美元 。 在越来越多的新加密货币问世的推动下谈论淘金热是正确的。

我们生活在数字货币时代。 不到十年前出现,加密货币的概念已经在当今变得广泛。 尽管时间很短,但市场上已经有超过一千种不同的加密货币,并且ICO 几乎每天都在发生。

当我们适应快速增长的新市场时,重要的是设法了解正在发生的事情。 在微观层面(例如,个人投资)和宏观层面(例如,防止市场崩溃或重大资本损失)都存在许多风险。 这是我们进入游戏的地方。

我们处理数据,或者说,我代表TimescaleDB的开发团队, TimescaleDB是一个用于处理时间序列的新的开源PostgreSQL数据库。 我们认为,使用PostgreSQL和TimescaleDB(和R可视化接收到的数据)来分析加密货币市场将是有用且令人兴奋的。

在我们的工作过程中,我们在OHLC图表上分析了1200多种加密货币的历史数据,这些数据由CryptoCompare提供(我们的最后采样日期为今年6月26日)。 此特定数据集中的步骤为24小时,但是,应注意,TimescaleDB易于扩展以在更短的时间段内工作。 尤其是我们的产品非常适合作为基本工具的角色,用于处理新硬币和交易所中不断增长的数据流。

这是您可以从这篇文章中学到的东西:

  • 关于加密货币市场情况的一些有价值的一般结论。
  • 更好地了解TimescaleDB + PostgreSQL如何简化时间序列数据分析。
  • 获取有关自己下载此数据集的说明,发现新趋势(甚至可以使用它们来创建自己的进入市场的策略!)。

免责声明:以上分析不应被视为进行某些金融交易的建议。 如果要进行自己的分析,请注意说明如何安装TimescaleDB和下载CryptoCompare数据的说明。

因此,如果您7年前在比特币上投资了100美元,现在它将花费...


让我们从良好的旧的“利润损失综合症”开始。 如果您甚至不熟悉加密货币,您可能已经听说过比特币,它是所有加密货币的“曾祖父”。 事实证明,如果您在2010年7月向其中投资了100美元,那么今天的金额将增加到500万美元。

在这段时间内,比特币表现出令人愉悦的动态(即使考虑到最近发生的相对较小的崩溃):

-- BTC USD prices by two week intervals SELECT time_bucket('14 days', time) as period, last(closing_price, time) AS last_closing_price FROM btc_prices WHERE currency_code = 'USD' GROUP BY currency_code, period ORDER BY period; 


图片

最近7年交易所收盘时BTC兑换美元

使用PostgreSQL,我们要求每两周读取一次BTC价格,以分析汇率对美元的汇率。 注意:此查询中的time_bucketlast是用于时间序列分析的TimescaleDB(PostgreSQL中不存在)的本机功能。

我们希望您在2014年2月没有购买比特币...


但是,不能说BTC总是让一切顺利。 让我们仔细看一下该课程的每日波动性,并使用强大的PostgreSQL窗口函数进行计算:

 -- Daily BTC returns by day SELECT time, closing_price / lead(closing_price) over prices AS daily_factor FROM ( SELECT time, closing_price FROM btc_prices WHERE currency_code = 'USD' GROUP BY 1,2 ) sub window prices AS (ORDER BY time DESC); 


图片

当日BTC / USD汇率除以前一天(7年期)汇率的比率

由于市场相对不成熟,比特币汇率可能发生重大变化。 价值的稳定增长通常表明加密货币的成功,但是在其历史上显然没有一个急剧增长的时期,这是在2014年初观察到的。 在更详细地研究了这段时期后,我们注意到2014年2月至3月的飞跃。 在市场高峰期投资BTC的投资者不得不等待很多时间,因为利率很快趋于稳定,并且很快达到了指标,使当时购买的比特币销售成为一项有利可图的业务。

图片

当日BTC / USD汇率除以前一汇率(2014)的系数

再见中国,日本你好


加密货币市场是一种国际现象。 在研究货币交易量时,我们注意到了一些有趣的事情:

 -- BTC trading volumes by currency SELECT time_bucket('14 days', time) as period, currency_code, sum(volume_btc) FROM btc_prices GROUP BY currency_code, period ORDER BY period; 


图片

过去7年中各种法定货币的BTC交易量(每两周一次,复合柱)

2014年,由于所谓的人民币贬值和中国国内股市疲软,导致中国的比特币价值小幅上涨。 随后是2016年和2017年初的繁荣时期:人民币主导了比特币交易。

图片

过去一年中人民币在比特币交易中的份额(每两周一次)

在短短几个月的时间内,这个数字急剧下降。

是什么原因 现在是超越数字数据分析并进行良好的旧研究的时候了。 我们的结论很好地说明了以下事实:不可能仅依靠定量数据进行市场研究。

2017年初,中国人民银行颁布了限制加密货币交易所活动的法规。 2月,该国两个最大的交易所(OKCoin和Huobi.com) 暂停了撤出加密货币以换取外币的交易,到今年年中,中国交易量逐渐减少。 同时,在比特币交易量方面,日本成为领先者。 甚至到了2017年4月比特币被确认为法定货币的地步。

图片

在2017年BTC / CNY交易份额急剧下降之后,各种货币的BTC交易量。 BTC / JPY-交易量的新领导者(每两周一次)

现在让我们考虑一下如果您在2017年1月向ETH投资100美元会发生什么...


尽管事实上“比特币火车”早在2010年就已消失,但没有引起关注的原因。 许多观察家一致认为,即使在剧烈波动的情况下,以太坊的价格波动看起来也更加令人印象深刻( 最近的“修正”是对此的又一次确认)。 让我们看看以比特币等价的以太坊的价格(通常习惯于报价):

 -- ETH prices in BTC by two week intervals SELECT time_bucket('14 days', c.time) as period, last(c.closing_price, c.time) AS last_closing_price_in_btc FROM crypto_prices c WHERE c.currency_code = 'ETH' GROUP BY period ORDER BY period; 


图片

最近三年交易日收盘时的ETH兑BTC汇率

但是,正如我们所知,比特币本身并没有明显的稳定性,这降低了上图的实用性。 让我们使用法定货币的每日BTC报价查看法定货币的ETH价格。 (为此,我们将使用Postgres JOIN的有用属性和一些复杂的过滤器):

 -- ETH prices in BTC, USD, EUR, and CNY by two week intervals SELECT time_bucket('14 days', c.time) as period, last(c.closing_price, c.time) AS last_closing_price_in_btc, last(c.closing_price, c.time) * last(b.closing_price, c.time) filter (WHERE b.currency_code = 'USD') AS last_closing_price_in_usd, last(c.closing_price, c.time) * last(b.closing_price, c.time) filter (WHERE b.currency_code = 'EUR') AS last_closing_price_in_eur, last(c.closing_price, c.time) * last(b.closing_price, c.time) filter (WHERE b.currency_code = 'CNY') AS last_closing_price_in_cny FROM crypto_prices c JOIN btc_prices b ON time_bucket('1 day', c.time) = time_bucket('1 day', b.time) WHERE c.currency_code = 'ETH' GROUP BY period ORDER BY period; 


图片

过去3年的交易日结束时ETH兑换三种法定货币

在其存在的第一年,ETH超过了其历史上的任何年度BTC增长指标。 平均收盘价比上年大幅上涨530%,是一个良好的开端。 总体而言,到2017年,与2016年相比,2017年所有这些年的总增长率下降至200%。 但是,即使是这样的结果,对于其他资产也仍然令人印象深刻。 截至最近六个月,现在以太坊价格已经上涨了3000%。 因此,如果您在今年1月(近7个月前)向ETH投资了100美元,那么今天的价值将是3000美元。

以稳定货币(美元,欧元,人民币)表示以太坊的价值,我们看到所有三个图表的形状相同。 在过去六个月中,除BTC以外,所有货币等值货币均已实现快速增长。 ETH / BTC汇率图表类似于法定货币图表,更容易产生BTC值波动的情况。 结果,尝试以BTC表示ETH的价格给第一个的不稳定带来了难以置信的印象。 显然,BTC仍是一种太年轻的货币,因此无法考虑其基础。

那其他1200种加密货币呢?


我们希望对BTC和ETH趋势的简要概述可以让您更好地了解加密货币的混乱世界。 那么我们将如何处理其他1200种加密货币呢?

好吧,首先,让我们使用数据集来跟踪其来源:

重要说明:我们的数据集包含其收集时的信息,这可能是在ICO之后发生的。

 -- Currencies sorted by first time we have data for them SELECT ci.currency_code, min(c.time) FROM currency_info ci JOIN crypto_prices c ON ci.currency_code = c.currency_code AND c.closing_price > 0 GROUP BY ci.currency_code ORDER BY min(c.time) DESC; 

  currency_code | min ---------------+------------------------ CIR | 2017-06-26 20:00:00+00 MDC | 2017-06-26 20:00:00+00 WBTC | 2017-06-26 20:00:00+00 NET | 2017-06-26 20:00:00+00 NAS2 | 2017-06-26 20:00:00+00 TPAY | 2017-06-26 20:00:00+00 MRSA | 2017-06-26 20:00:00+00 XCI | 2017-06-26 20:00:00+00 PAY | 2017-06-19 20:00:00+00 SNM | 2017-06-18 20:00:00+00 LGD | 2017-06-17 20:00:00+00 SNT | 2017-06-16 20:00:00+00 IOT | 2017-06-12 20:00:00+00 QRL | 2017-06-09 20:00:00+00 MGO | 2017-06-09 20:00:00+00 CFI | 2017-06-08 20:00:00+00 VERI | 2017-06-07 20:00:00+00 EQT | 2017-06-07 20:00:00+00 ZEN | 2017-06-05 20:00:00+00 BAT | 2017-05-31 20:00:00+00 

每个加密货币的第一条记录的时间戳(递减)

市场在不断发展,此外,从新加密货币的每日增长来看,它也在不断扩大。 上面发布的列表仅包含截至6月26日的20个最新令牌,并使您可以了解每周出现多少种新的加密货币。

让我们根据价格信息出现的第一个日期计算每天出现的新加密货币的数量:

 -- Number of new currencies with data sorted by day SELECT day, COUNT(code) FROM ( SELECT min(c.time) AS day, ci.currency_code AS code FROM currency_info ci JOIN crypto_prices c ON ci.currency_code = c.currency_code AND c.closing_price > 0 GROUP BY ci.currency_code ORDER BY min(c.time) )a GROUP BY day ORDER BY day DESC; 


图片

过去4年中每天的新加密货币数量

图片

当年每天的新加密货币数量

  day | count ------------------------+------- 2017-06-26 20:00:00+00 | 8 2017-06-19 20:00:00+00 | 1 2017-06-18 20:00:00+00 | 1 2017-06-17 20:00:00+00 | 1 2017-06-16 20:00:00+00 | 1 2017-06-12 20:00:00+00 | 1 2017-06-09 20:00:00+00 | 2 2017-06-08 20:00:00+00 | 1 2017-06-07 20:00:00+00 | 2 2017-06-05 20:00:00+00 | 1 2017-05-31 20:00:00+00 | 5 2017-05-28 20:00:00+00 | 29 2017-05-27 20:00:00+00 | 13 2017-05-26 20:00:00+00 | 32 2017-05-25 20:00:00+00 | 303 2017-05-16 20:00:00+00 | 1 2017-05-15 20:00:00+00 | 7 

按日期,每日统计数据(降序)划分的新加密货币数量

当我们请求有关加密货币数据首次出现的信息(以追踪其“年龄”)时,​​很明显,市场不仅是一群投资者,而且还有另一类参与者-数字资产的创造者。 就在最近的5月25日至28日,根据我们的招聘数据,大量新硬币涌入-不到一周的时间就涌现了300多个新令牌。 (由于我们的设置仅记录有关加密货币的价格信息,因此有关其出现的信息可能与ICO的日期不符。)

加密货币领导者和追赶世界


如今,有太多的加密货币,以至于很难区分明智与可疑。 您如何确定哪些值得关注? 这是指标之一:过去一周的交易所交易总量。

 -- 1200+ crypto currencies by total transaction volume (in btc) over the last month SELECT 'BTC' as currency_code, sum(b.volume_currency) as total_volume_in_usd FROM btc_prices b WHERE b.currency_code = 'USD' AND now() - date(b.time) < INTERVAL '8 day' GROUP BY b.currency_code UNION SELECT c.currency_code as currency_code, sum(c.volume_btc) * avg(b.closing_price) as total_volume_in_usd FROM crypto_prices c JOIN btc_prices b ON date(c.time) = date(b.time) WHERE c.volume_btc > 0 AND b.currency_code = 'USD' AND now() - date(b.time) < INTERVAL '8 day' AND now() - date(c.time) < INTERVAL '8 day' GROUP BY c.currency_code ORDER BY total_volume_in_usd DESC; 

  currency_code | total_volume_in_usd ---------------+--------------------- BTC | 2040879023.54 ETH | 1617388472.94011 LTC | 287613541.293571 XRP | 269417667.514443 ETC | 165712729.612886 ANS | 126377042.5269 SC | 111623857.796786 DASH | 86875922.3588143 ZEC | 78836728.2129428 BTS | 69459051.5958428 

过去一周中以美元计的10种主要加密货币的总交易量(下降)

图片

过去一周中以美元计的10种主要加密货币的总交易量(下降)

对此请求的一点澄清:BTC和其他加密货币的数据位于不同的表中。 因此,我们必须将这两个查询与UNION结合使用。 早些时候,我们还决定要接收法定货币(例如美元)而不是BTC的报价。 因此,请求的后半部分将数据与BTC表合并以将BTC转换为USD。

奇怪的是,就操作量而言,比特币和以太坊是领导者。 但是以下热门游行队伍的参与者-Litecoin (LTC)Ripple(XRP)Ethereum Classic(ETC)几乎相等。 进入市场已有五年时间,莱特币几乎与比特币相同,通常被认为是市场上的关键参与者。 Ripple被定位为国际商业市场代表的银行硬币,并面向更特定的受众,也被认为是有前途且正在增长的硬币。 有趣的是,排名前五的不仅有ETH,而且还有ETC,这表明当今市场非常关注以太坊。

最赚钱的加密货币


“划掉”一长串加密货币的另一种方法是分析其盈利能力,例如,每日总利润的指标。 我们的数据集中包含1200多种加密货币的价格数据。 如果仔细观察每日汇率的最大涨幅,则可以确定日内交易的领导者。

 -- Top crypto by daily return, by day SELECT time, last(currency_code,daily_factor), max(daily_factor) FROM ( SELECT currency_code, time, closing_price, lead(closing_price) over (partition BY currency_code ORDER BY time DESC) AS prev_day_closing_price, closing_price / lead(closing_price) over (partition BY currency_code ORDER BY time DESC) AS daily_factor FROM crypto_prices) q GROUP BY time ORDER BY time DESC; 

  time | last | daily_return ------------------------+--------+------------------ 2017-06-26 20:00:00+00 | CIN | 40.1428571428571 2017-06-25 20:00:00+00 | KC | 38 2017-06-24 20:00:00+00 | VOYA | 14.2747252747253 2017-06-23 20:00:00+00 | PAY | 3.18506315211422 2017-06-22 20:00:00+00 | YOVI | 119.607843137255 2017-06-21 20:00:00+00 | ION | 7.97665369649805 2017-06-20 20:00:00+00 | TES | 5.25157232704403 2017-06-19 20:00:00+00 | KNC | 150000 2017-06-18 20:00:00+00 | ZNY | 22.5217391304348 2017-06-17 20:00:00+00 | YOVI | 22.0590746115759 2017-06-16 20:00:00+00 | LTD | 9.50207468879668 2017-06-15 20:00:00+00 | AMIS | 168758.782201405 2017-06-14 20:00:00+00 | JANE | 6 2017-06-13 20:00:00+00 | YOVI | 690.636254501801 2017-06-12 20:00:00+00 | U | 5.21452145214522 2017-06-11 20:00:00+00 | JANE | 6 2017-06-10 20:00:00+00 | WGO | 3.58744394618834 2017-06-09 20:00:00+00 | BNT | 5000 2017-06-08 20:00:00+00 | XNC | 52.7704485488127 2017-06-07 20:00:00+00 | CBD | 14.3243243243243 2017-06-06 20:00:00+00 | CC | 72 2017-06-05 20:00:00+00 | BLAZR | 7.38461538461538 2017-06-04 20:00:00+00 | GREXIT | 13.0833333333333 2017-06-03 20:00:00+00 | EPY | 4.29880478087649 2017-06-02 20:00:00+00 | YOVI | 1257.67790262172 2017-06-01 20:00:00+00 | FCN | 8.57142857142857 2017-05-31 20:00:00+00 | EPY | 348.611111111111 2017-05-30 20:00:00+00 | BST | 14.1441860465116 2017-05-29 20:00:00+00 | FCN | 45.3086419753086 2017-05-28 20:00:00+00 | NOO | 56536.231884058 

当日最高加密货币价值差异率(下降日期)

让我们定义具有最大每日获利能力指标的加密货币。 要计算每日利润,我们再次使用window函数 ,然后使用TimescaleDB集合中的最后一个函数来搜索每天带来最多收入的加密货币。

最近三个月的结论显示了AMIS的数量优势(6月15日价值增长了168倍)。 这种加密货币显示了15个不同天中最大的增长。 但是,仔细研究一下,我们注意到高增长是由于价格波动同样高:AMIS价格通常在每次提高后回落到零。

图片

AMIS最近五个月的收盘价

该样本的另一位领导者YOVI取得了3次最佳结果,但也受到与AMIS类似的不可靠趋势的影响:

图片

过去五个月YOVI的日收盘价

尽管这两种趋势不稳定,但与ETH相比,它们看起来更有希望,ETH的价值在其存在的第一年(2015年)就稳步下降:

图片

2015年ETH的日收盘价

(重复免责声明:TimescaleDB不支持这些加密货币中的任何一种,也不对您对它们的投资以及与之相关的任何可能的损失负责。)

事实证明,金钱在默克尔树上增长了吗?


在本文中,我们从开放的加密货币数据集中得出了一些结论,证明了PostgreSQL和TimescaleDB的优势。 尽管如此,应该记住,加密货币市场将不可避免地在下个月,下周甚至明天发生变化。

但是,如果您想独立研究该数据集并进行分析,可以向您提供有关下载数据和安装TimescaleDB的适当说明

如果您想了解有关TimescaleDB的更多信息,以及它如何提高PostgreSQL处理时间序列的效率,我们建议您熟悉技术文章

图片

Source: https://habr.com/ru/post/zh-CN404547/


All Articles