新mplfinance模块详解(一)
目录
一、概述
mplfinance模块说明
mplfinance安装
二、mplfinance模块plot基本用法
调用
修改plot绘图类型
增加绘制均线
绘制成交量
自动剔除非交易日空白
三、make_addplot的基本用法
一、概述
python中调用mpl_finance已经出现警告:
================================================================= WARNING: `mpl_finance` is deprecated: Please use `mplfinance` instead (no hyphen, no underscore). To install: `pip install --upgrade mplfinance` For more information, see: https://pypi.org/project/mplfinance/ =================================================================
从官方介绍的历史版本看mplfinance是从0.11.x版2019年12月20日开始更新频繁的,之前的0.10.x版最近的更新在2016年,那么说这个新模块的取代刚刚不到半年的时间,从论坛上搜索资料还比较少。
mplfinance与mpl_finance功能相近但是区别还是很大的,之前的candlestick2_ochl()方法已经没有了,取而代之的是plot和make_addplot,这两个方法的参数也更是不同,新模块的plot可以直接使用pandas数据格式(旧模块mpl_finanace只支持numpy数据交互),而且可以自动完成额外的matplotlib工作(旧模块只能手动完成,而旧模块的API在这个包中仍然可用;),总体来说新模块mplfinance使用更便捷。
mplfinance模块说明
mplfinance是专用于金融数据的可视化分析模块,是基于matplotlib的实用模块程序。
基于前面的介绍,可以确定使用前必须确保已经安装了matplotlib和pandas。
mplfinance使用是简直太方便,绘制个均线什么的一个关键字参数解决,剔除停盘时间段的空白不用你想它已经自动做了,还有时间坐标都是自动完成的,比如显示的是当天k线就只显示时间,跨天就自动带上日期,跨年就自动带上年份,哇,mplfinance在使用上不要太方便、太人性化!
mplfinance安装
上面调用旧模块mpl_finance的警告中已经提醒了:
pip install --upgrade mplfinance
或者github下载
二、mplfinance模块plot基本用法
调用
import mplfinance as mpf mpf.plot(data)
这里需要强调的是参数data的类型,data必须是pandas.DataFrame数据类型,对所包含的列也有要求,必须包含’Open’, 'High’, 'Low’ 和 'Close’ 数据(注意:首字母是大写的),而且行索引必须是pandas.DatetimeIndex,行索引的名称必须是’Date'(同理注意首字母大写),此外还有一列是’Volume’,这一列不是必须的,可选项(前提是你不想绘制成交量的话)。例如:(后面举例就以这些数据为例)
Open High Low Close Volume Date 2020-04-01 00:00:00 23646.00 23646.00 23622.00 23624.00 74 2020-04-01 00:01:00 23623.00 23627.00 23612.00 23627.00 68 2020-04-01 00:02:00 23626.00 23631.00 23612.00 23615.00 59 2020-04-01 00:03:00 23612.00 23625.00 23609.00 23610.00 62 2020-04-01 00:04:00 23608.00 23619.00 23604.00 23606.00 58 2020-04-01 00:05:00 23606.00 23620.00 23605.00 23620.00 50 2020-04-01 00:06:00 23621.00 23629.00 23620.00 23624.00 51 2020-04-01 00:07:00 23626.00 23644.00 23620.00 23639.00 78 2020-04-01 00:08:00 23639.00 23642.00 23631.00 23636.00 74 2020-04-01 00:09:00 23635.00 23654.00 23635.00 23651.00 72 2020-04-01 00:10:00 23654.00 23655.00 23644.00 23648.00 54 2020-04-01 00:11:00 23648.00 23652.00 23631.00 23638.00 67 2020-04-01 00:12:00 23640.00 23646.00 23638.00 23644.00 65 2020-04-01 00:13:00 23644.00 23645.00 23633.00 23640.00 71 2020-04-01 00:14:00 23637.00 23640.00 23625.00 23625.00 68 2020-04-01 00:15:00 23624.00 23636.00 23623.00 23633.00 79 2020-04-01 00:16:00 23633.00 23634.00 23612.00 23614.00 75 2020-04-01 00:17:00 23615.00 23626.00 23614.00 23626.00 77 2020-04-01 00:18:00 23626.00 23626.00 23605.00 23607.00 67 2020-04-01 00:19:00 23605.00 23610.00 23599.00 23607.00 65 2020-04-01 00:20:00 23607.00 23616.00 23594.00 23595.00 57 2020-04-01 00:21:00 23594.00 23600.00 23588.00 23591.00 67 2020-04-01 00:22:00 23589.00 23597.00 23586.00 23590.00 64 2020-04-01 00:23:00 23589.00 23592.00 23584.00 23587.00 60 2020-04-01 00:24:00 23585.00 23589.00 23580.00 23580.00 57 2020-04-01 00:25:00 23578.00 23578.00 23552.00 23553.00 63 2020-04-01 00:26:00 23552.00 23562.00 23546.00 23558.00 55 2020-04-01 00:27:00 23556.00 23563.00 23548.00 23551.00 82 2020-04-01 00:28:00 23550.00 23557.00 23541.00 23551.00 61 2020-04-01 00:29:00 23551.00 23570.00 23550.00 23569.00 67
输出结果:
修改plot绘图类型
通过参数type修改绘图类型,默认是ohlc,可修改为:type='candle’ 或者 type='line’,这个想必不用解释直接上结果:
mpf.plot(data,type='candle')
输出:
mpf.plot(data,type='line')
这里可以通过linecolor关键字参数设置线的颜色,如:mpf.plot(data,type='line’, linecolor='g’),linecolor参数仅仅在type='line’时起作用。
输出:
增加绘制均线
关键字参数 mav=(2, 5, 10),多条均线使用元组,只绘制一条均线,可以mav=10;
mpf.plot(data, type='line', mav=(2, 5, 10))
输出:
绘制成交量
关键字参数, volume=True
mpf.plot(data, type='candle', mav=(2, 5, 10), volume=True)
输出:
自动剔除非交易日空白
关键字参数show_nontrading=False,其实show_nontrading默认就是False,官方文档中提到,可能有人想看到停盘的时间段,那就show_nontrading=True;
这里找了一段有停盘的数据展示下show_nontrading=True的情况(上面的数据没有停盘时间);False是默认,与上面展示的图形无疑,这里就不展示了
# 显示非交易时间的空白 mpf.plot(data,type='candle',mav=(2, 5, 10), volume=True,show_nontrading=True)
输出: