如何使用Matplotlib金融API在Python中绘制烛台图

238 阅读5分钟

在靠近用户的地方部署容器

本工程教育(EngEd)计划由科支持。

在全球范围内即时部署容器。Section是经济实惠、简单而强大的。

免费入门

如何使用Matplotlib金融API在Python中绘制烛台图

11月3日, 2021

烛台图提供了关于不同股票价值的信息。在本教程中,我们将使用Matplotlib Finance API在Python中绘制一个蜡烛图。

我们还将实现移动平均线功能,这通常用于分析加密货币。

只有少数教程在Python中使用了带有移动平均线的烛台图。本文将讨论如何利用CoinAPI的数据将这个概念应用于一些加密货币。

本教程对任何希望使用Python绘制股价的人都有帮助。

目录

前提条件

要理解本教程,你需要熟悉以下内容。

请注意,我们在本教程中使用谷歌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-062021-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

输出。

BTC candlestick chart

现在我们已经成功地在Python中使用Matplotlib Finance API和移动平均线绘制了一个蜡烛图。

在这里找到本教程的代码。

收尾工作

mplfinance库使我们能够轻松实现数据的可视化。你可以在以下参考资料中阅读更多关于mplfinance API的信息。

参考资料


同行评审的贡献者。柯林斯-阿尤亚

类似文章

[

Probability Distributions and their Simulations in R Hero Image

机器学习

多类标签的概率预测指南

阅读更多

](www.section.io/engineering…

Kernel PCA in Python example image

机器学习

掌握Python中的内核PCA的入门知识

阅读更多

](www.section.io/engineering…

Garbage collection in c# dotnet framework image

机器学习, 语言

使用高斯消除算法的线性方程组

阅读更多

](www.section.io/engineering…)