在靠近用户的地方部署容器
本工程教育(EngEd)计划由科支持。
在全球范围内即时部署容器。Section是经济实惠、简单而强大的。
免费入门。
如何使用Matplotlib金融API在Python中绘制烛台图
11月3日, 2021
- 主题。
- 机器学习
烛台图提供了关于不同股票价值的信息。在本教程中,我们将使用Matplotlib Finance API在Python中绘制一个蜡烛图。
我们还将实现移动平均线功能,这通常用于分析加密货币。
只有少数教程在Python中使用了带有移动平均线的烛台图。本文将讨论如何利用CoinAPI的数据将这个概念应用于一些加密货币。
本教程对任何希望使用Python绘制股价的人都有帮助。
目录
前提条件
要理解本教程,你需要熟悉以下内容。
- Python编程语言。
- 机器学习和加密货币的基本方面。
- 谷歌Colab或Jupyter笔记本。
请注意,我们在本教程中使用谷歌Colab。
简介
蜡烛图提供了关于股票的开盘、收盘、最高和最低值的信息。
open 值是指股票开盘时的价值,例如,100美元。在一天结束时,当交易停止时,被记录的金额被称为closing 值。比方说105美元。
如果我们在一天中的任何时候股价飙升到110美元,而这是全天记录的最高值,这就是我们的high 。然而,如果情况相反,我们记录的低点是97美元,这就是我们的low 。
这四个值是蜡烛图用来可视化的。Matplotlib金融API是一个建立在Matplotlib库之上的包,用于可视化数据。它可以很容易地与Pandas数据框架集成。
moving average 是一个技术指标,它跟踪股票价格随时间的变化并将其绘制在图表上。它有助于处理价格波动,使投资者能够了解不同的金融趋势。
例如,moving average 可以确定价格的上升趋势,或下降趋势。这使投资者能够知道何时购买、出售或持有股票。
安装和导入依赖项
让我们从安装Matplotlib金融API开始。
pip install --upgrade mplfinance
输出。
Installing collected packages: mplfinance
Successfully installed mplfinance-0.12.7a17
安装完毕后,我们继续导入我们的教程所需的依赖项。
from matplotlib.pyplot import title
import requests
import json
import pandas as pd
import mplfinance as mpl
为了使用moving average 绘制蜡烛图,我们首先选择一个时间框架(一个开始和结束日期)。一个时间框架可以是任何时期,即一天、一个月或一年。
对于我们的案例,我们将选择一个在2021-06-06 和2021-10-05 之间的时间。
start_date = "2021-06-06"
end_date = "2021-10-05"
freq = "1DAY"
coin = "BTC"
url = f'https://rest.coinapi.io/v1/exchangerate/{coin}/USD/history?period_id={freq}&time_start={start_date}T00:00:00&time_end={end_date}T00:00:00'
headers = {'X-CoinAPI-Key' : 'Paste your api key here'}
response = requests.get(url, headers=headers)
要获得免费的CoinAPI用于测试或业余项目,请访问其官方网站。
你会注意到网站上有五种套餐可供选择。选择第一个套餐,获得一个免费的API密钥。
这个API密钥将被发送到你的邮箱。复制该密钥并将其粘贴在上面写有;'在此粘贴您的API密钥'的部分。
CoinAPI将为您提供来自加密货币市场的快速、可靠的数据。在我们的例子中,我们将使用它来获取比特币(BTC)数据。
数据预处理
我们使用以下代码加载我们的数据。
content = json.loads(response.text)
print(content)
我们使用Pandas将JSON文件转换为一个Dataframe。
df = pd.json_normalize(content)
接下来的步骤是将DType 改为DataTime 。
df.time_period_start = pd.to_datetime(df.time_period_start)
df = df.set_index("time_period_start")
现在让我们删除我们数据中不必要的列。
df.drop(['time_period_end', "time_open", "time_close"], axis=1, inplace=True)
print(df.columns)
输出。
Index(['rate_open', 'rate_high', 'rate_low', 'rate_close'], dtype='object')
下一步涉及到将剩余的列重命名为我们想要的名字。
df.rename(columns={"rate_open": "Open", "rate_high":"High", "rate_low":"Low", "rate_close": "Close"}, inplace=True)
df.head()
输出。
Open High Low Close
time_period_start
2021-04-25 00:00:00+00:00 1.056056 1.156487 0.947005 1.032632
2021-04-26 00:00:00+00:00 1.042543 1.370573 1.020200 1.369125
2021-04-27 00:00:00+00:00 1.350937 1.462192 1.334610 1.401779
2021-04-28 00:00:00+00:00 1.405354 1.449042 1.286561 1.358817
2021-04-29 00:00:00+00:00 1.358232 1.420125 1.331622 1.399415
现在让我们使用Maplotlib金融API绘制股价。
使用Python绘制股价图
我们使用mpl.plot() 函数来绘制股票价格。
mpl.plot(
df,
type="candle",
mav =(3,6,9),
title = f"{coin} Price",
style="yahoo"
)
有不同类型的图表可用于绘制这些股票价格。它们包括条形图、烛台图、Renko图、线形图和数字图。
在这篇文章中,我们使用了蜡烛图。这些类型的图表是简单的,容易分析的外观。与柱状图或线状图相比,它们提供的市场信息更加详细,一目了然。
我们使用mav ,在我们的图中应用了移动平均线。我们还添加了3天、6天和9天作为参数。股票价格网站上流行的移动平均线包括10日、20日和30日移动平均线。
我们选择了yahoo 样式,因为它复制了你在雅虎网站上观看股票价格的方式。然而,在mplfinance 库中还有其他内置的样式,你可以试试。
它们包括binance,blueskies,brasil,charles,checkers,classic,default,mike,nightclouds,sas, 和starsandstripes 。
输出。

现在我们已经成功地在Python中使用Matplotlib Finance API和移动平均线绘制了一个蜡烛图。
请在这里找到本教程的代码。
收尾工作
mplfinance库使我们能够轻松实现数据的可视化。你可以在以下参考资料中阅读更多关于mplfinance API的信息。
参考资料
同行评审的贡献者。柯林斯-阿尤亚
类似文章
[

机器学习
多类标签的概率预测指南
阅读更多

机器学习
掌握Python中的内核PCA的入门知识
阅读更多

机器学习, 语言
使用高斯消除算法的线性方程组
阅读更多