三種取得比特幣價格數據的實用方法

更新於 發佈於 閱讀時間約 7 分鐘

筆者在前幾篇文章中經常提到回測各種策略在比特幣的表現,但筆者忽略了有些讀者不知從何獲取比特幣價格數據,進而無法進行回測。筆者將介紹2種可以獲取比特幣價格數據的方式,讀者請自行選擇能夠解決你個人需求的方式。

第一種方式:從網站上下載


網站1:investing.com

raw-image


在蒐索欄中輸入"BTC/USD"就會出現以上選擇,根據你想要那家交易所的比特幣價格進行選擇,不同交易所的比特幣價格都會有些微差距,數據來源最好選擇你用來進行交易的交易所。

raw-image


具體步驟:

  1. 點擊 "GENERAL"
  2. 選擇“Historical Data”
  3. 選擇你想要獲取那個時間段的比特幣價格數據 (僅支持日,週,月)
  4. 設置獲取比特幣數據的範圍
  5. 下載數據
  6. 打開下載好的EXCEL後,裡麵的數據是從新到舊排序,讀者需要自行處理數據。


優點

  • 操作簡單,容易上手。
  • 僅支持比特幣幣本位數據(BTC/USD)


缺點

  • 無法獲取分鐘,小時級別的比特幣數據。
  • 無法獲取比特幣U本位的數據(BTC/USDT)。
  • 如讀者想要獲取其他虛擬貨幣的價格數據,可能此網站沒有提供該幣種價格數據。


網站2:https://data.binance.vision/

第一步:筆者可以自行選擇需要的數據如

raw-image

期貨數據 - futures

期權數據 - option

現貨數據 - spot


第二步:選擇U本位或幣本位

raw-image

cm : COIN-Margined (COINM) 也可以稱之爲“幣本位”, "BTC/USD"

um : USDⓂ-Margined (USDM) 也可以稱之爲“U本位”, "BTC/USDT"


第三步:選擇數據範圍

raw-image

daily 就是 1天的數據 (這裡的1天不是指你想要獲取的數據的時間級別,而是指時間範圍)

1天有24小時,假設讀者在這裡選擇daily,下下一步才是選擇你想要獲取的數據的時間級別,假設讀者在下下一步選擇1h,那你最後下載的EXCEL就會有24根1小時的K線數據


以此類推,monthly 就是 一個月的數據 (這裡的1個月不是指你想要獲取的數據的時間級別,而是指時間範圍)

1個月有720小時,假設讀者在這裡選擇monthly,下下一步才是選擇你想要獲取的數據的時間級別,假設讀者在下下一步選擇1h,那你最後下載的EXCEL就會有720根1小時的K線數據


第四步:選擇數據類型

raw-image

價格數據爲“KLINES", 如讀者對其他的數據感興趣,請自行研究~


第五步:選擇幣種

raw-image

筆者將以比特幣數據進行示範:

raw-image

選擇後麵沒有帶日期的,BTCUSDT/ 代表着永續合約。有日期的代表着交割合約,想必有接觸股票的讀者應該比筆者還熟悉交割合約吧!而這也是虛擬貨幣和股票的不同之處。


第六步:選擇數據的時間級別

raw-image

這次則是筆者想要獲得的時間範圍了,按需求自行選擇:

h - hour - 小時

m - minute - 分鐘


第七步:下載ZIP FILE(後麵沒有CHECKSUM的)

raw-image

經過以上步驟,讀者便可獲取比特幣數據。


優點

  • 可以獲取所有虛擬貨幣的價格數據(數據源 - 幣安Binance)。
  • 可以獲取所有分鐘至小時級別的數據。


缺點

  • 假設讀者需要大範圍的數據,讀者需自行拼接數據。


當然,讀者能堅持閱讀到這裡,想必是有此需求或者想了解如何解決上方方法的痛點。

接下來筆者將介紹第二種獲取比特幣價格數據的方式,並且其能完美解決上方所述方法的痛點。


第二種方式:通過HTTP請求,跟交易所拿數據


這一步驟需要通過PYTHON代碼來實現。假設讀者具有PYTHON代碼能力,可以直接看步驟三。新手讀者則需自行去安裝PYTHON在自己的電腦上,可以考慮安裝3.12.4之後的PYTHON版本,並選擇且安裝一個你喜歡的PYTHON IDE。(YOUTUBE上很多教程喲~)


假設讀者已經安裝好python和 python IDE後,你可以創建一個PYTHON FILE在你安裝的PYTHON IDE 如: Vscode,Pycharm,Jupyter notebook, Spyder等以便安裝庫(INSTALL PACKAGES).

