当前位置:主页 > 区块链 > 比特币 > 比特币历史价格数据下载指南

如何下载比特币历史价格数据(分步指南)

2025-09-24 11:09:56 | 来源: | 作者:佚名
比特币历史价格数据不仅仅是图表上的数字,更是回测策略、洞察市场周期、理解投资者行为,甚至驱动应用程序或研究工具的基础,可靠的数据有助于交易者验证决策,在本指南中,我们将介绍使用 CoinGecko 资源下载比特币历史价格数据的两种实用方法,一起来参考一下吧

比特币拥有悠久而丰富的交易历史,使其成为全球分析最多的资产之一。历史价格数据不仅仅是图表上的数字,更是回测策略、洞察市场周期、理解投资者行为,甚至驱动应用程序或研究工具的基础。可靠的数据有助于交易者验证决策,研究人员检验理论,开发者构建用户信赖的功能。

在本指南中,我们将介绍使用 CoinGecko 资源下载比特币历史价格数据的两种实用方法:

  • 直接从 CoinGecko 上的比特币页面导出(无需代码)。
  • 使用CoinGecko API在电子表格或代码中实现自动访问。

最后,您将能够检索比特币的过去价格,无论您是需要快速的 CSV 文件进行分析还是需要为您的项目提供自动数据馈送。

如何下载比特币历史价格数据(分步指南)

如何以 Excel 或 CSV 格式下载比特币历史数据?

下载比特币历史数据的最快方法是直接从 CoinGecko比特币历史数据页面下载。此方法非常适合需要 CSV 或 Excel 电子表格格式的数据进行快速一次性分析的用户,因为无需注册或登录账户。

如果您需要更细粒度的数据,CoinGecko API 提供了/coins/{id}/market_chart/coins/{id}/ohlc等端点,用于获取历史价格和 OHLC 数据。

如何从 CoinGecko 网站下载比特币历史数据

按照这些简单的步骤,只需单击几下即可下载数据。

步骤 1:导航到 CoinGecko 上的比特币硬币页面,然后单击“历史数据”选项卡。

第 2 步:从可用选项中选择所需的时间范围(例如,过去 7 天、30 天、1 年或自定义日期)。

步骤 3:在数据表的右上角,单击下载图标,然后选择将数据下载为CSVXLS文件,如下所示:

如何下载比特币历史价格数据(分步指南)

下载后,该文件可在任何电子表格软件(例如 Excel 或 Google Sheets)中打开。数据已预先格式化,并带有清晰的列标题(日期、市值、交易量、价格),方便您创建图表、运行计算或导入其他工具。

以下是 Microsoft Excel 中导出数据的示例:

如何下载比特币历史价格数据(分步指南)

如何使用 CoinGecko API 下载比特币历史数据?

对于可重复的工作流程、精确的时间窗口或可按需刷新的数据,CoinGecko API是理想的解决方案。它允许您将比特币的历史价格直接提取到电子表格或项目中,用于分析、仪表板或回测交易策略。

使用 API 的主要方式有两种:

  • 无代码:将数据直接导入 Google 表格或 Excel。
  • 使用代码:使用 Python、JavaScript、PHP 等语言以编程方式获取数据。

两种方法都需要 CoinGecko API 密钥。如果您没有,请按照本指南获取免费的演示 API 密钥。在本指南中,比特币的 API 币种 ID 很简单bitcoin

在 Google 表格或 Excel 中下载比特币历史数据(无需代码)

如果您更喜欢无代码方法,可以使用 CoinGecko API 将比特币的历史价格数据直接提取到 Google 表格或 Excel 中。这样,您无需任何编程即可分析、绘制图表和共享数据。

Google 表格

您可以使用免费的 API 连接器扩展来提取数据。

安装 API 连接器:从 Google Workspace Marketplace 添加“Mixed Analytics 的 API 连接器”扩展。

创建新请求:在扩展中,创建一个新请求并输入历史数据的 CoinGecko API 请求 URL:

演示 API:

https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=30&interval=daily&precision=full?x_cg_demo_api_key=YOUR_API_KEY

专业 API:

https://pro-api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=30&interval=daily&precision=full?x_cg_pro_api_key=YOUR_API_KEY

运行请求:执行请求将数据拉入当前工作表并以所需的格式下载数据。

要获得带有屏幕截图的详细演练,请阅读有关如何 将加密货币价格导入 Google 表格的完整指南。

Microsoft Excel:

Excel 内置的 Power Query 工具可以直接从 API 获取数据。

打开 Power Query:在 Excel 中,转到“数据”选项卡并选择“来自 Web”。

