比特幣市場的行為如何?加密貨幣價值突然出現高峰和低谷的原因是什么?不同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筆記本,我們要做的第一件事就是導入所需的依賴關系。
數據:某巨鯨從Aave贖回22萬枚ETH并轉入Bitfinex:11月15日消息,鏈上數據觀察者The Data Nerd監測顯示,12小時前某巨鯨地址向Aave償還了約1億美元,取回了22萬枚ETH(約2.75億美元)抵押品,然后該地址將22萬枚ETH發送至加密交易平臺Bitfinex。
分析稱,由于該地址曾從Circle接收USDC,并使用Genesis OTC席位,因此推測可能為機構地址。[2022/11/15 13:07:09]
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交易所獲取定價數據
DeFiBox數據播報:DeFi 總鎖倉量持續回升,DEX交易量回暖:據DeFi 門戶DeFiBox.com實時數據顯示,DeFi 市場鎖倉量達到250億美元,總鎖倉量出現持續回升狀態,已逼近260.4億的歷史高位。DEX 24小時交易量為27.3億美元,交易熱度回暖。[2021/1/14 16:11:07]
您可能已經注意到此數據集中存在一些問題-特別是在2014年末和2016年初,有一些明顯的下降峰值。這些峰值特定于Kraken數據集,我們顯然不希望它們反映在我們的整體定價分析。
比特幣交易所的性質在于定價取決于供求關系,因此沒有單一交易所包含真正的比特幣“主價”。為了解決這個問題,以及可能由于技術中斷和數據集故障導致的下降峰值,我們將從另外三個主要比特幣交易所獲取數據,以計算總比特幣價格指數。
首先,我們將從每個交易所下載數據到數據框字典中。
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)
數據:十月份網絡病中挖礦木馬占多數 感染呈正常波動態勢:11月6日消息,騰訊安全大數據顯示,惡意家族活躍趨勢在十月下旬有一次明顯上升過程,2天后攻擊回落到日常水平。十月份是挖礦木馬一邊倒領先。在前10大惡意家族中,有7個是挖礦木馬家族,另3個僵尸網絡團伙,也會控制肉雞電腦進行挖礦活動。10月挖礦木馬感染呈正常波動態勢,月初受假日影響,辦公電腦開機率低,病感染也較低,之后略有上升。(騰訊安全威脅情報中心)[2020/11/6 11:52:19]
為了簡潔起見,我不會過多介紹這種幫助功能的工作原理。如果您想了解更多信息,請查閱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()
關
高
數據:比特幣1年移動平均線下歷史新高:比特幣的1年(365日)移動平均線剛創下歷史新高,超過了2017年牛市行情后創下的新高。截至發稿時,比特幣價格低于9500美元,距離其歷史最高水平仍然很遠。加密貨幣分析師The Moon在推特表示,如果只關注1年平均價格,就能屏蔽掉噪音;年移動平均線創下歷史新高,這對未來是看漲的。有網友回復稱,其年度BTC價格走勢是雙頂,這通常是非常看跌的指標。[2020/5/16]
低
打開
quoteVolume
卷
加權平均
日期
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相關系數。
動態 | 北京互聯網法院區塊鏈證據平臺三個月采集數據已超百萬條:據中國法院網消息,截止到12月22日,北京互聯網法院區塊鏈證據平臺“天平鏈”在線證據采集的數據超過了100萬條。當事人通過電子訴訟平臺提交的材料全部通過“天平鏈”進行了存證,截至目前存證材料數已達187623條,驗證證據文件316個。據了解,北京互聯網法院“天平鏈”是由北京互聯網法院主導,與工業和信息化部國家信息安全發展研究中心、百度等企業共建的電子證據平臺。[2018/12/23]
修訂注意事項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存儲庫中隨意打開問題。
我已經在作品中獲得了第二個部分,這些作品很可能會沿用上面列出的一些想法,因此請在未來幾周內繼續關注。
Tags:比特幣加密貨幣BTC比特幣中國官網聯系方式40億比特幣能提現嗎比特幣最新價格行情走勢加密貨幣是什么意思啊加密貨幣市場還有未來嗎知乎全球十大加密貨幣BTCs是不是黃了btc錢包官網btc
GOSON高森知識問答:如何理解“智能合約”?GOSON高森解答:本節將為大家解釋“智能合約”、“以太坊”及“通證”三個專業概念.
1900/1/1 0:00:00熱情奔放的弗拉門戈,英勇無畏的斗牛士,耀目陽光下的西班牙。高聳的比利牛斯山脈阻斷了歐洲大陸南下的冷空氣,也造就了獨一無二的西班牙——張揚,熱烈,痛快淋漓.
1900/1/1 0:00:00來源:鏈得得 “幣圈一日,世上一年”,數字貨幣行業正處在急劇的變化和動蕩之中,面對這股潮流,既有機遇,更有陷阱.
1900/1/1 0:00:00不久前,聽聞新上的《反貪風暴3》中出現了數字貨幣的橋段,就是這個:我心想,難道數字貨幣要借電影的外殼進入尋常百姓家了?在幣市遇熊,韭菜離場的現在,這條“廣告”打得讓人有點小激動.
1900/1/1 0:00:00本月早些時候,世界領先的氣候科學家發布了迄今為止關于氣候變化的最緊急警告。它描述了我們當前變暖軌跡的影響,包括可怕的食物短缺、大規模的人類遷徙,以及從珊瑚礁大規模死亡到日益極端的天氣事件等各種危.
1900/1/1 0:00:00編者按:本文來自“網易科技”,原標題:ItWasMeanttoBetheBetterBitcoin.It’sDownNearly90%,編譯:樂邦,36氪經授權轉載.
1900/1/1 0:00:00