ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

mplfinance模块详解

2022-06-18 14:03:57  阅读:131  来源: 互联网

标签:plot 00 01 04 详解 2020 模块 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模块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)

输出:

 

更全面的讲解请移步到原文 https://blog.csdn.net/wuwei_201/article/details/105781844

知识扩展:mplfinance实现全功能动态交互式K线图

标签:plot,00,01,04,详解,2020,模块,mplfinance
来源: https://www.cnblogs.com/yuyanc/p/16388190.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有