欢迎光临
我们一直在努力

AKShare 加密货币数据接口实战:金十实时行情、比特币持仓报告与 CME 成交量数据

AKShare 加密货币数据接口实战:金十实时行情、比特币持仓报告与 CME 成交量数据

【免费下载链接】akshare AKShare is an elegant and simple financial data interface library for Python, built for human beings! 开源财经数据接口库 【免费下载链接】akshare 项目地址: https://gitcode.com/gh_mirrors/aks/akshare

本文聚焦 AKShare 项目中「数据中心(dc)」分类下的三只加密货币数据接口:crypto_js_spot(加密货币实时行情)、crypto_bitcoin_hold_report(比特币持仓报告)与 crypto_bitcoin_cme(CME 比特币成交量报告)。三只接口的数据均来自金十数据数据中心,面向加密货币行情追踪、链上/机构持仓分析和衍生品市场监控等场景。读完本文,你将掌握每只接口的输入输出结构、字段含义、调用方式,以及对应的源码级实现原理,可直接在自己的量化分析脚本中落地使用。

接口全景:一个数据中心的三类加密数据

本文涉及的三个接口同属于金十数据数据中心(datacenter)体系,AKShare 将其统一归类为「加密货币数据」模块,并全部在项目顶层导出,因此可以直接通过 ak. 前缀调用。三只接口的定位差异如下:

接口功能定位数据形态调用频率建议
crypto_js_spot 主流加密货币实时行情快照 时点快照(多市场多品种) 高频轮询
crypto_bitcoin_hold_report 全球机构/上市公司比特币持仓 当前时点持仓总表 低频(日更级)
crypto_bitcoin_cme 芝加哥商业交易所比特币成交量 指定交易日的逐类统计 按交易日查询

从源码结构看,三只接口的实现在仓库中分处两处:crypto_js_spot 定义于 akshare/economic/macro_other.py,而 crypto_bitcoin_hold_report 与 crypto_bitcoin_cme 分别位于 akshare/crypto/crypto_hold.py 与 akshare/crypto/crypto_bitcoin_cme.py。在 akshare/init.py 中三者均被显式导入并加入 __all__ 导出列表,从而统一以 ak.crypto_* 的形式暴露给用户。

crypto_js_spot:加密货币实时行情

接口说明

crypto_js_spot 用于获取主流加密货币在当前时点的实时行情数据,覆盖 Bitfinex、Bitflyer、Bitstamp、CEX.IO、Kraken、OKCoin 等多家交易所的多币种报价,一次请求即返回完整的行情快照,接口本身不需要任何输入参数。

输入参数

名称类型描述
– – –

输出参数

名称类型描述
市场 object 交易所及其所在地,如 Bitfinex(香港)、Kraken(美国)
交易品种 object 交易对,如 BTCUSD、BTCJPY、LTCUSD
最近报价 float64 最新成交价
涨跌额 float64 相对参考价的涨跌绝对值
涨跌幅 float64 相对参考价的涨跌百分比
24小时最高 float64 24 小时内最高价
24小时最低 float64 24 小时内最低价,注意货币币种
24小时成交量 float64 24 小时成交量,注意货币币种
更新时间 float64 行情时间戳,实际为字符串形式的日期时间

接口示例

import akshare as ak

crypto_js_spot_df = ak.crypto_js_spot()
print(crypto_js_spot_df)

数据示例

市场 交易品种 … 24小时成交量 更新时间
0 Bitfinex(香港) LTCUSD … 23157.88 2022-03-15 16:02:03
1 Bitflyer(日本) BTCJPY … 2031.26 2022-03-15 16:02:03
2 Bitstamp(美国) BTCUSD … 1380.17 2022-03-15 16:02:03
3 CEX.IO(伦敦) BTCUSD … 54.51 2022-03-15 16:02:03
4 Kraken_EUR(美国) BTCEUR … 1342.40 2022-03-15 16:02:03
5 Kraken(美国) LTCUSD … 21871.79 2022-03-15 16:02:03
6 OKCoin(中国) BTCUSD … 239.14 2022-03-15 16:02:03
7 Bitfinex(香港) BCHUSD … 0.00 2020-11-16 21:02:04
8 Bitfinex(香港) BTCUSD … 7496.55 2022-03-15 16:02:03
9 Kraken(美国) BTCUSD … 3147.43 2022-03-15 16:02:03

源码实现要点

