主页 > imtoken手机版下载 > 用Python检测比特币历史价格,还值得投资吗?

用Python检测比特币历史价格,还值得投资吗?

imtoken手机版下载 2023-08-25 05:12:52

前言

以前有个同事或者朋友一直在抱怨,说十年前买几个比特币,现在已经发财了。还有那种说买显卡挖币的人,总之,好像升值了很多。因为我是一个不懂这些东西的人。很多时候我只是顺势买一些基金,赚不了多少,也亏不了多少!然后我今天听他们讲这个,我会用Python来探索它的历史价格看看。

在本文中,我们将学习如何连接到 Exchange API 以检索比特币和其他加密货币的历史价格。然后,我们将看到如何在 Python 中绘制比特币的价格。matplotlib。最后比特币价格变化历史图表,我们将计算比特币移动平均线并将其与比特币的历史价格一起绘制。

​​​

​​​

比特币历史价格图表_比特币挖矿难度变化_比特币价格变化历史图表

​​​

使用 Python 从交易所中提取比特币价格

我总是喜欢从一些背景和本文涵盖的主题开始我的文章。但是,比特币和加密货币不需要太多介绍,因为每个人都听说过它们。所以我们可以直接跳到代码。

代码相当简单,首先,我们从交易所检索历史价格。我正在使用 Kucoin,一种不需要帐户即可检索加密货币价格数据的加密货币交易所。

Kucoin 的所有 API 文档都可以在下面找到。如前所述,我们不需要说明我们将在本文中介绍的分析类型。

我们通过创建一个返回比特币历史价格的 API url 开始编码比特币价格变化历史图表,并定义我们的参数。在此示例中,我们将使用 BTC-USDT 对检索比特币价格。我们想要恢复过去 400 天的每日价格。

比特币挖矿难度变化_比特币历史价格图表_比特币价格变化历史图表

注意:为了便于参考,我在文章末尾添加了完整的代码,并在 Python 中进行了适当的格式化。

import requests
from datetime import datetime
from time import time
import pandas as pd
import matplotlib.pyplot as plt
 
base_url = "https://api.kucoin.com"
coin_pair = "BTC-USDT" #BTC-USDT
frequency = "1day" #1hour 4hour 1min
#get timestamp date of today in seconds
now_is = int(time())
days = 400
           #sec  min  hour days
days_delta = 60 * 60 * 24 * days
start_At = now_is - days_delta
#print(now_is)
price_url = f"/api/v1/market/candles?type={frequency}&symbol={coin_pair}&startAt={start_At}&endAt={now_is}"

接下来,我们向 KucoinAPI 端点发出请求,它将在 Python 字典中返回所有请求的比特币价格数据。

price_dict = {}
 
prices = requests.get(base_url+price_url).json()
print(prices)

正如你在下面看到的,价格现在是一本包含比特币历史价格的字典。钥匙里面

数据

比特币价格变化历史图表_比特币历史价格图表_比特币挖矿难度变化

我们有一个清单。列表中的每个元素都是给定日期的价格。所以我们需要遍历这个列表中的每个元素并提取日期和价格。

使用 Python 从交易所中提取比特币价格

我们将提取的数据存储在一个名为

价格表

. 需要注意的是,我们需要将日期从时间戳转换为可读格式(即 13-10-2020)。为此,我们使用

比特币历史价格图表_比特币挖矿难度变化_比特币价格变化历史图表

日期时间.fromtimestamp

特征。

然后,我们要将数据转换为 pandas 数据。Pandas 可以很容易地使用 Python 和 matplotlib 绘制比特币的价格:

for item in prices['data']:
 #convert date from timestamp to Y M D
 date_converted = datetime.fromtimestamp(int(item[0])).strftime("%Y-%m-%d")
 price_dict[date_converted] = item[2]
 
priceDF = pd.DataFrame(price_dict,index=["price"]).T
#Convert prices into a float
priceDF['price'] = priceDF['price'].astype(float)
 
#convert dates to datetime from object
priceDF.index = pd.to_datetime(priceDF.index)
 
#reverse dates
priceDF = priceDF.iloc[::-1]
print(priceDF)

计算比特币移动平均线

接下来,我们计算 200 天和 50 天的比特币移动平均线。与过去的趋势相比,移动平均线是一个非常有用的指标,表明比特币当前价格的表现如何。点击此处获取完整代码

比特币价格变化历史图表_比特币挖矿难度变化_比特币历史价格图表

移动平均线用于技术分析。想要了解更多关于移动平均线的知识,可以找对应的文档学习

要使用 Python 计算比特币移动平均线,我们只需遵循以下代码。然后,我们使用 matplotlib 绘制移动平均线和比特币价格。

#moving_average 200 days(
priceDF['200MA'] = priceDF['price'].rolling(200).mean()
priceDF['52MA'] = priceDF['price'].rolling(52).mean()
 
priceDF
 
#plot
 
fig, ax = plt.subplots()
ax.plot(priceDF[['price','200MA','52MA']])
# Rotate and align the tick labels so they look better.
fig.autofmt_xdate()
ax.legend(['price','200MA','52MA'])
# Use a more precise date string for the x axis locations in the toolbar.
 
plt.show()

结语

比特币价格在过去几天大幅下跌,目前交易价格低于 52 天移动平均线,并处于突破 200 天移动平均线的边缘。这是一个好迹象,表明比特币和加密货币显然处于看跌市场。

请注意,此分析不是非常准确的数据,旨在展示 Python 的一些技术,不应用于做出投资决策。