比特币市场的行为如何?加密货币价值突然出现高峰和低谷的原因是什么?不同altcoins的市场是不可分割的或基本独立的?我们如何预测接下来会发生什么?
有关加密货币的文章,比如比特币和以太坊,近来充斥着猜测,有数百名自称专家的人提倡他们期望出现的趋势。许多这些分析所缺乏的是用于备份索赔的数据和统计数据的坚实基础。
本文的目标是提供一个简单介绍使用Python的加密货币分析。我们将通过一个简单的Python脚本来检索,分析和可视化不同加密货币上的数据。在这个过程中,我们将揭示这些波动的市场表现如何以及它们如何演变的有趣趋势。
这不是一个解释加密货币是什么的文章,也不是一个关于哪些特定货币会上涨,哪些会下跌的评论文章。相反,我们在本教程中关注的所有内容都是获取原始数据并揭示隐藏在数字中的故事。
第1步-设置您的数据实验室
本教程旨在为所有技能水平的爱好者,工程师和数据科学家提供便利。您将需要的唯一技能是对Python的基本了解以及足够的命令行知识来设置项目。
具有所有结果的笔记本完整版本可在此处找到。
步骤1.1-安装Anaconda
从头开始安装此项目的依赖关系的最简单方法是使用Anaconda,一个预先打包的Python数据科学生态系统和依赖项管理器。
要设置Anaconda,我会建议遵循官方安装说明-https://www.continuum.io/downloads。
如果您是高级用户,并且您不想使用Anaconda,那完全没问题。我假设你不需要帮助安装所需的依赖关系。随意跳到第2节。
步骤1.2-安装Anaconda项目环境
一旦安装了Anaconda,我们就需要创建一个新的环境来保持我们的依赖性。
运行
condacreate--namecryptocurrency-analysispython=3
为我们的项目创建一个新的Anaconda环境。
接下来,运行
sourceactivatecryptocurrency-analysis
或
activatecryptocurrency-analysis
来激活这个环境。
最后,运行
condainstallnumpypandasnb_condajupyterplotlyquandl
以在环境中安装所需的依赖关系。这可能需要几分钟才能完成。
为什么使用环境?如果您计划在您的计算机上开发多个Python项目,将相关性分开以避免冲突会很有帮助。Anaconda将为每个项目的依赖项创建一个特殊的环境目录,以保持组织和分离的一切。
步骤1.3-启动一个互动Jupyter笔记本
一旦环境和依赖关系完成设置,运行
jupyternotebook
以启动iPython内核,并打开浏览器
http://localhost:8888/
。创建一个新的Python笔记本,确保使用
Python
内核。
步骤1.4-导入笔记本顶部的依赖项
一旦你打开了一个空白的Jupyter笔记本,我们要做的第一件事就是导入所需的依赖关系。
数据:USDT总市值达804亿美元,创2022年3月以来新高:金色财经报道,CoinGecko数据显示,稳定币USDT总市值过去30天增长11.3%,达804亿美元,创2022年3月以来新高,此外,USDT曾于2022年2月创下832亿美元的总市值历史记录。[2023/4/11 13:55:52]
importosimportnumpyasnpimportpandasaspdimportpickleimportquandlfromdatetimeimportdatetime
importplotly.offlineaspyimportplotly.graph_objsasgoimportplotly.figure_factoryasffpy.init_notebook_mode(connected=True)
第2步-检索比特币定价数据
现在一切都已经完成,我们已经准备好开始检索数据进行分析。首先,我们需要使用Quandl的免费比特币API获取比特币定价数据。
步骤2.1-定义Quandl辅助函数
为了协助这个数据检索,我们将定义一个函数来从Quandl下载和缓存数据集。
defget_quandl_data(quandl_id):'''DownloadandcacheQuandldataseries'''cache_path='{}.pkl'.format(quandl_id).replace('/','-')try:f=open(cache_path,'rb')df=pickle.load(f)print('Loaded{}fromcache'.format(quandl_id))except(OSError,IOError)ase:print('Downloading{}fromQuandl'.format(quandl_id))df=quandl.get(quandl_id,returns="pandas")df.to_pickle(cache_path)print('Cached{}at{}'.format(quandl_id,cache_path))returndf
我们正在使用
pickle
序列化并将下载的数据保存为文件,这将阻止我们的脚本每次运行脚本时都重新下载相同的数据。该函数将以Pandas数据框的形式返回数据。如果您不熟悉数据框,则可以将它们视为超级供电的电子表格。
步骤2.2-拉Kraken交易所定价数据
首先我们来拉动Kraken比特币交易所的历史比特币汇率。
Billions项目组CharttheBTCpricingdatabtc_trace=go.Scatter(x=btc_usd_price_kraken.index,y=btc_usd_price_kraken)py.iplot()
在这里,我们使用Plotly来生成我们的可视化。这比一些比较成熟的Python数据可视化库更传统,但我认为Plotly是一个不错的选择,因为它使用D3.js生成完全交互的图表。这些图表具有吸引人的视觉默认值,易于探索,并且非常易于嵌入网页。
作为快速的完整性检查,您应该将生成的图表与公开可用的比特币价格图表进行比较,以验证下载的数据是否合法。
第2.3步-从更多BTC交易所获取定价数据
您可能已经注意到此数据集中存在一些问题-特别是在2014年末和2016年初,有一些明显的下降峰值。这些峰值特定于Kraken数据集,我们显然不希望它们反映在我们的整体定价分析。
阿猛:Crust旨在构建一个重视数据隐私和所有权的分布式云生态系统:据官方消息,2021年9月2日晚, 瓦特直播特邀阿猛先生创始人阿猛做客直播间, 就CRUST主网上线事件, 深入探讨数据存储细分市场未来机遇。在本次直播中,阿猛先生表示传统数据存储存在很大痛点,传统数据存储服务存在成本高,安全性差,数据易丢失,缺乏对个人隐私的保护等问题。Crust 旨在构建一个重视数据隐私和所有权的分布式云生态系统,Crust的运行方式就是通过把全球的服务器,通过区块链技术,将这些服务器利用起来。Crust的数据存储方式不仅拥有着极低的边际成本,而且更多的副本为文件提供了可用性,并且唯一的CID可以保证文件不被篡改,且在区块链的技术加持下,文件的安全行得到了更大的保障。
瓦特直播是WBF交易所品牌旗下视频直播平台, 截止目前累计开展114场直播秀, 先后推出6档直播栏目, 邀请90余名行业KOL和精英领袖, 合作媒体社区多达100家。[2021/9/3 22:57:50]
比特币交易所的性质在于定价取决于供求关系,因此没有单一交易所包含真正的比特币“主价”。为了解决这个问题,以及可能由于技术中断和数据集故障导致的下降峰值,我们将从另外三个主要比特币交易所获取数据,以计算总比特币价格指数。
首先,我们将从每个交易所下载数据到数据框字典中。
Billions项目组MergetheBTCpricedataseries'intoasingledataframebtc_usd_datasets=merge_dfs_on_column(list(exchange_data.values()),list(exchange_data.keys()),'WeightedPrice')
最后,我们可以使用该
tail()
方法预览最后五行结果,以确保它看起来不错。
btc_usd_datasets.tail()
BITSTAMP
COINBASE
ITBIT
日期
2017年8月14日
4210.1549434213.3321064207.3666964213.257519
2017年8月15日
4101.4471554131.6068974127.0368714149.146996
2017年8月16日
4193.4267134193.4695534190.1045204187.399662
2017年8月17日
4338.6946754334.1152104334.4494404346.508031
2017年8月18日
4182.1661744169.5559484175.4407684198.277722
价格看起来像预期的那样:它们的范围相似,但是根据每个个人比特币交易所的供求情况而略有变化。
步骤2.5-可视化定价数据集
下一个合乎逻辑的步骤是可视化这些定价数据集的比较方式。为此,我们将定义一个辅助函数来提供单行命令以从数据框生成图形。
defdf_scatter(df,title,seperate_y_axis=False,y_axis_label='',scale='linear',initial_hide=False):'''Generateascatterplotoftheentiredataframe'''label_arr=list(df)series_arr=list(map(lambdacol:df,label_arr))layout=go.Layout(title=title,legend=dict(orientation="h"),xaxis=dict(type='date'),yaxis=dict(title=y_axis_label,showticklabels=notseperate_y_axis,type=scale))y_axis_config=dict(overlaying='y',showticklabels=False,type=scale)visibility='visible'ifinitial_hide:visibility='legendonly'Billions项目组Addseperateaxisfortheseriesifseperate_y_axis:trace='y{}'.format(index+1)layout=y_axis_configtrace_arr.append(trace)fig=go.Figure(data=trace_arr,layout=layout)py.iplot(fig)
数据:超过14万枚ETH已被销毁,单个区块销毁均值0.86 ETH:据欧科云链链上大师数据显示,当前以太坊销毁量为14.29万ETH,单个区块销毁均值为0.8637 ETH。昨日以太坊销毁量9068 ETH,环比上升18.22%;EIP-1559模式下的交易笔数为61.73万笔,占比51.72%。[2021/8/31 22:48:43]
为了简洁起见,我不会过多介绍这种帮助功能的工作原理。如果您想了解更多信息,请查阅Pandas和Plotly的文档。
现在我们可以轻松生成比特币定价数据的图表。
Billions项目组Remove"0"valuesbtc_usd_datasets.replace(0,np.nan,inplace=True)
当我们重新绘制数据框时,我们会看到一个更清晰的图表,没有降低峰值。
Billions项目组CalculatetheaverageBTCpriceasanewcolumnbtc_usd_datasets=btc_usd_datasets.mean(axis=1)
这个新的专栏是我们的比特币定价指数!让我们绘制该列以确保它看起来不错。
Billions项目组getdatafromthestartof2015end_date=datetime.now()Billions项目组pulldailydata(86,400secondsperday)defget_crypto_data(poloniex_pair):'''Retrievecryptocurrencydatafrompoloniex'''json_url=base_polo_url.format(poloniex_pair,start_date.timestamp(),end_date.timestamp(),pediod)data_df=get_json_data(json_url,poloniex_pair)data_df=data_df.set_index('date')returndata_df
该函数将采用加密货币对字符串并返回包含两种货币历史汇率的数据帧。
步骤3.2-从Poloniex下载交易数据
大多数altcoins不能用USD直接购买;为了获得这些硬币,个人经常购买比特币,然后在加密货币交易所交易比特币用于替代币。出于这个原因,我们会将每个硬币的汇率下载到BTC,然后我们将使用我们现有的BTC定价数据将此值转换为美元。
我们将下载9个顶级加密货币的交换数据-以太坊,莱特币,Ripple,EthereumClassic,Stellar,Dash,Siacoin,Monero和NEM。
altcoins=altcoin_data={}foraltcoininaltcoins:coinpair='BTC_{}'.format(altcoin)crypto_price_df=get_crypto_data(coinpair)altcoin_data=crypto_price_df
现在我们有一个包含9个数据框的字典,每个字典都包含阿尔特币和比特币之间的历史日均交易价格。
我们可以预览以太坊价格表的最后几行,以确保它看起来不错。
altcoin_data.tail()
关
高
低
打开
quoteVolume
卷
数据:近一周以太坊上DeFi协议总锁仓量上涨6.33%:欧科云链OKLink数据显示,本周以太坊上DeFi协议总锁仓量达819.9亿美元,较上周一上涨6.33%。锁仓量TOP3的币种分别为Curve(91.1亿美元)、Maker(83.4亿美元)、Aave V2(75.6亿美元);7日涨幅前三的币种分别为HARD Protocol(94.7%)、Keep Network(82.7%)、Beefy.Finance(69.1%);此外,当前以太坊上稳定币流通总量达到732.0亿美元,较上周同比增加0.91%,更多数据见下图。[2021/6/15 23:38:37]
加权平均
日期
2017-08-1812:00:00
0.0705100.0710000.0701700.07088717364.2715291224.7626840.070533
2017-08-1816:00:00
0.0715950.0720960.0700040.07051026644.0181231893.1361540.071053
2017-08-1820:00:00
0.0713210.0729060.0704820.07160039655.1278252841.5490650.071657
2017-08-1900:00:00
0.0714470.0718550.0708680.07132116116.9228691150.3614190.071376
2017-08-1904:00:00
0.0723230.0725500.0712920.07144714425.5718941039.5960300.072066
步骤3.3-将价格转换为美元
现在我们可以将BTC-altcoin汇率数据与我们的比特币定价指数结合起来,直接计算每种阿尔特币的历史美元价值。
Billions项目组MergeUSDpriceofeachaltcoinintosingledataframecombined_df=merge_dfs_on_column(list(altcoin_data.values()),list(altcoin_data.keys()),'price_usd')
简单。现在让我们将比特币价格作为组合数据框的最后一列。
Billions项目组Chartallofthealtocoinpricesdf_scatter(combined_df,'CryptocurrencyPrices(USD)',seperate_y_axis=False,y_axis
太好了!该图提供了关于过去几年中每种货币的汇率如何变化的非常稳固的“全景图”视图。
请注意,我们使用对数y轴比例来比较同一图表上的所有货币。欢迎您在此尝试不同的参数值以获得对数据的不同观点。
步骤3.4-执行相关性分析
您可能会注意到,加密货币汇率,尽管它们的价值和波动性大不相同,但看起来略有相关性。特别是自2017年4月上涨以来,甚至许多较小的波动似乎在整个市场中同步发生。
直到我们有数据支持它,一个直观的预感并不比猜测好得多。
我们可以使用Pandas
corr()
方法来测试我们的相关假设,该方法计算数据帧中每列与每个列的Pearson相关系数。
动态 | 加密货币数据分析商Coinscious:将开发人工智能分析系统:据Itp.net消息,近日,加密货币加密货币数据分析商Coinscious联合创始人兼首席技术官Daniel Im宣布,公司将在近期开发应用人工智能和深度学习对加密货币市场进行分析预测的系统。加密货币市场往往波动剧烈,操纵市场的事件屡见不鲜,投资者普遍缺乏正确信息。该公司希望通过研发人工智能分析系统,以创建一个可靠,健康的加密货币市场。[2018/8/25]
修订注意事项8/22/2017-本部分已经过修订,以便在计算相关系数时使用日收益率百分比而不是绝对价格值。
直接在非平稳时间序列上计算相关性可以给出有偏差的相关值。我们将通过首先应用该
pct_change()
方法来解决此问题,该方法会将数据框中的每个单元格从绝对价格值转换为每日回报百分比。
首先,我们将计算2016年的相关性。
#Calculatethepearsoncorrelationcoefficientsforcryptocurrenciesin2016combined_df_2016=combined_dfcombined_df_2016.pct_change().corr(method='pearson')
短跑
等等
ETH
LTC
SC
STR
XEM
XMR
XRP
BTC
短跑
1.0000000.0039920.122695-0.0121940.0266020.0580830.0145710.1215370.088657-0.014040
等等
0.0039921.000000-0.181991-0.131079-0.008066-0.102654-0.080938-0.105898-0.054095-0.170538
ETH
0.122695-0.1819911.000000-0.0646520.1696420.0350930.0432050.0872160.085630-0.006502
LTC
-0.012194-0.131079-0.0646521.0000000.0122530.1135230.1606670.1294750.0537120.750174
SC
0.026602-0.0080660.1696420.0122531.0000000.1432520.1061530.0479100.0210980.035116
STR
0.058083-0.1026540.0350930.1135230.1432521.0000000.2251320.0279980.3201160.079075
XEM
0.014571-0.0809380.0432050.1606670.1061530.2251321.0000000.0164380.1013260.227674
XMR
0.121537-0.1058980.0872160.1294750.0479100.0279980.0164381.0000000.0276490.127520
XRP
0.088657-0.0540950.0856300.0537120.0210980.3201160.1013260.0276491.0000000.044161
BTC
-0.014040-0.170538-0.0065020.7501740.0351160.0790750.2276740.1275200.0441611.000000
这些相关系数都在这个地方。接近于1或-1的系数意味着该系列分别强相关或反相关,接近于零的系数意味着这些值不相关,并且彼此独立地波动。
为了帮助可视化这些结果,我们将创建一个辅助可视化函数。
defcorrelation_heatmap(df,title,absolute_bounds=True):'''Plotacorrelationheatmapfortheentiredataframe'''heatmap=go.Heatmap(z=df.corr(method='pearson').as_matrix(),x=df.columns,y=df.columns,colorbar=dict(title='PearsonCoefficient'),)layout=go.Layout(title=title)ifabsolute_bounds:heatmap=1.0heatmap=-1.0fig=go.Figure(data=,layout=layout)py.iplot(fig)
correlation_heatmap(combined_df_2016.pct_change(),"CryptocurrencyCorrelationsin2016")
在这里,暗红色值表示强相关性,深蓝色值表示强烈的逆相关性。所有浅蓝色/橙色/灰色/棕褐色代表不同程度的弱/不存在的相关性。
这张图表告诉我们什么?基本上,它表明,2016年不同加密电子货币的价格波动之间几乎没有统计上显着的联系。
现在,为了验证我们最近几个月加密货币已经变得更加相关的假设,让我们仅使用2017年的数据重复相同的测试。
combined_df_2017=combined_dfcombined_df_2017.pct_change().corr(method='pearson')
短跑
等等
ETH
LTC
SC
STR
XEM
XMR
XRP
BTC
短跑
1.0000000.3841090.4804530.2596160.1918010.1593300.2999480.5038320.0664080.357970
等等
0.3841091.0000000.6021510.4209450.2553430.1460650.3034920.4653220.0539550.469618
ETH
0.4804530.6021511.0000000.2861210.3237160.2286480.3435300.6045720.1202270.421786
LTC
0.2596160.4209450.2861211.0000000.2962440.3331430.2505660.4392610.3213400.352713
SC
0.1918010.2553430.3237160.2962441.0000000.4171060.2879860.3747070.2483890.377045
STR
0.1593300.1460650.2286480.3331430.4171061.0000000.3965200.3418050.6215470.178706
XEM
0.2999480.3034920.3435300.2505660.2879860.3965201.0000000.3971300.2703900.366707
XMR
0.5038320.4653220.6045720.4392610.3747070.3418050.3971301.0000000.2136080.510163
XRP
0.0664080.0539550.1202270.3213400.2483890.6215470.2703900.2136081.0000000.170070
BTC
0.3579700.4696180.4217860.3527130.3770450.1787060.3667070.5101630.1700701.000000
这些是更重要的相关系数。强大到足以作为投资的唯一基础?当然不是。
然而,值得注意的是,几乎所有的加密货币已经变得更加相互关联。
correlation_heatmap(combined_df_2017.pct_change(),"CryptocurrencyCorrelationsin2017")
呵呵。这很有趣。
这是为什么发生?
好问题。我真的不确定。
想到最直接的解释是对冲基金最近开始在加密货币市场上公开交易。与平均交易者相比,这些基金的资本要多得多,所以如果一个基金在多个加密货币上对冲他们的投注,并且基于自变量对每个基金使用类似的交易策略,那么这可能是合理的这种相关性增加的趋势将会出现。
深入-XRP和STR
例如,上面图表的一个值得注意的特征是XRP是最不相关的加密货币。这里值得注意的例外是STR,它与XRP具有更强的相关性。
这里有趣的是,Stellar和Ripple都是非常类似的金融科技平台,旨在减少银行间国际资金转移的摩擦。
可以想象的是,由于使用每个令牌的区块链服务的相似性,一些大资金玩家和对冲基金可能使用类似的交易策略来投资Stellar和Ripple。这可以解释为什么XRP与STR相比与其他加密货币的关联性更强。
快速插件-我是Chipper的一名贡献者,Chipper是一家非常早期的初创公司,其使用Stellar的目的是破坏非洲的微型汇款。
到你了
然而,这种解释很大程度上是推测性的。也许你可以做得更好。有了我们在这里创建的基础,有数百种不同的途径可以继续搜索数据中的故事。
这里有一些想法:
将更多加密货币的数据添加到分析中。调整相关性分析的时间框架和粒度,以获得更精细或粗略的趋势视图。搜索交易量和/或区块链挖掘数据集的趋势。如果您想预测未来的价格波动,则买入/卖出交易量比率可能比原始价格数据更相关。添加有关股票,商品和法定货币的定价数据,以确定哪些与加密货币相关。使用事件注册表,GDELT和GoogleTrends来量化围绕特定加密货币的“嗡嗡声”量。训练数据的预测性机器学习模型以预测未来的价格。如果你更有野心,你甚至可以尝试用循环神经网络来做这件事。使用您的分析,在Poloniex或Coinbase等交易网站上使用各自的交易API创建自动化的“交易机器人”。小心:一个糟糕的交易机器人是一个简单的方法来快速损失你的钱。分享您的发现!比特币和一般加密货币的最佳部分是它们的分散性使它们比其他任何资产更自由和民主。开源你的分析,参与社区,也许写一篇关于它的博客文章。
Python版本的笔记本可以在这里找到。
希望现在你有能力进行自己的分析并批判性地思考你将来可能阅读的任何猜测性的加密货币文章,特别是那些没有任何数据的文章来备份所提供的预测。
感谢您的阅读,如果您对本教程有任何想法,建议或批评,请在下面评论。如果您发现代码存在问题,您也可以在此处的Github存储库中随意打开问题。
我已经在作品中获得了第二个部分,这些作品很可能会沿用上面列出的一些想法,因此请在未来几周内继续关注。
标签:比特币加密货币BTC比特币中国官网联系方式40亿比特币能提现吗比特币最新价格行情走势加密货币是什么意思啊加密货币市场还有未来吗知乎全球十大加密货币BTCs是不是黄了btc钱包官网btc
2018年6月1日,刚刚诞生一天的AISI爱思币马不停蹄上线交易所YEX,短短一天AISI一飞冲天.
1900/1/1 0:00:00汹涌的乌鲁班巴河水倾泻而下,孕育了印加文明,也被印加人视为母亲河。作为亚马逊河的上游,从秘鲁东南部的安第斯山区发源,经库斯科流向马丘比丘,印加人称其为“圣河”.
1900/1/1 0:00:00比原矿机大家都陆陆续续开工了,比原这次营销最成功的应该就是让很多散户都去买了这个机器,那么问题来了。散户都没有自己的矿场,只能把机器放在家里或者办公室里.
1900/1/1 0:00:00Qtum量子链创始人帅初在2018APEC未来之声青年创新论坛上发表讲话。中国青年网记者李沛然摄中国青年网北京5月29日电(记者李沛然)“青年人要有拥抱变化的心态,不断提升自己的语言水平,有强烈.
1900/1/1 0:00:00市场情况 市场上涨性能不足,截止发文前,BTC报价9125美元,ETH报价为664.2美元,更多详细数据直接登陆币今网查看.
1900/1/1 0:00:00二道桥市场 新疆币是什么玩意儿?有人听说过吗,最近听朋友说是,很是好奇!据说新疆币属于“老精稀的”品种,加之年代已久,品相完美的少之又少.
1900/1/1 0:00:00