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

 

数量技术宅团队在CSDN学院推出了量化投资系列课程

欢迎有兴趣系统学习量化投资的同学,点击下方链接报名:

量化投资速成营(入门课程)

Python股票量化投资

Python期货量化投资

Python数字货币量化投资

C++语言CTP期货交易系统开发

数字货币JavaScript语言量化交易系统开发


获取数字货币的历史行情数据可以通过一些专门的数字货币数据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到了吗?

在【小白CV】手把手你用YOLOv5训练自己的数据集(从Windows环境配置到模型部署)_梁瑛平的博客-CSDN博客.pdf中提供了详细的指导,可以帮助你学习如何使用YOLOv5训练自己的数据集。该过程包括以下步骤: 1. 数据集制作:准备自己的数据集,并进行标注和处理,生成YOLOv5所需的数据格式。 2. 环境配置:在Windows环境下安装Python环境、PyTorch和其他必要的依赖库。 3. 模型训练:使用YOLOv5提供的训练脚本进行模型训练,根据自己的硬件配置修改参数。 4. 模型测试:使用训练好的模型进行测试,评估模型在测试集上的性能。 5. 模型推理:将训练好的模型部署到实际应用中,进行目标检测。 训练好的模型会保存在yolov5目录下的runs/exp0/weights/last.pt和best.pt文件中,而详细的训练数据保存在runs/exp0/results.txt文件中。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【小白CV】手把手你用YOLOv5训练自己的数据集(从Windows环境配置到模型部署)_梁瑛平的博客-CSDN博客....](https://download.csdn.net/download/m0_62668782/54189217)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [YOLOv5训练自己的数据集(超详细完整版)](https://blog.csdn.net/demm868/article/details/122076560)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数量技术宅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值