日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

快速获取csv数量_【数量技术宅|数据爬虫系列分享】如何获取免费的数字货币历史数据...

發布時間:2023/12/2 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 快速获取csv数量_【数量技术宅|数据爬虫系列分享】如何获取免费的数字货币历史数据... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

更多精彩內容,歡迎關注公眾號:數量技術宅

數字貨幣歷史數據的重要性

以BTC、ETH為代表數字貨幣作為一個新興市場,散戶參與度高、市場效率低,表現在價格上時常會走出高波動率,和一大波的趨勢行情。相比較股票、期貨市場,數字貨幣更容易開發出實盤盈利能力強的量化投資策略。

我們研究量化策略,拿到歷史數據進行回測,是第一步。然而,主流的金融平臺、三方回測平臺,幾乎都不提供數字貨幣的歷史數據,例如萬德并不提供OKEX、火幣、幣安等大交易所的數字貨幣歷史數據。

此外,數字貨幣的數據,特別是高頻數據,數據量極大,數字貨幣Tick數據,最高推送頻率可達到每秒10筆,每筆150檔買賣盤口,相比較股票市場3秒/筆,以及期貨市場的0.5秒/筆的推送頻率,可謂是快了很多。第三方平臺也很難支持如此大規模、大容量歷史數據的讀取。因此,我們研究數字貨幣量化投資策略,第一步也是最關鍵的一步,需要自行收集數字貨幣的歷史數據,如果收集的是Tick數據,則還要配備大容量的數據存儲設備。

大周期(日線、小時)K線數據的獲取

如果策略僅僅需要相對大周期的數字貨幣歷史數據進行測試,幸運的是,我們可以從一個http://www.cryptodatadownload.com的地址免費的下載到大周期的歷史K線數據。該網站提供了免費的日線、小時線的數字貨幣K線數據的下載,數據格式是很友好的csv格式,可以直接用Python的Pandas庫讀入進行下一步的處理。

網站覆蓋了主流的歐美、亞太的數字貨幣交易所,例如CoinBase、Bitfinex、幣安、OKEX等等。我們以Bitfinex為例,提供了BTC/USD、ETH/USD、LTC/USD、LTC/BTC、XRP/BTC這5個主流貨幣對的日線以及小時線的K線數據。

我們從Bitfinex交易所提供的數字貨幣品種中,隨機選擇一個BTC/USD的小時線數據下載,打開下載好的csv文件可以看到,數據包含了我們進行量化策略研究所需要的完整K線數據字段:時間、開盤價、最高價、最低價、收盤價以及成交量,我們再將該數據讀入Pandas,就能進入下一步策略研發階段了。

利用Python第三方API獲取任意周期K線、Tick歷史數據

如果在我們的策略中,要用到比小時K線更精確的數據顆粒,我們就需要調用API來開發數據接收程序了。我們先來看一個強大的Python第三方API:CCXT。CCXT是一個支持全球120余家主流數字貨幣交易所的jsp、python、php的三方庫。在github搜索CCXT,即可查看、下載該三方庫的源代碼以及說明文檔。

CCXT的安裝,我們以技術宅大部分粉絲熟悉的Python為例,只需要在控制臺或Anaconda中輸入pip install ccxt(必要時更換更快速的安裝源)即可完成安裝。

安裝后import ccxt,并print(ccxt.exchanges),如果控制臺打印出了一系列ccxt支持的交易所的名稱,說明此時ccxt已經成功安裝。

我們使用ccxt,能夠獲取到三種類型的行情數據:OrderBook、PriceTicker、KLine。ccxt接口對于這三類數據,都采用Rest的獲取方式,即請求1次、返回1條最新數據信息。

首先來看OrderBook(訂單簿)的數據獲取。通過CCXT的幫助文檔,我們可以查到應該調用API中的哪個方法,來獲取OrderBook,而OrderBook獲取方法所返回的數據結構,是怎么樣的。

通過API的幫助文檔,我們知道應該使用fetch_order_book的方法,傳入我們相要獲取的數字貨幣幣種symbol作為參數,而返回的是帶有'bids'、‘asks’、'datatime'等關鍵數據字段的dict格式的數據。我們自行編寫Python代碼并print驗證。

