Py学习  »  Python

用Python预测比特币价格

Python中文社区 • 6 年前 • 708 次点击  


專 欄


熊本一身白,Python中文社区专栏作者,现居巴黎,不会说法语的金融狗不是好码农。
个人主页: https://www.zhihu.com/people/zhang-tai-lai

背景:

作者最近参加了某投行群面,莫名被cue到比特币和区块链。作者因为被时代选中了,把知道的区块链技术原理,将来的应用,可能的风险一股脑倒了出来。

最后大佬微笑的说,比特币太扯了,不适合我们……

卒……

另外比特币在2017年不时的出现在各大报纸头条,最近又要进行硬分叉,于是好奇心发作,准备写个系列,来研究下。

正题:

  • 好奇心1: 比特币大涨,大跌当天,主流金融媒体都说了啥?

Step 1: 用python写爬虫,抓了《华尔街日报》五年内的所有关于比特币的报道。在跟网站进行爬虫与反爬虫的斗争后,进行一系列的data cleaning。

Step 2: 用pandas_datareader.data包获得比特币历史数据

Step 3: 再次数据清洗,因为谜一样的19665倍涨幅......

Step 4: 将比特涨幅表与《华尔街日报》新闻表格合并(merge)

Step 5: 大功告成,让我们看下当日涨幅最大的几天到底新闻报道了什么

Step 6: 其实只能说nothing special (内心小绝望),那我们再来看看单日跌幅前10

Step 7: 从step 6可以看出,比特币几次大跌都跟政府的行动有关系,政策不确定性的确是电子货币的最大风险。

接下来,作者想到会不会波动最大的几天,《华尔街日报》会“蹭”个热度,狂发文章。


No. of news in WSJ is aggregated by 'Month'


结果呢,发现《华尔街日报》这个量级的报社,的确是不太需要“蹭”热度 (摔)

  • 好奇心2: 什么可以用来预测比特币?

Step 1: 江湖盛传google trends对做项目有帮助,于是笔者试了一下,结果如下

Step 2: 终于有个相关的变量出现了,让我们再做个rebase的图

发现了吗!Google Trends里的指数可以理解为比特币价格的leading factor,涨跌都早于比特币本身。

神马?你以为自己要赚钱了?不不不,笔者认为在17年初之前,这项规律是符合的,因为毕竟知道比特币的人并不多,但是在暴涨的17年,热衷投资(投机)的买家都对比特币已经有了了解,Google Trends预测的准确性应该会大幅下降。笔者试着看了下Google Trends里的相关搜索发现,大部分人搜索比特币都是在询价而不再是问“What is bitcoin?”, "Where can we buy bitcoin?"。


由于没有数据源,没有办法知道各个相关搜索的历史变化。


Step 3: 最后,我发现了一些奇怪的东西。下面我们来猜下,哪个国家搜比特币搜的最频繁?

中国?(我们被墙了,好吗);美国?日本?欧洲?答案是...

尼日利亚!!玻利维亚!!南非!!加纳!!斯洛文尼亚??? 笔者一脸黑人问号。(自行脑补表情包)

非洲拉美小伙伴因为通货膨胀摧毁了你们的本身货币吗?看来是时候找个时间,再写个文章研究下了。(对,就得给自己挖坑,否则永远不动笔)

Is Ghana Showing the Most Interest in Bitcoin? (有兴趣的小伙伴可以看下这个报道)

BC: So the combination of smartphones and Bitcoin technology enables the people in Ghana to have access to the global economy, which is something they can’t do with their local currency?
TD: Exactly. One more thing that gets people involved is that it makes transactions very fast. And, in Ghana, bitcoin is valued higher than our local currency. So what happens is that people store bitcoins for maybe two months, three months on the exchanges. Then it appreciates and people change it to the local currency.
BC: So it’s not only used as a means of exchange but as a store of value to hedge against the volatility of the Ghanaian Cedi?
TD: Very good, and our company PMCedi exchanges bitcoins and other fiat currencies. We also exchange other crypto currencies such as Perfect Money and Litecoin.

简单翻译就是加纳人可以用只能手机买卖比特币来参与全球的经济,然后也可以用来对冲本国货币波动的风险。

Fair enough,用一个波动极高的比特币来对冲本国法定货币的波动风险……

Step 4: 既然已经研究了Facebook,我们再来看看另一个不存在的网站Twitter

笔者针对twitter中的hashtag做了相关分析,得到了一些奇怪的东西。以太币(Ethereum)作为业界老二情有可原,但是dogecoin, freebitcoin, robotcoingame都是啥?doge? 难道要再开一篇文章研究下整个电子货币的概况吗?找出哪些是坑爹货(如果不是全都坑爹的话)?


总结:

我们来回答下标题的问题,比特币价格可以预测吗?

经过一堆废话,大家发现笔者只说明了一个问题,我们初步可以用google trends做为关键变量,预测比特币的价格。(具体模型构建啥的,有时间再更新)

待填的坑:

  • reddit的点赞数,以及相关话题内容

其实在电子货币领域,有另一个网站比twitter更具有研究价值,那就是reddit。如果能分析时期reddit中比特币的高票话题,可能会对接下来的研究有很大帮助。

Reddit是网页新鲜事件和热点事件的源头,它也是互联网最有趣的地方和有高度组织的链接集中处。

  • 其他新闻媒体

笔者这篇文章只分析了《华尔街日报》一家媒体,接下来准备尝试《New York Times》和《Financial Times》两家的报道。

  • 找到其他关键变量,实战预测

  • NLP 自然语言分析

由于笔者时间有限,针对新闻内容没有进行任何的分析,希望有时间能来填坑。


长按扫描关注Python中文社区,

获取更多技术干货!

    

Python 中 文 社 区

Python中文开发者的精神家园

合作、投稿请联系微信:

pythonpost

— 人生苦短,我用Python —
1MEwnaxmMz7BPTYzBdj751DPyHWikNoeFS





今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/LiNEiP5BKu
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/4240
 
708 次点击