比特幣市場的行為如何?加密貨幣價值突然出現高峰和低谷的原因是什么?不同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筆記本,我們要做的第一件事就是導入所需的依賴關系。
數據:超半數的拉丁美洲公民進行過加密交易:金色財經報道,根據萬事達的數據,拉丁美洲地區51%的消費者至少進行過一次加密交易。根據Chainalysis發布的2022年全球加密貨幣采用指數,巴西、阿根廷、哥倫比亞和厄瓜多爾位居加密貨幣采用數量最多的前20個國家之列。
通過Bored Ape Yacht Club或CryptoPunks等項目,NFTs已經接觸到了發達國家的主流受眾,這些項目現在已經成為非常受歡迎的收藏品。相比之下,拉丁美洲的公司正在投資非功能性的用例,如支持當地藝術家、允許客戶轉售機票或捐贈給非營利組織。(coindesk)[2022/10/29 11:54:48]
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生成完全交互的圖表。這些圖表具有吸引人的視覺默認值,易于探索,并且非常易于嵌入網頁。
數據:超過9.4萬個比特幣地址持有至少價值100萬美元的BTC:Glassnode數據顯示,超過94000個比特幣地址持有至少價值100萬美元的BTC 。[2021/2/18 17:24:55]
作為快速的完整性檢查,您應該將生成的圖表與公開可用的比特幣價格圖表進行比較,以驗證下載的數據是否合法。
第2.3步-從更多BTC交易所獲取定價數據
您可能已經注意到此數據集中存在一些問題-特別是在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)
中國銀行原行長李禮輝:我國是數據資源大國 但區塊鏈底層技術仍缺乏自主產權:9月17日,中國北京國際科技產業博覽會·“中國區塊鏈發展論壇”在北京召開。中國互聯網金融協會區塊鏈工作組組長、中國銀行原行長李禮輝在演講中表示,由數字技術引領的鏈接機制、信任機制和競爭機制的變革,將是一個重構進程。我們應該積極應對數字化轉型面臨的挑戰。他指出,挑戰分為兩個方面,首先是區塊鏈技術瓶頸有待突破,目前,各個國家均未實現區塊鏈技術的大規模應用,我國的區塊鏈技術研發致力于突破規模化可靠應用的瓶頸;其次是核心數字技術短板有待補強,我國是數據資源大國和數字化市場大國,但在全球數字技術版圖上尚未建立地緣競爭優勢,在區塊鏈的共識機制、智能合約等底層技術上,我國目前缺乏自主產權。另外,還應加快數字金融制度建設,抓緊制定區塊鏈金融監管、數字資產市場監管、數字貨幣監管、法定數字貨幣發行等數字金融制度,逐步建立數字信任機制。具體而言,應抓緊完善關于區塊鏈技術、區塊鏈金融的標準、安全規范和認證審核制度。在法律上,應該明確數字資產的法律定義,明確智能合約的合同性質及其有效性,明確分布式架構下的責任主體及其行為規范和監管標準。(新浪財經)[2020/9/17]
為了簡潔起見,我不會過多介紹這種幫助功能的工作原理。如果您想了解更多信息,請查閱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
獨家 | Bakkt期貨合約數據一覽:金色財經報道,Bakkt Volume Bot數據顯示,2月25日,Bakkt比特幣月度期貨合約單日交易額為1418萬美元,環比下降27%;未平倉合約量為1171萬美元,環比下降2%。[2020/2/26]
現在我們有一個包含9個數據框的字典,每個字典都包含阿爾特幣和比特幣之間的歷史日均交易價格。
我們可以預覽以太坊價格表的最后幾行,以確保它看起來不錯。
altcoin_data.tail()
關
高
低
打開
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
動態 | Weiss Ratings:V神的新數據遷移提議技術細節仍有待解決:加密貨幣評級機構Weiss Ratings發推稱:“V神提出了一種將數據遷移到#ETH 2.0的更快方法,這意味著人們期待已久的升級可能會比預期來得更早。在ETH 2.0系統中把ETH 1.0變成一個分片的想法非常簡單。不過,技術細節仍有待解決。”注:在12月23日的Ethresear.ch提案中,V神提出了一種將數據遷移到以太坊 2.0的更快方法,這意味著期待已久的升級可能比預期的要快。V神描述了一種消除Ethereum 1.0當前工作證明區塊鏈的方法,這將允許項目“加速進度”與Ethereum 2.0的信標鏈合并。但目前還不清楚這一過渡將在何時實施。[2019/12/25]
corr()
方法來測試我們的相關假設,該方法計算數據幀中每列與每個列的Pearson相關系數。
修訂注意事項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
近年來,隨著智能手機的不斷發展進步,手機市場的細分程度日益加劇,各細分市場趨于飽和,智能手機的同質化日趨嚴重,同一細分領域很難再取得突破性進展,尋求新的手機細分市場成為行業共識.
1900/1/1 0:00:00不久前,聽聞新上的《反貪風暴3》中出現了數字貨幣的橋段,就是這個:我心想,難道數字貨幣要借電影的外殼進入尋常百姓家了?在幣市遇熊,韭菜離場的現在,這條“廣告”打得讓人有點小激動.
1900/1/1 0:00:002018年8月22日,由知密大學與巴比特聯合比特大陸、幣看、NULS、隕石財經在重慶工商大學學豪酒店主辦的“密碼貨幣、通證與無幣區塊鏈”學術研討會成功舉行.
1900/1/1 0:00:00本文將主要討論知識圖譜在風控領域的圖譜構建過程。enjoy~一.知識圖譜和金融領域簡述 什么是知識圖譜? 借鑒其中一個理解: 知識圖譜主要的目標是用來描述真實世界中間存在的各種實體和概念,以及它.
1900/1/1 0:00:00現如今像55.com、60.com、XW.com、FN.com、ZG.com、ZB.com這種的極品大米,幾乎都被區塊鏈項目,或者數字貨幣相關的平臺啟用,但這類域名的資源畢竟少數.
1900/1/1 0:00:00在皇馬國王杯對陣梅利亞的比賽中,皇馬新星維尼修斯在第一次首發并制造兩球,為皇馬取得久違的大勝。賽后,《馬卡報》發起皇馬鋒線首發的投票,或許是皇馬球迷出于對皇馬黑色十月的失望,維尼修斯獲得了87%.
1900/1/1 0:00:00