需求图如何画工具_量化工具 | 如何利用Python绘制K线和成交量组合图?附代码...

795241e219c6b47996535dc593f1577f.png

编辑 | Cowboy

校对 | 李明

来源 | 牛角财经

目的 | 量化工具 | 如何利用Python绘制K线和成交量组合图?附代码

4416ecf1ec2c6ed31c91c508cad80d28.png

速览:

本文将分享如何利用python绘制K线图,代码量不多。但是能够达到大多数读者的要求。绘制k线图重点的是非交易时间短的处理,处理不当会造成k线图空缺或收盘价不连续。读者如需文章中的代码,回复文章标题即可领取。

85c5f8209a806916c6083bdf8bd152f2.png

K线图

K线图这种图表源处于日本德川幕府时代,被当时日本米市的商人用来记录米市的行情与价格波动,后因其细腻独到的标画方式而被引入到股市及期货市场。目前,这种图表分析法在我国以至整个东南亚地区均尤为流行。

cd380df18fdf6979ab173f9c2b143b58.png

由于用这种方法绘制出来的图表形状颇似一根根蜡烛,加上这些蜡烛有黑白之分,因而也叫阴阳线图表。通过K线图,我们能够把每日或某一周期的市况表现完全记录下来,股价经过一段时间的盘档后,在图上即形成一种特殊区域或形态,不同的形态显示出不同意义。我们可以从这些形态的变化中摸索出一些有规律的东西出来。K线图形态可分为反转形态、整理形态及缺口和趋向线等。

fd94b10f4b11f163d0beb58563cc741e.png

1.导入数据处理包、k线绘制模块

导入:

2D绘图包

pandas

mpl_finance.py

tushare数据源。mpl_finance.py 这里的模块需要和代码放同一个目录下运行。

代码:

import tushare as tsimport numpy as npimport matplotlib.pyplot as pltimport mpl_finance as mpfimport talib as tl

2.计算10、30日均线

这里主要设置数据的起始日期、获取股票(300427)的开高低收、成交量等基础数据并通过talib指标库中的SMA方法计算收盘价的10日均线和30日均线。时间范围:2018-04-01至2019-07-01。

注意:这里的数据是反的,我们用sort_index()按时间先后进行排序。

代码:

"设置起始日期"start_date ='2018-04-01'End_date = '2019-07-01'​"导入数据"df_300427 = ts.get_hist_data('300427',start=start_date,end=End_date)df_300427=df_300427.sort_index()​"计算均线"sma_10 = tl.SMA(np.array(df_300427['close']), 10)sma_30 = tl.SMA(np.array(df_300427['close']), 30)​"可视化均线"ax1.plot(sma_10, label='MA10')ax1.plot(sma_30, label='MA30')ax1.plot(df_300427['close'])ax1.legend();plt.show()

run:

977109e7e1d757c725a84ec2a398ffd9.png

3.利用mpl_finance.py模块制k线图

原来matplotlib包里面有相关绘制K线图的方法,原来的方法:import matplotlib.finance as mpf ,但是作者尝试了发现这种方式已经不行了,应该是将模块独立出来了,也就是文章中所用到的mpl_finance.py。

例如:

import matplotlib.finance as mpf​

报错:

ModuleNotFoundError: No module named 'matplotlib.finance'

01

绘制K线图

利用mpl_finance.py绘制K线图是相当容易,而且不会出现K线空缺或者收盘价不连续、时间轴密集等问题。下面我们开始吧!我们将前面代码综合到这步骤。

通过mpl.candlestick2_ochl ( )方法绘制K线图,具体参数如下:

mpl.candlestick2_ochl ( ax1,开,收,高,低,k线宽度,阳线颜色,阴线颜色,透明度)

代码:

import tushare as tsimport numpy as npimport matplotlib.pyplot as pltimport mpl_finance as mpfimport talib as tl​​"设置起始日期"start_date ='2018-04-01'End_date = '2019-07-01'​"导入数据"df_300427 = ts.get_hist_data('300427',start=start_date,end=End_date)df_300427=df_300427.sort_index()​"计算均线"sma_10 = tl.SMA(np.array(df_300427['close']), 10)sma_30 = tl.SMA(np.array(df_300427['close']), 30)​"可视化"fig,(ax1,ax2) = plt.subplots(2,1,figsize=(15,5))mpf.candlestick2_ochl(ax1, df_300427['open'], df_300427['close'], df_300427['high'],df_300427['low'], width=0.6, colorup='r', colordown='g', alpha=0.75)ax1.plot(sma_10, label='MA10')ax1.plot(sma_30, label='MA30')ax1.legend();ax1.grid()ax2.grid()plt.show()

run:

ed3d92e72e79d9165c6ba037929982fd.png

02

绘制成交量图与K线图组合

