手把手教你调用5个公共API获取数字货币市场数据(文章内附源码)

手把手,调用,公共,api,获取,数字,货币,市场,数据,文章,源码 · 浏览次数 : 4

小编点评

## Summary of the content: This content provides multiple methods to obtain historical cryptocurrency price data from various sources. **Here's a breakdown:** * **CoinGecko API:** CoinGecko API is a service that provides access to historical and real-time cryptocurrency data. It offers two ways to get data: using the API directly or through their CoinGecko APICoinGecko page. * **CryptoCompare API:** CryptoCompare API is another data provider offering historical and real-time cryptocurrency data. Similar to CoinGecko, they offer both API access and a dedicated page for historical data. * **Alpha Vantage:** Alpha Vantage provides both API and free data service. They offer free historical data on some cryptocurrencies, accessible through their query API. * **CoinCap API:** CoinCap API is a RESTful API and WebSocket API-based platform that provides access to various crypto data, including historical price data. * **Direct API Call:** This example demonstrates how to directly call trading platform APIs to retrieve K-line data for a specific cryptocurrency. **Key takeaways:** * Each data source might require specific setup and configuration depending on the API or service used. * Some data sources like CoinGecko and CryptoCompare offer both free and paid plans with varying data limits and performance. * CoinCap API provides access to both historical and real-time data, including K-line charts. * Direct API calls offer more flexibility and control over data retrieval but might require deeper technical knowledge. **Overall, this content provides a comprehensive overview of various methods to access historical cryptocurrency data, with each approach discussed in detail.**

正文

更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流。

获取数字货币的历史行情数据可以通过一些专门的数字货币数据API或者第三方数据服务来实现。以下是一些获取数字货币历史行情数据的方法:

1 CoinGecko API

CoinGecko是一个数字货币市场数据服务提供商,提供历史和实时的数字货币数据。它的API可以通过HTTP请求方式获取数字货币的历史行情数据。例如,以下代码可以获取比特币在2022年1月的价格数据:

import requests

url = 'https://api.coingecko.com/api/v3/coins/bitcoin/history'
params = {'date': '01-01-2022', 'localization': 'false'}
response = requests.get(url, params=params)

data = response.json()
print(data)

在这个示例中,我们使用requests库发送HTTP请求并获取CoinGecko API的响应。我们在API请求URL中设置了正确的参数,即货币对和时间间隔。我们使用params参数将API请求URL和参数传递给get()方法,并使用response.json()将响应转换为Python对象。我们使用Python中的for循环遍历数据,并使用列表索引访问价格数据和时间戳。然后,我们将时间戳转换为datetime对象,并打印时间戳和价格数据。

import requests
import datetime

url = "https://api.coingecko.com/api/v3/coins/bitcoin/market_chart/range"
params = {
    "vs_currency": "usd",
    "from": "1392577232",
    "to": "1617288232"
}

response = requests.get(url, params=params)
data = response.json()

prices = data["prices"]
for price in prices:
    timestamp = datetime.datetime.fromtimestamp(price[0]/1000.0)
    price = price[1]
    print(timestamp, price)

  

2 CryptoCompare API

CryptoCompare是另一个数字货币市场数据服务提供商,也提供历史和实时的数字货币数据。它的API可以通过HTTP请求方式获取数字货币的历史行情数据。例如,以下代码可以获取比特币在2022年1月的价格数据:

import requests

url = 'https://min-api.cryptocompare.com/data/v2/histoday'
params = {'fsym': 'BTC', 'tsym': 'USD', 'limit': '31', 'toTs': '1641024000'}
response = requests.get(url, params=params)

data = response.json()
print(data)

  

3 Alpha Vantage

除了API外,还可以通过一些第三方数据服务提供商来获取数字货币的历史行情数据。例如,Alpha Vantage提供了一些免费的数字货币历史行情数据,可以通过HTTP请求方式获取。以下代码可以获取比特币在2022年1月的价格数据:

import requests