我們在測試代碼時,獲取huobipro(火幣網)所有數字貨幣幣種Orderbook數據并打印,從打印結果來看,我們成功取到了所有的Orderbook數據,并且返回的數據結構也與說明文檔中一致。

接著來看PriceTicker (逐筆數據)的獲取方式,同樣先找到幫助文檔對應的API函數、并閱讀返回結構。

同樣以火幣pro為例,我們調用API文檔所提示的函數(方法),獲取BTC/USDT的Ticker數據。

對于Tick數據,由于包含的字段較多,返回的數據內容也相應較長,我們同樣將其print出來以驗證數據結構。

最后一種ccxt支持的數據獲取類型是k線數據的獲取,我們同樣查詢API文檔,其對應的方法是fetch_ohlcv的方法。該方法傳入兩個參數,分別是所要獲取數據的數字貨幣品種,以及獲取數據所對應的K線周期。在獲取到K線數據后,我們將其轉換為pandas的DataFrame標準數據格式,并將最終的結果存入csv文件。后續的回測模塊只需要讀取該數據即可。

如果不存儲csv文件,我們同樣可以將所返回的數據打印出來,以此來驗證我們使用接口的方法,是正確的。

利用交易所API,直接獲取交易所推送數據

由于ccxt免費獲取數據,只支持Rest的模式,即請求1次、返回1次對應的數據。如果我們請求數據的頻率低于數據發送的頻率,或是請求由于網絡問題未送達ccxt,就可能造成行情數據的缺失,特別是收集高頻數據的時候,數字貨幣最高0.1秒/筆的合約高頻數據,該問題將無限放大。

因此,收集中、高頻數據的最佳途徑,是數字貨幣交易所提供的API。數字貨幣交易所的直連API,提供除Rest以外的另一種訂閱模式:Websocket。Websocket模式只需要一次訂閱,數據更新即推送,接收到的數據質量相比較Rest更高。

本文技術宅以OKEX交易所的Python API接口為例,OKEX的API說明可以參考交易所在github發布的幫助文檔。

OKEX交易所的Websocket demo程序已經為我們定義好了基礎的功能函數。我們對接API開發,只需要調用功能函數,確定需要訂閱的行情內容,就可以立即用python接收到交易所推送的Websocket行情數據。我們以OKEX交易所Websocket接口,獲取ETH-USDT的Tick數據為例,一次訂閱,實現數據的不斷推送,為檢查數據推送功能是否正確,我們將接收到的Tick數據打印在控制臺,當然有興趣使用該數據做回測的同學,也可以將接收到的數據,落地到本地的數據庫。

以上,就是我們本文分享的所有內容。總結一下,對于數字貨幣大周期的K線,我們可以采用三方網站直接下載獲取,而對于小周期的K線、甚至是Tick數據,更推薦大家使用ccxt、或交易所API獲取。

如果對本次技術宅分享的內容感興趣或有疑問,歡迎評論區留言與小編交流。


“數量技術宅”往期分享干貨

數量技術宅:【數量技術宅|量化投資策略系列分享】擺脫打工人命運之成熟交易者期貨持倉跟隨策略?zhuanlan.zhihu.com數量技術宅:多周期共振量化交易策略?zhuanlan.zhihu.com數量技術宅:為什么中證500(IC)是最適合長期做多的股票指數?zhuanlan.zhihu.com數量技術宅:大宗商品現貨數據不好拿?商品季節性難跟蹤?Python爬蟲一鍵解決沒煩惱?zhuanlan.zhihu.com數量技術宅:【數量技術宅|金融數據分析系列分享】如何正確抄底商品期貨、大宗商品?zhuanlan.zhihu.com數量技術宅:【數量技術宅|量化投資策略系列分享】股指期貨IF分鐘波動率統計策略?zhuanlan.zhihu.com數量技術宅:【數量技術宅 | Python爬蟲系列分享】實時監控股市重大公告的Python爬蟲?zhuanlan.zhihu.com

總結

以上是生活随笔為你收集整理的快速获取csv数量_【数量技术宅|数据爬虫系列分享】如何获取免费的数字货币历史数据...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。