输入API URL:在对话框中输入API请求URL:

演示 API:

https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=30&interval=daily&precision=full?x_cg_demo_api_key=YOUR_API_KEY

专业 API:

https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=30&interval=daily&precision=full?x_cg_demo_api_key=YOUR_API_KEY

转换和加载: Power Query 编辑器将打开,允许您将 JSON 响应转换为表格,然后将其加载到工作表中以供下载和导出。

要获得带有屏幕截图的详细演练,请阅读有关如何 将加密货币价格导入 Excel 的完整指南。

使用 Python 下载比特币历史数据 

对于更高级或自动化的用例,您可以通过编程方式获取数据。CoinGecko API 兼容任何支持 HTTP 请求的语言,但本指南使用 Python,因为它在数据分析领域非常流行。

API 端点和 URL

Demo 和 Pro API 的基本 URL 为:

  • 演示 API: https://api.coingecko.com/api/v3
  • 专业 API: https://pro-api.coingecko.com/api/v3

对于历史价格数据,我们将使用/coins/{id}/market_chart端点。此端点返回指定天数的价格、市值和 24 小时交易量。

在本节中,我们将介绍如何使用 Python 获取比特币的历史价格数据。

步骤 1:先决条件

1、安装 Python

从 python.org 下载。

建议使用3.7或以上版本。

通过在终端或命令提示符上运行以下命令来确认安装:

python --version 

2、创建虚拟环境

这样可以使依赖项保持清晰且特定于项目。首先,在终端或命令提示符中运行以下命令来创建环境:

python -m venv coingecko_env

接下来,使用适合您的操作系统的命令激活它:

  • Windows: coingecko_env\Scripts\activate
  • macOS/Linux: source coingecko_env/bin/activate

3、安装所需的软件包

在您的环境中,安装以下软件包:

  • 请求:允许您的程序进行 API 调用(通过网络发送和接收数据)。
  • Pandas:一个强大的库,用于处理和组织表格数据。我们将用它来整理 API 输出。
  • Openpxyl:一个允许 Pandas 写入 Excel 工作簿的库。
  • Pathlib:一个方便的标准库工具,用于检查文件是否已经存在。

pip install requests pandas openpxyl pathlib 

4、检查软件包是否正确安装

您可以通过运行以下命令来确认软件包是否已安装:

pip show requests pandas

第 2 步:管理您的 API 密钥

为了保证您的 API 密钥安全并且与您的代码分开,请将其存储在外部 JSON 文件中。

创建一个名为 api_keys.json 的文件并添加您的密钥,如下所示:

{
  "x-cg-demo-api-key": "YOUR_DEMO_API_KEY",
  "x-cg-pro-api-key": "YOUR_PRO_API_KEY"
}

步骤 3:设置密钥检索和 API 调用

安装先决条件并将 API 密钥安全地存储在适当的位置后,下一步是设置辅助函数 以确保:

  • 您的 API 密钥正在 正确加载。
  • 该程序可以成功与 CoinGecko API 通信。

首先,我们将设置辅助函数来加载 API 密钥并向 CoinGecko API 发出请求。get_Response ()函数将处理 API 调用,并将端点、标头和参数作为参数。这种模块化方法使代码保持简洁且可重用。

import json
from pathlib import Path
import requests as rq
import pandas as pd
import openpyxl  # required by pandas' ExcelWriter (engine="openpyxl")
PUB_DEMO_URL = "https://api.coingecko.com/api/v3"
PUB_PRO_URL  = "https://pro-api.coingecko.com/api/v3"
def get_demo_key():
    # CHANGE the path if your file is elsewhere
    with open(r"YOUR_KEYS_FILE_PATH", "r", encoding="utf-8") as f:
        key_dict = json.load(f)
    return key_dict.get("x-cg-demo-api-key")
def get_pro_key():
    with open(r"YOUR_KEYS_FILE_PATH", "r", encoding="utf-8") as f:
        key_dict = json.load(f)
    return key_dict.get("x-cg-pro-api-key")
def get_response(endpoint, headers=None, params=None, base_url=None):
    if not base_url:
        raise ValueError("base_url is required (use PUB_DEMO_URL or PUB_PRO_URL).")
    url = f"{base_url}{endpoint}"
    resp = rq.get(url, headers=headers, params=params, timeout=30)
    resp.raise_for_status()
    return resp.json()

专业提示:可在任何 API 请求中 重复使用get_Response()辅助函数。只需为每次调用提供特定的端点 (endpoint)、带有 Demo 或 Pro 键的标头 (headers )、 paramsbase_url作为参数即可。

步骤 4:测试 API 连接