url = 'https://www.alphavantage.co/query'
params = {'function': 'DIGITAL_CURRENCY_DAILY', 'symbol': 'BTC', 'market': 'USD', 'apikey': 'your_api_key'}
response = requests.get(url, params=params)

data = response.json()
print(data)

  

注意:以上示例中的API和服务可能需要注册并获取API Key或者令牌,具体使用方式需要查看对应的API文档。此外,获取历史行情数据的请求需要提供对应的数字货币代码、市场类型、日期范围等参数,具体参数需要根据API文档来设置。

4 CoinCap API

CoinCap API是一个提供加密货币市场数据的API,可以获取多个加密货币的历史价格、实时价格、市值、交易量等信息。CoinCap API提供了RESTful API和WebSocket API两种访问方式。

CoinCap API提供了免费和付费两种访问方式。免费访问方式有一些限制,例如每分钟最多只能发出10个请求,每个请求最多返回2000个数据点等。如果需要更多数据和更高的访问速度,可以考虑使用付费访问方式。

  1. 导入必要的库和模块。

  2. 设置API请求参数,包括URL和请求参数。API的文档应该包含有关可用参数和其值的信息。在这个例子中,我们使用CoinCap API和CoinGecko API来获取比特币历史价格数据。我们在API请求URL中设置了正确的参数,即时间间隔、开始时间和结束时间。

  3. 发送API请求。使用Python中的requests库可以轻松发送HTTP请求并获取响应。发送请求的方式通常是调用requests库中的get()方法并将API请求URL和参数作为参数传递。对于一些需要认证的API,还需要将API密钥作为参数传递。

  4. 解析JSON响应。 API响应通常以JSON格式返回,因此需要使用json模块将响应转换为Python对象。使用Python中的json.loads()函数可以将JSON字符串转换为Python字典。

  5. 提取所需的数据。解析JSON响应后,我们可以从Python字典中提取所需的数据。提取数据的方法因API而异,通常需要检查API文档以查看可用的数据字段和其格式。

  6. 处理和可视化数据。一旦提取了所需的数据,我们可以使用Python中的其他库和模块进行进一步处理和可视化,例如使用Matplotlib库绘制图表或使用Pandas库进行数据分析。

在这个示例中,我们使用requests库发送HTTP请求并获取CoinCap API的响应。我们使用params参数将API请求URL和参数传递给get()方法,并使用response.json()将响应转换为Python对象。我们使用Python中的for循环遍历数据,并使用字典键访问价格数据和时间戳。然后,我们将时间戳转换为datetime对象,并打印时间戳和价格数据。

import requests

# 设置API请求参数
url = "https://api.coincap.io/v2/assets/bitcoin/history"
params = {
    "interval": "d1",
    "start": "1483228800000",  # 2017-01-01 的时间戳
    "end": "1649193600000"     # 2022-04-05 的时间戳
}

# 发送API请求
response = requests.get(url, params=params)

# 解析JSON响应
data = response.json()

# 提取价格数据
prices = data["data"]
for price in prices:
    time = price["time"]  # 时间戳
    price_usd = price["priceUsd"]  # 价格(美元)
    print(f"{time}: {price_usd}")

  

5 直接调用交易所API

此处我们调用的是某安的rest API,获取btc的K线数据,并对数据框做一些基本处理后,用K线图形的形式将其可视化出来。

import requests
import pandas as pd
import mplfinance as mpf

# 获取比特币K线数据
url = 'https://api.binance.com/api/v3/klines'
params = {
    'symbol': 'BTCUSDT',
    'interval': '1d',
    'limit': 1000
}
res = requests.get(url, params=params)
data = res.json()
df = pd.DataFrame(data, columns=['timestamp', 'open', 'high', 'low', 'close', 'volume', 'close_time', 'quote_asset_volume', 'number_of_trades', 'taker_buy_base_asset_volume', 'taker_buy_quote_asset_volume', 'ignore'])
df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')
df.set_index('timestamp', inplace=True)

df = df.apply(pd.to_numeric, errors='ignore')

# 画K线图
mpf.plot(df, type='candle', volume=True, style='binance')

