主页 > imtoken钱包app安卓版 > 用Python检测比特币历史价格,还有投资空间吗?
用Python检测比特币历史价格,还有投资空间吗?
前言
以前有同事或者朋友一直在抱怨,说十年前买了几个比特币,现在发财了。 也有说买显卡挖币的。 总之,好像升值了不少。 因为我是一个不懂这些东西的人。 往往只是跟风买点基金,赚不了多少钱,赔不了多少! 然后我今天听他们说这个,所以我就用Python来探究一下它的历史价格。
在本文中,我们将学习如何连接到 ExchangeAPI 以检索比特币和其他加密货币的历史价格。 然后,我们将看到如何使用 Python 绘制比特币的价格。 matplotlib。 最后,我们将计算比特币移动平均线并将其与比特币的历史价格一起绘制。
使用 Python 从交易所提取比特币价格
我总是喜欢在文章开头介绍一些背景知识,即本文涵盖的主题。 然而,比特币和加密货币不需要太多介绍,因为每个人都听说过它们。 因此,我们可以直接跳转到代码。
代码相当简单,首先,我们从交易所检索历史价格。 我使用的是 Kucoin,这是一种不需要账户即可检索加密货币价格数据的加密货币交易所。
Kucoin 的所有 API 文档都可以在下面找到。 如前所述,我们不需要说明我们将在本文中进行的分析类型。
我们通过创建一个返回比特币历史价格的 API url 并定义我们的参数来开始编码。 在此示例中,我们将使用 BTC-USDT 对检索比特币价格。 我们想要检索过去 400 天的每日价格。
注意:为了便于参考,我在帖子末尾添加了完整的代码,并使用了正确的 Python 格式。
导入请求
从日期时间导入日期时间
从时间导入时间
将熊猫导入为 pd
将 matplotlib.pyplot 导入为 plt
base_url = "https://api.kucoin.com"
coin_pair = "BTC-USDT" #BTC-USDT
频率=“1天”#1小时4小时1分钟
#获取今天的时间戳日期(以秒为单位)
now_is = int(时间())
天 = 400
#sec 分钟小时天
days_delta = 60 * 60 * 24 * 天
start_At = now_is - days_delta
#print(现在是)
price_url = f"/api/v1/market/candles?type=&symbol=&startAt=&endAt="
接下来2013比特币历史价格,我们向 KucoinAPI 端点发出请求,它将在 Python 字典中返回所有请求的比特币价格数据。
price_dict = {}
价格 = requests.get(base_url+price_url).json()
打印(价格)
正如您在下面看到的,价格现在是一个包含历史比特币价格的字典。在密钥中
数据
我们有一个清单。 列表中的每个元素都是给定日期的价格。 因此,我们需要遍历此列表中的每个元素并提取日期和价格。
使用 Python 从交易所提取比特币价格
我们将提取的数据存储在一个名为
价位表
. 需要注意的一件事是我们需要将日期从时间戳转换为可读格式(即 13-10-2020)。为此我们使用
日期时间.fromtimestamp
特征。
然后我们希望将数据转换为熊猫数据。 Pandas 使使用 Python 和 matplotlib 绘制比特币价格变得超级容易:
对于价格['数据']中的项目:
#convert 日期从时间戳到 YMD
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
#将价格转换为浮点数
priceDF['价格'] = priceDF['价格'].astype(浮动)
#convert dates to datetime 从对象
priceDF.index = pd.to_datetime(priceDF.index)
#reverse 日期
priceDF = priceDF.iloc[::-1]
打印(价格DF)
计算比特币移动平均线
接下来,我们计算比特币的 200 天和 50 天移动平均线。 移动平均线是衡量比特币当前价格与过去趋势相比表现如何的非常有用的指标。单击此处获取完整代码
移动平均线是在技术分析中用到的,想要了解更多关于移动平均线的知识,可以找对应的文档来学习
使用Python计算比特币移动平均线,我们只需要按照下面的代码进行计算即可。 然后我们使用 matplotlib 绘制移动平均线和比特币价格。
#moving_average 200 天(
priceDF['200MA'] = priceDF['价格'].rolling(200).mean()
priceDF['52MA'] = priceDF['价格'].rolling(52).mean()
价格DF
#阴谋
图,ax = plt.subplots()
ax.plot(priceDF[['价格','200MA','52MA']])
# 旋转并对齐刻度标签,使它们看起来更好。
图.autofmt_xdate()
ax.legend(['价格','200MA','52MA'])
# 对工具栏中的 x 轴位置使用更精确的日期字符串。
铂。 展示()
结语
连日来,比特币价格大幅下跌,目前交投于52日均线下方,即将上破200日均线。 这是一个好兆头,表明比特币和加密货币显然处于看跌市场。
请注意,此分析不是非常准确的数据2013比特币历史价格,目的是演示 Python 的一些技巧,不应用于做出投资决策。