绘制成交量图我们利用mpl_finance.py里面的volume_oerlay方法绘制。具体参数如下:

mpf.volume_overlay(ax2, 开,收,成交量,阳线颜色,阴线颜色,柱状宽,透明度)。

代码:

import tushare as tsimport numpy as npimport matplotlib.pyplot as pltimport mpl_finance as mpfimport talib as tl​​"设置起始日期"start_date ='2018-04-01'End_date = '2019-07-01'​"导入数据"df_300427 = ts.get_hist_data('300427',start=start_date,end=End_date)df_300427=df_300427.sort_index()​"计算均线"sma_10 = tl.SMA(np.array(df_300427['close']), 10)sma_30 = tl.SMA(np.array(df_300427['close']), 30)​​fig,(ax1,ax2) = plt.subplots(2,1,figsize=(15,5))mpf.candlestick2_ochl(ax1, df_300427['open'], df_300427['close'], df_300427['high'],df_300427['low'], width=0.6, colorup='r', colordown='g', alpha=0.75)mpf.volume_overlay(ax2, df_300427['open'], df_300427['close'], df_300427['volume'], colorup='r', colordown='g', width=0.5, alpha=0.8)ax1.plot(sma_10, label='MA10')ax1.plot(sma_30, label='MA30')ax1.legend();ax1.grid()ax2.grid()plt.show()

run:

5793ad1a3b63e5ca3517e6fb2ddd1960.png

4.总结

至此已经将k线与成交量组合图实现的整个过程分享出来了,读者可根据自身需要进行修改使用。在matplotlib中已经没有finance模块了,现在已经分离出来,需要用独立的模块mpl_finance.py。

0df911b375ae07ad5ff33412beb4996c.png

如需本章案例代码,微信关注:‘牛角财经’,回复文章标题,即可领取!

往期热文

量化研究:

1.python量化工具 |利用Python在策略中加入跟踪止盈止损模块(附代码)

2.TB量化兵器库 | 如何在TB中量化 “上升三角形” 和 “下降三角形”(附代码)?

3.量化工具 | 如何利用python将tick数据合成分钟数据并跨周期获取"MA"技术指标???(附代码)

4.量化工具 | 如何建立自己的量化交易系统?

5.量化工具 | 利用Python开发MACD跨周期策略(附代码)!!!

资金管理:

1.量化工具 | 动态资金管理—1-2-3-1法,连续亏损N笔后启动!!!(附代码)

2.量化工具| 资金管理-如何利用凯利公式:f=(bp-q)/b 确定最优的投注比例?

3.量化工具 | 资金管理-安全F值法与递减F值法

量化教程:

1.初识 | 人生苦短,我用Python!

2.python量化基础 | 变量和简单的数据类型,零基础都可以看懂!!!

3.python量化基础 | 变量和简单的数据类型-字符串

4.量化工具 | 如何建立自己的量化交易系统?

5.python量化基础 | 变量和简单的数据类型-数字和运算符

点击下方二维码即可关注‘牛角财经’

64b816cfbea4c3b400875b470f8766f6.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
html5和c++开源 K线工具, Create interactive charts easily for your web projects. Used by tens of thousands of developers and 61 out of the world's 100 largest companies, Highcharts is the simplest yet most flexible charting API on the market. Read more » Download » TemperatureRainfallTokyo climateSunshine hoursJanFebMarAprMayJunJulAugSepOctNovDec5°C10°C15°C20°C25°C30°C0 mm50 mm100 mm150 mm200 mm250 mmHighcharts.com Highstock Highstock lets you create stock or general timeline charts in pure JavaScript. Including sophisticated navigation options like a small navigator series, preset date ranges, date picker, scrolling and panning. Read more » Download » ZoomUSD to EUR14. Feb21. Feb28. Feb7. Mar14. Mar21. Mar28. Mar4. Apr11. Apr18. Apr25. Apr2. May9. May20042006200820100.70.650.751m3m6mYTD1yAllHighcharts.com Highmaps Interactive map charts with drilldown and touch support. Build interactive maps to display sales, election results or any other information linked to geography. Perfect for standalone use or in dashboards in combination with Highcharts! Read more » Download » Highcharts © Natural Earth Highcharts Cloud Online charts for non-techies. Create smashing, interactive diagrams for your news site or blog, or for sharing with your friends on social media. Read more » Highcharts Cloud 1 2 3 4 Free for non-commercial Do you want to use Highcharts for a personal website, a school site or a non-profit organisation? Then you don't need our permission, just go on! HTML 5 Based on native browser technologies, no plugins needed Open Fork us on GitHub and participate in tech discussions Compatible With modern browsers including mobile, tablets and old IE back to IE6 Dynamic Add, remove and modify series and points or modify axes Any chart you'd like Highcharts supports line, spline, area, areaspline, column, bar, pie, scatter, angular gauges, arearange, areasplinerang
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值