在获取完整数据集之前,最好先测试一下你的设置。/ping端点是确认 API 密钥正常工作的简单方法。以下脚本会加载你的密钥,ping API,然后进行一次小型测试调用,以获取比特币的前两个数据点。

# 0) Load key and show last 4 chars so we know it loaded
key = get_Demo_key()
print("Loaded demo key (last 4):", (key or "")[-4:])
headers = {"accept": "application/json", "x-cg-demo-api-key": key}
base_url = PUB_DEMO_URL
# 1) Ping to Authenticate
ping = get_Response("/ping", headers=headers, base_url=base_url)
print("PING:", ping)
# 2) A small real call
params = {"vs_currency": "usd", "days": "7", "interval": "daily"}
mc = get_Response("/coins/bitcoin/market_chart", headers=headers, params=params, base_url=base_url)
print("First 2 prices:", mc.get("prices", [])[:2])

如果一切正常,您应该会看到如下所示的响应:

如何下载比特币历史价格数据(分步指南)

步骤5:获取比特币历史价格数据

现在,让我们使用/coins/{id}/market_chart端点来获取过去 7 天的历史数据。

其作用:

  • 通过 get_Response()调用按 ID 端点的硬币历史图表数据
  • 将 JSON 响应存储在 mc 中。
  • 确保定义key、headers、endpoint和params。
key = get_Demo_key()
headers = {"accept": "application/json", "x-cg-demo-api-key": key}
base_url = PUB_DEMO_URL
params = {"vs_currency": "usd", "days": "7", "interval": "daily"} #parameters to query upon, BTC daily data for the past 7 days
mc = get_Response("/coins/bitcoin/market_chart", headers=headers, params=params, base_url=base_url )

步骤 6:处理数据并将其下载到 Excel

API 响应会以单独的列表形式返回价格、市值和交易量。以下代码会处理这些原始 JSON 数据,将其组合成干净的 Pandas DataFrame,并将其保存到 Excel 工作簿中的工作表中。如果该文件已存在,它将替换该工作表,以便轻松重新运行脚本。

#Shape the data
def series_to_df(series, value_col):
    df = pd.DataFrame(series, columns=["ts_ms", value_col])
    df["date"] = pd.to_datetime(df["ts_ms"], unit="ms")
    return df[["date", value_col]]
df_price  = series_to_df(mc.get("prices", []),        "price_usd")
df_mcap   = series_to_df(mc.get("market_caps", []),   "market_cap_usd")
df_volume = series_to_df(mc.get("total_volumes", []), "volume_24h_usd")
df = (
    df_price.merge(df_mcap, on="date", how="left")
            .merge(df_volume, on="date", how="left")
            .sort_values("date")
            .reset_index(drop=True)
)[["date", "price_usd", "market_cap_usd", "volume_24h_usd"]]
# 3) Append to an existing workbook as a NEW sheet (or create if missing)
from pathlib import Path
out_path   = "crypto_market_data.xlsx"          # your master workbook
sheet_name = "btc_7d_usd"                       # name the sheet for clarity
if Path(out_path).exists():
    # Append; if the sheet already exists, REPLACE it (safer for reruns)
    with pd.ExcelWriter(out_path, engine="openpyxl", mode="a", if_sheet_exists="replace") as xw:
        df.to_excel(xw, index=False, sheet_name=sheet_name)
else:
    # Create the workbook and write the first sheet
    with pd.ExcelWriter(out_path, engine="openpyxl") as xw:
        df.to_excel(xw, index=False, sheet_name=sheet_name)
print(f"Saved sheet '{sheet_name}' in {out_path}")def series_to_df(series, value_col):
        df = pd.DataFrame(series, columns=["ts_ms", value_col])
        df["date"] = pd.to_datetime(df["ts_ms"], unit="ms")
        return df[["date", value_col]]
    df_price  = series_to_df(mc.get("prices", []),        "price_usd")
    df_mcap   = series_to_df(mc.get("market_caps", []),   "market_cap_usd")
    df_volume = series_to_df(mc.get("total_volumes", []), "volume_24h_usd")
    df = (
        df_price.merge(df_mcap, on="date", how="left")
                .merge(df_volume, on="date", how="left")
                .sort_values("date")
                .reset_index(drop=True)
    )[["date", "price_usd", "market_cap_usd", "volume_24h_usd"]]
    out_path   = "crypto_market_data.xlsx"  # your master workbook
    sheet_name = "btc_7d_usd"               # rename as you like
    mode = "a" if Path(out_path).exists() else "w"
    with pd.ExcelWriter(out_path, engine="openpyxl", mode=mode, if_sheet_exists="replace") as xw:
        df.to_excel(xw, index=False, sheet_name=sheet_name)
    print(f"Saved sheet '{sheet_name}' in {out_path}")