程序运行后的K线图可视化结果

以上是用5种不同方式调用API获取数字货币公开数据的方法及详细源码,你Get到了吗?

 

 

 

与手把手教你调用5个公共API获取数字货币市场数据(文章内附源码)相似的内容:

手把手教你调用5个公共API获取数字货币市场数据(文章内附源码)

更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流。 获取数字货币的历史行情数据可以通过一些专门的数字货币数据API或者第三方数据服务来实现。以下是一些获取数字货币历史行情数据的方法: 1 CoinGecko API CoinGecko是一个数字货币市场数据

[转帖]手把手教你安装openGauss 3.1.0

手把手教你安装openGauss 3.1.0 目录 前言 一、安装包的下载 1、centos 7.6的下载 2、openEuler 20.03LTS的下载 3、openGauss安装包的下载 二、安装环境的准备 1、硬件环境要求 2、软件环境要求 3、软件依赖要求 4、关闭操作系统防火墙 6、设置操

手把手教你如何在报表中查询数据

每周一个报表小技巧:如何在报表中引入数据筛选功能 >摘要:本文由葡萄城技术团队于博客园原创并首发。转载请注明出处:[葡萄城官网](https://www.grapecity.com.cn/),葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 # 前言篇 在当今信息爆炸的时代,面对海量的

手把手教你一套完善且高效的k8s离线部署方案

作者:郝建伟 背景 面对更多项目现场交付,偶而会遇到客户环境不具备公网条件,完全内网部署,这就需要有一套完善且高效的离线部署方案。 系统资源 | 编号 | 主机名称 | IP | 资源类型 | CPU | 内存 | 磁盘 | | -- | | | | | | | | 01 | k8s-master1

手把手教你写一个JSON在线解析的前端网站1

前言 作为一名Android开发,经常要跟后端同事联调接口,那么总避免不了要格式化接口返回值,将其转换为清晰直观高亮的UI样式以及折叠部分内容,方便我们查看定位关键的信息。 一直以来都是打开Google 搜索json格式化关键字,然后选择Google推荐的前三名的网址,比如 bejson网站: ht

手把手教你实现跳表!

发布于我的博客,也许同步更新于博客园 引入 跳表(跳跃表)能够维护一个数的集合(作用类似普通平衡树),查找时间复杂度为 \(\log n\),与平衡树一样基于链表结构。由于不需要平衡树那么多旋转什么的,所以效率比较高,一般认为性能能打红黑树。除此以外,链表的特性使它能够以线性时间遍历某个子段。Red

手把手教你实现法玛三因子模型

更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流。 关于法玛三因子模型 法玛三因子模型(Fama-French Three-Factor Model)是一种资本资产定价模型(Capital Asset Pricing Model,CAPM)的扩展,用于解释

手把手教你玩转 Excel 数据透视表

本文由葡萄城技术团队于博客园原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 1. 什么是数据透视表 数据透视表是一种可以快速汇总、分析大量数据表格的交互式分析工具。使用数据透视表可以按照数据表格的不同字段从多个角度进行透视,并建立交叉表格,用以

手把手教你从安装CentOS7.4镜像开始,搭建IoT视频监控系统

摘要:在CentOS7.4服务器版本的环境下安装nginx服务器、配置文件服务器、流媒体服务器。 本文分享自华为云社区《华为云ECS服务器安装CentOS7.4镜像,部署GINX服务器、搭建物联网视频监控系统》,作者:DS小龙哥。 在CentOS7.4服务器版本的环境下安装nginx服务器、配置文件

手把手教你基于luatos的4G(LTE Cat.1)模组接入华为云物联网平台

摘要:本期文章采用了4G LTE Cat.1模块,编程语言用的是lua,实现对华为云物联网平台的设备通信与控制 本文分享自华为云社区《基于luatos的4G(LTE Cat.1)模组接入华为云物联网平台完成设备通信与控制(Air780e)》,作者:中华小能能。 一、简介 1、项目介绍 本期文章采用了