步驟一:通過CMD進行安裝庫的操作 (FOR WINDOWS ONLY) / 在IDE創建虛擬環境後在terminal 輸入以下指令進行安裝。

  • 先安裝PIP:python get-pip.py
  • 然後 PIP INSTALL PANDAS
  • 和 PIP INSTALL REQUESTS


步驟二: 導入庫

import requests 
import datetime 
import pandas as pd


步驟三:在幣安API文檔找到接口 (相當於流浪者想跟收容所討飯吃,流浪者也需要知道收容所會在何地給予食物),接口就是交易所的地址,獲取K線數據 = 跟交易所討飯吃

base endpoint is: https://fapi.binance.com 這個是U本位期貨數據的總接口。


下方圖片展示出了獲取K線數據的接口“/fapi/v1/klines”,需要通過GET請求獲取。

raw-image


*總接口: https://fapi.binance.com是所有關於U本位期貨數據

*K線數據的接口“/fapi/v1/klines”是U本位期貨數據中的其中一個數據罷了


raw-image

運行上方代碼後會打印出 “200“

若打印出 “ConnectTimeout: HTTPSConnectionPool(host=''fapi.binance.com'', port=443): Max retries exceeded with url: /fapi/v1/klines?symbol=BTCUSDT&interval=1h&limit=1000 (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x00000214748FDA60>, ''Connection to fapi.binance.com timed out. (connect timeout=None)''))”的情況,請使用VPN,並將地區轉換爲日本,再重新運行代碼。


讀者可根據自己的需求,在INTERVAL選擇所需要的時間級別,獲取對應的K線數據。


步驟四:獲取最新1000條K線數據

raw-image


步驟五:通過WHILE LOOP進行分頁請求,以便一次性獲取指定範圍的數據。


最後,將數據存儲爲CSV FILE / JSON 文件就好啦。

# 將過濾後的數據保存爲CSV文件 
df.to_csv('BTCUSDT_1h.csv', index=False)
print("數據已成功保存爲CSV文件")


閱讀到這裡的讀者,筆者是否有解決到你所麵對的睏境呢?

有的話,請給此文章按一個大大的愛心並追踪筆者。

您的支持就是我保持更新的最大動力喲~

(若想直接獲取完整的代碼,請聯繫筆者)

留言
avatar-img
留言分享你的想法!
avatar-img
Liang Yuan | 程式交易
0會員
6內容數
分享本人做过的数据回测,策略思路,踩过的坑等等。主要与虚拟货币相关。
2025/03/28
本文探討成交量加權平均價格 (VWAP) 的使用方法,並分享使用 VWAP 作為交易策略的回測結果,包含三種不同方法:價格與 VWAP 比較、價格與 VWAP 比率,以及 VWAP 線的交叉。
Thumbnail
2025/03/28
本文探討成交量加權平均價格 (VWAP) 的使用方法,並分享使用 VWAP 作為交易策略的回測結果,包含三種不同方法:價格與 VWAP 比較、價格與 VWAP 比率,以及 VWAP 線的交叉。
Thumbnail
2025/01/12
佈林帶通道(BOLLINGER BAND)是一種廣泛使用的技術分析指標,本文將詳細剖析其原理、使用方法及優缺點,並結合比特幣期貨回測結果,提供最佳參數設定及交易策略建議。
Thumbnail
2025/01/12
佈林帶通道(BOLLINGER BAND)是一種廣泛使用的技術分析指標,本文將詳細剖析其原理、使用方法及優缺點,並結合比特幣期貨回測結果,提供最佳參數設定及交易策略建議。
Thumbnail
2025/01/03
开始前,笔者想对各位读者说:“如果您的2024年是遗憾收尾,希望您能放下执念,不要沉沦在记忆里,在2025年,突破自己,活出自己向往的样子。反之,如果您的2024年是完美收官,祝愿您在2025年在原有的基础上更上一层楼。祝各位读者在新的一年中事业顺利,身边的家人与朋友平平安安,健健康康,与伴侣长
Thumbnail
2025/01/03
开始前,笔者想对各位读者说:“如果您的2024年是遗憾收尾,希望您能放下执念,不要沉沦在记忆里,在2025年,突破自己,活出自己向往的样子。反之,如果您的2024年是完美收官,祝愿您在2025年在原有的基础上更上一层楼。祝各位读者在新的一年中事业顺利,身边的家人与朋友平平安安,健健康康,与伴侣长
Thumbnail
看更多