示例输出:

如何下载比特币历史价格数据(分步指南)

您可以通过更改以下变量来自定义输出:

  • value_col:重命名列(例如,“price_in_usd”)。
  • sheet_name:设置 Excel 工作表的显示方式(例如“btc_30d_eur”)。
  • out_path:选择用于保存 Excel 工作簿的文件名或文件夹。

专业提示:在开发过程中,运行脚本时最好保持 Excel 文件关闭,以避免写入错误。

如何下载其他加密货币的历史数据

虽然本指南以比特币为例,但同样的方法也适用于 CoinGecko 上数千种其他加密货币。要获取其他加密货币的数据,只需在 API 调用中替换货币 ID(例如,将“比特币”更改为“以太坊”或“solana”)。

您可以在CoinGecko 网站的任何单个硬币页面上找到 API ID  。

如何下载比特币历史价格数据(分步指南)

专业提示:币种 ID 区分大小写,多个币种可能使用相似的代码。为避免错误,请务必直接从 CoinGecko 网站或我们的 API 文档获取并使用正确的 ID 。

未来发展

通过访问历史数据,您可以构建各种强大的工具。对于想要进一步探索的读者,以下是一些相关指南:

结论

在本指南中,我们演示了两种从 CoinGecko 下载比特币历史数据的有效方法。从网站直接导出非常适合快速手动将数据提取到 CSV 或 Excel 文件中;而 CoinGecko API 则为使用 Google Sheets、Excel 或 Python 等工具的开发者和分析师提供了强大的编程解决方案。按照概述的步骤,您可以访问丰富的历史数据,以支持您的分析、回测策略以及构建 DeFi 应用程序。

虽然本文中使用的端点可以通过免费的 Demo API 密钥访问,但它仅提供最多 365 天的历史数据。如果您需要访问自 2013 年以来更精细的数据,并享受更高的速率限制以及专属端点的访问权限,请考虑订阅套餐。

以上就是如何下载比特币历史价格数据(分步指南)的详细内容,更多关于比特币历史价格数据下载指南的资料请关注脚本之家其它相关文章!

免责声明:本文只为提供市场讯息,所有内容及观点仅供参考,不构成投资建议,不代表本站观点和立场。投资者应自行决策与交易,对投资者交易形成的直接或间接损失,作者及本站将不承担任何责任。!
Tag:数据   历史价格   比特币  

你可能感兴趣的文章

更多

热门币种

  • 币种
    最新价格
    24H涨跌幅
  • bitcoin BTC 比特币

    BTC

    比特币

    $ 70899.98¥ 479425.66
    -3.86%
  • ethereum ETH 以太坊

    ETH

    以太坊

    $ 1999.46¥ 13520.34
    -0.37%
  • tether USDT 泰达币

    USDT

    泰达币

    $ 0.9984¥ 6.7511
    -0.04%
  • binance-coin BNB 币安币

    BNB

    币安币

    $ 691.29¥ 4674.5
    -1.57%
  • ripple XRP 瑞波币

    XRP

    瑞波币

    $ 1.2855¥ 8.6925
    -3.32%
  • usdc USDC USD Coin

    USDC

    USD Coin

    $ 1.0009¥ 6.768
    +0.02%
  • solana SOL Solana

    SOL

    Solana

    $ 80.6471¥ 545.33
    -2.28%
  • tron TRX 波场

    TRX

    波场

    $ 0.3418¥ 2.3112
    -2.54%
  • hyperliquid HYPE Hyperliquid

    HYPE

    Hyperliquid

    $ 74.4838¥ 503.65
    +1.56%
  • dogecoin DOGE 狗狗币

    DOGE

    狗狗币

    $ 0.1007¥ 0.6809
    -0.1%