从 akshare/economic/macro_other.py 的实现可以看到,该接口向金十数据的数据中心 API 发起 requests.get 请求,并在请求头中携带 x-app-id、x-csrf-token、x-version 三个业务标识字段。拿到 JSON 响应后,源码做了三件关键的加工:

  • 字段重命名:将服务端返回的英文原始字段(如 reported_at)统一映射为上述中文列名,保证输出结构稳定、易读;
  • 时间解析:原始时间字段先经 pd.to_datetime 解析,最终「更新时间」列再转换为字符串类型输出,方便直接展示与序列化;
  • 数值化:最近报价、涨跌额、涨跌幅、24 小时最高/最低/成交量等列全部通过 pd.to_numeric(errors="coerce") 转为 float64,遇到缺失或非法值会转为 NaN 而非抛错,保证下游计算安全。
  • 需要留意的是,接口返回的是「当前时点」的行情快照,适合做实时轮询采样;而不同交易所的成交量、最低价等字段对应的币种口径存在差异(如 BTCUSD 与 BTCJPY),做跨市场对比前建议先按「交易品种」列做分组对齐。

    crypto_bitcoin_hold_report:比特币持仓报告

    接口说明

    crypto_bitcoin_hold_report 用于获取金十数据整理的全球比特币持仓报告,覆盖上市公司、政府机构、私营企业、ETF/ETP 等多种主体类型的 BTC 持仓明细,单次返回当前时点的完整持仓总表,无需输入参数。

    输入参数

    名称类型描述
    – – –

    输出参数

    名称类型描述
    代码 object 证券代码(含交易所后缀),政府机构等无证券代码主体为 None,该列同时作为行索引
    公司名称-英文 object 持仓主体英文名称
    公司名称-中文 object 持仓主体中文名称
    国家/地区 object 主体注册国家或地区
    市值 float64 主体市值
    比特币占市值比重 float64 比特币持仓占主体市值比重,注意单位:%
    持仓成本 float64 平均建仓成本
    持仓占比 float64 持仓占比,注意单位:%
    持仓量 float64 持有的比特币数量
    当日持仓市值 float64 当日比特币持仓市值
    查询日期 object 数据查询日期
    公告链接 object 相关公告链接
    分类 object 主体分类:上市公司、政府机构、私营企业、ETF 等
    倍数 float64 倍数指标

    接口示例

    import akshare as ak

    crypto_bitcoin_hold_report_df = ak.crypto_bitcoin_hold_report()
    print(crypto_bitcoin_hold_report_df)

    数据示例

    代码 公司名称-英文 … 分类 倍数
    0 MSTR:NADQ MicroStrategy … 上市公司 NaN
    1 MARA:NADQ Marathon Digital Holdings Inc … 上市公司 NaN
    2 TSLA:NADQ Tesla, Inc … 上市公司 NaN
    3 HUT:NASDAQ Hut 8 Mining Corp … 上市公司 NaN
    4 COIN:NADQ Coinbase Global, Inc. … 上市公司 NaN
    5 BRPHF:OTCMKTS Galaxy Digital Holdings … 上市公司 NaN
    6 SQ:NYSE Block, Inc. … 上市公司 NaN
    7 RIOT:NADQ Riot Platforms, Inc. … 上市公司 NaN
    8 BTGGF:TCMKTS Bitcoin Group SE … 上市公司 NaN
    9 VOYG:TSX Voyager Digital LTD … 上市公司 NaN
    10 HIVE:NASDAQ Hive Blockchain … 上市公司 NaN
    11 NEXOF:OTCMKTS NEXON Co. Ltd … 上市公司 NaN
    12 EXOD:OTCMKTS Exodus Movement Inc … 上市公司 NaN
    13 HKD:HKG Meitu … 上市公司 NaN
    14 PHUN:NASDAQ Phunware, Inc. … 上市公司 NaN
    15 NFT:AQSE NFT Investments PLC … 上市公司 NaN
    16 BITF:NASDAQ Bitfarms Limited … 上市公司 NaN
    17 CLSK:NASDAQ CleanSpark Inc … 上市公司 NaN
    18 DMGGF:OTCMKTS DMG Blockchain Solutions Inc. … 上市公司 NaN
    19 BTBT:NASDAQ Bit Digital, Inc. … 上市公司 NaN
    20 CIFR:NASDAQ Cipher Mining … 上市公司 NaN
    21 NPPTF:OTCMKTS Neptune Digital Assets … 上市公司 NaN
    22 ABT:DUS Advanced Bitcoin Technologies AG … 上市公司 NaN
    23 LQWDF:OTC LQwD FinTech Corp … 上市公司 NaN
    24 BBKCF:OTCMKTS BIGG Digital Assets Inc. … 上市公司 NaN
    25 BNXAF:OTCMKTS Banxa Holdings Inc … 上市公司 NaN
    26 HSSHF:OTCMKTS Digihost Technology Inc. … 上市公司 NaN
    27 BTCS:OTCMKTS BTCS Inc. … 上市公司 NaN
    28 SATO:TSXV Canada Computational Unlimited Corp. … 上市公司 NaN
    29 FRMO:OTCMKTS FRMO Corp. … 上市公司 NaN
    30 ARBKF:OTCMKTS Argo Blockchain PLC … 上市公司 NaN
    31 MILE:NASDAQ Metromile … 上市公司 NaN
    32 MOGO:Nasdaq MOGO Financing … 上市公司 NaN
    33 None USA … 政府机构 NaN
    34 None Ukraine (govt) … 政府机构 NaN
    35 None Mt. Gox … 私营企业 NaN
    36 None Block.one … 私营企业 NaN
    37 None Tether Holdings LTD … 私营企业 NaN
    38 None The Tezos Foundation … 私营企业 NaN
    39 None Stone Ridge Holdings Group … 私营企业 NaN
    40 None Massachusetts Mutual … 私营企业 NaN
    41 None Lisk Foundation … 私营企业 NaN
    42 None Seetee AS … 私营企业 NaN
    43 GBTC:OTCMKTS Grayscale Bitcoin Trust … ETF NaN
    44 XBTE:NADQ CoinShares / XBT Provider … ETF NaN
    45 BTCC:TSX Purpose Bitcoin ETF … ETF NaN
    46 BTCQ:TSX 3iQ CoinShares Bitcoin ETF … ETF NaN
    47 BTCE:XETRA ETC Group Bitcoin ETP … ETF NaN
    48 QBTCBV:TSX 3iQ The Bitcoin Fund … ETF NaN
    49 BITW:OTCMKTS Bitwise 10 Crypto Index Fund … ETF NaN
    50 OTCQX:OTCMKTS Grayscale Digital Large Cap Fund … ETF NaN
    51 ABTC:SWX 21Shares AG … ETF NaN
    52 VBTC:XETRA VanEck Vectors Bitcoin ETN … ETF NaN
    53 BTCX:TSX CI Galaxy Bitcoin Fund … ETF NaN
    54 OBTC:OTC Osprey Bitcoin Trust … ETF NaN
    55 BTC0E.AS:OTC Valour Bitcoin Zero ETP … ETF NaN
    56 EBIT:TSX Evolve Bitcoin ETF … ETF NaN
    57 BITC:TSX Ninepoint Bitcoin Trust … ETF NaN
    58 FTBC:TSE Fidelity Advantage Bitcoin ETF … ETF NaN
    [59 rows x 14 columns]

    源码实现要点

    阅读 akshare/crypto/crypto_hold.py 可以发现几个值得注意的实现细节:

    • 16 个原始字段投影为 14 列:服务端返回的每条记录包含 16 个字段,其中两个字段以占位符 _ 命名且在重命名后被显式剔除,最终保留文档列出的 14 列,输出列顺序也经过二次排序固定;
    • 数值化与日期规范化:市值、比特币占市值比重、持仓成本、持仓占比、持仓量、当日持仓市值、倍数共 7 列均通过 pd.to_numeric(errors="coerce") 转为数值类型;「查询日期」列经 pd.to_datetime(…).dt.date 统一为标准日期格式;
    • 分类字段的价值:数据示例中的「分类」列包含上市公司、政府机构、私营企业、ETF 四类主体,且政府机构/私营企业主体(如 USA、Ukraine (govt)、Mt. Gox、Tether)的「代码」列为 None——做统计分析时可直接按「分类」分组聚合,观察不同类型持仓主体的持仓量变化;
    • 注意单位:文档与源码均提示「比特币占市值比重」「持仓占比」两列单位为百分号(%),计算时注意是否需要除以 100。

    该接口适合追踪机构级 BTC 持仓动向,例如筛选「分类 == 上市公司」后按「持仓量」排序,即可快速定位持仓最大的上市公司。

    crypto_bitcoin_cme:CME 比特币成交量报告

    接口说明

    crypto_bitcoin_cme 用于获取芝加哥商业交易所(CME)的比特币成交量报告,数据按指定交易日返回,覆盖期货、看涨期权、期权、看跌期权以及微型比特币期货等品种合约的成交与持仓统计。这是三只接口中唯一需要输入参数的接口。

    输入参数

    名称类型描述
    date str 指定交易日,格式如 date="20230830",即 8 位数字的 YYYYMMDD

    输出参数

    名称类型描述
    商品 object 标的商品,如「比特币」「微型比特币」
    类型 object 合约类型:期货、期权、看涨、看跌
    电子交易合约 int64 电子交易平台成交合约数
    场内成交合约 float64 场内(公开喊价)成交合约数
    场外成交合约 int64 场外成交合约数
    成交量 int64 当日总成交量
    未平仓合约 int64 期末未平仓合约数
    持仓变化 int64 未平仓合约较前一日的增减

    接口示例

    import akshare as ak

    crypto_bitcoin_cme_df = ak.crypto_bitcoin_cme(date="20230830")
    print(crypto_bitcoin_cme_df)

    数据示例

    商品 类型 电子交易合约 场内成交合约 场外成交合约 成交量 未平仓合约 持仓变化
    0 比特币 期货 7895 NaN 366 8261 15364 -808
    1 比特币 看涨 38 NaN 0 38 3260 11
    2 比特币 期权 113 NaN 0 113 5871 -27
    3 比特币 看跌 75 NaN 0 75 2611 -38
    4 微型比特币 期货 7818 NaN 0 7818 8353 -425

    源码实现要点

    查看 akshare/crypto/crypto_bitcoin_cme.py 可知该接口的核心逻辑:

    • 日期参数格式化:传入的 date="20230830" 会被切片重组为 "2023-08-30"("-".join([date[:4], date[4:6], date[6:]]))后作为请求参数提交,因此务必使用 8 位无分隔符的 YYYYMMDD 格式,否则切片会得到错误日期;
    • 动态列名:与另外两只接口不同,这里没有硬编码列名,而是从服务端响应的 keys 字段动态生成 DataFrame 列名,再对 6 个数值列统一做 pd.to_numeric(errors="coerce") 转换;
    • 请求头完整性:源码携带了完整的浏览器级请求头(User-Agent、Referer、Sec-Fetch 系列等)与 x-app-id、x-version 业务标识,说明该接口对请求环境较为敏感,AKShare 已封装好这些细节,调用方无需自行构造;
    • 数据解读:「未平仓合约」反映存量持仓,「持仓变化」为负表示该交易日减仓,例如数据示例中比特币期货持仓变化为 -808;「场内成交合约」多数情况下为 NaN 或 0,反映 CME 比特币合约以电子交易为主导的现状。

    若需要回溯历史交易日,可循环调用该接口并拼接结果,但需注意金十数据中心对历史数据保留范围有限,超出保留期限的日期可能返回空结果。

    安装与快速上手

    以上三只接口均属于 AKShare 的标准公开接口,只需安装项目本体即可使用:

    pip install akshare

    安装完成后在 Python 中导入并调用:

    import akshare as ak

    # 1. 加密货币实时行情
    spot_df = ak.crypto_js_spot()

    # 2. 比特币持仓报告
    hold_df = ak.crypto_bitcoin_hold_report()

    # 3. CME 比特币成交量报告(指定交易日)
    cme_df = ak.crypto_bitcoin_cme(date="20230830")

    三个接口的返回值均为 pandas.DataFrame,可以直接接入 df.to_csv()、df.to_excel() 做落盘存储,或配合 df.groupby("分类")、df.sort_values("持仓量") 等进行加工分析。

    注意事项与延伸阅读

  • 联网依赖:三只接口均通过 HTTP 请求实时拉取金十数据数据中心的数据,调用时需保证网络可达该数据源;若数据源调整接口策略,接口行为可能随之变化,AKShare 会在后续版本中持续修复(仓库更新日志可见 crypto_js_spot、crypto_bitcoin_cme 等多个历史修复记录)。
  • 快照与限量:crypto_js_spot 与 crypto_bitcoin_hold_report 均为「当前时点」快照数据,非历史序列;crypto_bitcoin_cme 为指定交易日数据。做长时间序列研究时需自行按频率轮询并本地存储。
  • 单位口径:持仓报告中的「比特币占市值比重」「持仓占比」单位为 %;行情数据中的「24小时最低」「24小时成交量」需注意对应币种口径。
  • 相关文档与源码定位:本文对应官方接口文档为 docs/data/dc/dc.md;核心实现见 akshare/economic/macro_other.py、akshare/crypto/crypto_hold.py 与 akshare/crypto/crypto_bitcoin_cme.py;顶层导出注册见 akshare/init.py。此外,AKShare 的加密货币模块还提供历史行情(crypto_hist)等接口,其配套数据集位于 akshare/data/crypto_info.zip,可通过 akshare.datasets.get_crypto_info_csv 加载,与本文的实时/持仓/成交三类数据互为补充。
  • 【免费下载链接】akshare AKShare is an elegant and simple financial data interface library for Python, built for human beings! 开源财经数据接口库 【免费下载链接】akshare 项目地址: https://gitcode.com/gh_mirrors/aks/akshare

    创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

    赞(0)
    未经允许不得转载:171主机测评 » AKShare 加密货币数据接口实战:金十实时行情、比特币持仓报告与 CME 成交量数据
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址