python | mplfinance,一个有趣的金融数据可视化 Python 库!

本文来源公众号“python”,仅用于学术分享,侵权删,干货满满。

原文链接:mplfinance,一个有趣的 Python 库!

大家好,今天为大家分享一个有趣的 Python 库 - mplfinance。

Github地址:https://github.com/matplotlib/mplfinance

金融市场分析中,图表是至关重要的工具之一,尤其是蜡烛图、折线图等用于展示股票、外汇等资产价格的变化趋势。在 Python 生态中,mplfinance 是一个专门用于金融数据可视化的库,它基于 Matplotlib 提供简洁的 API,使得绘制金融市场图表变得十分方便。无论是分析股票的历史数据、观察交易量,还是为交易策略生成图表,mplfinance 都能快速生成高质量的图表。

1 安装

mplfinance 可以通过 pip 安装,安装命令如下:

pip install mplfinance

安装完成后,就可以在 Python 项目中使用该库绘制蜡烛图、交易量图等金融市场图表。

2 特性

mplfinance 提供了一系列简单且高效的工具,帮助用户快速绘制金融市场图表。

  1. 蜡烛图绘制:支持轻松绘制股票蜡烛图、OHLC 图等价格变化图。

  2. 交易量展示:能够将交易量数据与价格图同时显示,帮助分析市场交易情况。

  3. 与 Pandas 集成:可以直接使用 Pandas DataFrame 作为输入数据源,支持时间序列数据。

  4. 多样化的图表风格:内置多种图表风格和颜色配置,可根据需求自定义图表外观。

  5. 简单的扩展性:支持与 Matplotlib 的其他功能结合,轻松扩展图表功能,如添加趋势线、技术指标等。

3 基本功能

1. 绘制基础蜡烛图

绘制蜡烛图是 mplfinance 的核心功能之一,用户只需提供开盘价、最高价、最低价和收盘价的数据即可绘制出高质量的蜡烛图。

import mplfinance as mpf
import pandas as pd

# 创建股票数据
data = {'Date': ['2023-10-01', '2023-10-02', '2023-10-03', '2023-10-04'],
        'Open': [100, 102, 105, 107],
        'High': [103, 106, 108, 109],
        'Low': [99, 101, 104, 106],
        'Close': [102, 105, 107, 108],
        'Volume': [1000, 1500, 1200, 1300]}

# 将数据转换为 DataFrame
df = pd.DataFrame(data)
df['Date'] = pd.to_datetime(df['Date'])
df.set_index('Date', inplace=True)

# 绘制蜡烛图
mpf.plot(df, type='candle', volume=True)

在这个示例中,使用了 Pandas 创建了一个简单的股票数据集,并通过 mplfinance.plot 函数绘制了带有交易量的蜡烛图。type='candle' 指定绘制蜡烛图,而 volume=True 则表示显示交易量。

2. 绘制 OHLC 图

OHLC(Open-High-Low-Close)图是另一种常见的金融数据展示形式,它展示了每个时间段的开盘、最高、最低和收盘价格。

# 绘制 OHLC 图
mpf.plot(df, type='ohlc', volume=True)

这个示例展示了如何通过简单地将 type 参数设置为 'ohlc' 来绘制 OHLC 图,同样支持显示交易量。

3. 自定义图表样式

mplfinance 提供了多种内置的图表样式,用户可以选择不同的风格来展示图表。常见的样式包括 classicmikenightclouds 等。

# 使用 'mike' 样式绘制蜡烛图
mpf.plot(df, type='candle', volume=True, style='mike')

通过更改 style 参数,可以轻松应用不同的图表风格。

4 高级功能

1. 添加技术指标

在金融数据分析中,技术指标(如移动平均线、布林带等)是重要的分析工具。mplfinance 支持通过 addplot 函数在图表中添加技术指标。

# 计算移动平均线
df['MA20'] = df['Close'].rolling(window=20).mean()

# 添加移动平均线到图表中
add_plot = mpf.make_addplot(df['MA20'])

# 绘制带有移动平均线的蜡烛图
mpf.plot(df, type='candle', volume=True, addplot=add_plot)

在这个示例中,首先计算了 20 日的移动平均线,并通过 make_addplot 创建了一个额外的绘图对象,将其添加到蜡烛图中。

2. 多图表组合

mplfinance 支持将多个图表组合到同一个绘图区域,例如价格图和交易量图,可以将不同的金融数据进行整合展示。

# 创建两个绘图对象,分别显示蜡烛图和交易量
fig, axes = mpf.plot(df, type='candle', volume=True, returnfig=True)

# 对绘图对象进行进一步自定义
axes[0].set_title("股票价格走势")
axes[2].set_title("交易量")

在这个示例中,通过 returnfig=True 参数获取了 Matplotlib 的 FigureAxes 对象,从而能够对图表的标题、坐标轴等进行更细粒度的自定义操作。

3. 绘制布林带

布林带是技术分析中常用的指标,它可以帮助分析市场的波动性。

可以通过 mplfinance 添加布林带到蜡烛图中。

# 计算布林带上下轨
df['Upper'] = df['Close'].rolling(window=20).mean() + 2*df['Close'].rolling(window=20).std()
df['Lower'] = df['Close'].rolling(window=20).mean() - 2*df['Close'].rolling(window=20).std()

# 创建布林带绘图对象
add_plots = [
    mpf.make_addplot(df['Upper'], color='g'),
    mpf.make_addplot(df['Lower'], color='r')
]

# 绘制带有布林带的蜡烛图
mpf.plot(df, type='candle', volume=True, addplot=add_plots)

通过计算价格的标准差和均值,创建了布林带的上下轨,并将其绘制在蜡烛图上。

5 总结

Python mplfinance 是一个高效的金融数据可视化工具,适合绘制蜡烛图、OHLC 图和交易量等常见的金融市场图表。它提供了简单且灵活的 API,支持直接使用 Pandas DataFrame 数据,快速生成高质量图表。mplfinance 内置多种图表样式,并支持添加技术指标,如移动平均线、布林带等,帮助用户更好地进行技术分析。其与 Matplotlib 无缝集成,允许用户自定义图表元素,并扩展图表功能。无论是用于股票、外汇还是期货市场,mplfinance 都能满足不同数据分析需求,是金融市场分析和量化交易可视化的理想工具。

THE END !

文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值