币圈快讯

  • 日本自民党议员联盟提交Web3政策提案呼吁将区块链纳入国家战略

    2026-06-02 12:50
    日本自民党区块链推进议员联盟向财务大臣片山皋月提交政策提案,呼吁将区块链和Web3明确纳入国家战略。该提案涵盖税制改革、加密ETF、杠杆交易监管、无注册业者应对、加密货币战略及贸易物流等多个领域。其中,提案建议进一步研究加密资产“申告分离课税”与“源泉分离课税”的选择机制,并探讨加密资产间兑换及继承环节的税务处理方式。在衍生品监管方面,提案认为当前个人加密货币杠杆交易2倍上限过低,建议结合保证金管理制度逐步提高杠杆水平。同时,提案还要求明确加密ETF制度定位,并加强与海外监管机构的执法合作。片山皋月表示,将积极推进相关制度建设,包括推动加密ETF落地以及研究于2028年1月实施新的税收制度。
  • 香港拟将虚拟资产交易、托管、投顾及资管业务全面纳入牌照监管年内提交修例草案

    2026-06-02 12:45
    香港特区政府财经事务及库务局表示,继虚拟资产交易平台发牌制度及稳定币发行人监管制度落地后,香港下一阶段将建立覆盖虚拟资产交易、托管、投资顾问及资产管理服务的统一监管框架,进一步完善数字资产生态体系。根据披露方案,任何在香港从事虚拟资产交易、托管、提供投资意见或资产管理业务的机构,原则上均须获得香港证监会(SFC)发牌或注册,监管范围将分别对应《证券及期货条例》下第1类(证券交易)、第4类(投资顾问)及第9类(资产管理)受规管活动。对于虚拟资产托管服务,监管重点将聚焦私钥管理及客户资产安全风险。香港政府表示,目前香港已拥有13家持牌虚拟资产交易平台,并已发出2张稳定币发行人牌照。未来监管框架将按照“相同业务、相同风险、相同规则”原则实施,要求持牌机构在资本实力、风险管理、财务汇报、专业能力及客户资产保护等方面满足严格标准。值得注意的是,当局明确表示不会为现有服务提供商设置“视为已获牌照(deemedlicence)”过渡安排,相关机构需主动申请牌照或注册资格。同时,任何未获牌照或注册的机构,不得在香港境内或境外主动向香港公众推广相关虚拟资产服务。香港财经事务及库务局透露,相关立法建议正在制定中,目标是在2026年内向立法会提交修订条例草案。市场人士认为,若新制度落地,香港将成为全球少数同时覆盖交易平台、稳定币、托管、投顾及资管全链条监管的数字资产司法辖区之一,进一步强化其国际数字资产中心定位。
  • BTC现货ETF已连续11个交易日净流出累计流出34.52亿美元

    2026-06-02 12:44
    据链上分析师余烬(@EmberCN)统计,BTC现货ETF已连续11个交易日净流出,累计流出34.52亿美元,期间BTC价格从81,710美元跌至70,111美元,跌幅14.2%;ETH现货ETF则连续15个交易日净流出,累计流出7.57亿美元,期间ETH价格从2,412美元跌至1,956美元,跌幅18.9%。
  • 穆迪首席经济学家:若一周左右特朗普还无法解决美伊冲突恐致美国经济衰退

    2026-06-02 12:29
    6月2日,穆迪首席经济学家马克·赞迪(MarkZandi)表示,美国总统特朗普大约有一周的时间来达成美伊和平协议,否则战争的影响将使美国经济更有可能陷入衰退。他表示,如果不能与伊朗达成协议,汽油价格可能很快上涨到每加仑5美元以上,这对消费者来说是一个重要的心理门槛,可能会引发支出减少和经济衰退。另一方面他认为,原油价格上涨至每桶125美元以上,也将是另一个关键指标,可能预示着美国经济即将陷入衰退。(财联社)
  • KelpDAO黑客已基本完成洗钱约2.2亿美元未冻结资金几乎全部流出追踪范围

    2026-06-02 12:28
    4月KelpDAO跨链桥攻击事件中被盗的约2.92亿美元资产里,除被冻结的约7100万美元ETH外,其余约2.2亿美元资金已基本完成洗钱,目前攻击者原始地址仅剩约170万美元资产。链上分析显示,攻击者已通过THORChain、Wasabi、TornadoCash和Umbra等隐私工具完成多轮跨链及混币操作,使大部分资金脱离可追踪状态。调查机构此前已将此次攻击归因于朝鲜黑客组织LazarusGroup(TraderTraitor/UNC4899)。攻击发生后一天,黑客便将约7.57万枚ETH(当时价值约1.75亿美元)拆分至多个新地址,并通过THORChain跨链至比特币网络,再利用WasabiCoinJoin、TornadoCash等工具进行混币处理。期间相关资金流一度推动THORChain单日交易量飙升至3.94亿美元,超过正常水平十倍以上。目前唯一仍具备较高追回可能性的资产为Arbitrum安全委员会冻结的约30,766枚ETH(约7100万美元)。不过这部分资产已陷入新的法律争议,美国纽约南区联邦法院此前已发布限制令,要求暂时冻结相关资金,原因是部分朝鲜恐怖主义受害者家属正寻求通过法律程序申请没收该批资产以执行赔偿判决。
  • 查看更多