python绘制蜡烛图_一步一步教你用Python画出专业的K线图

漂亮的界面是量化程序的脸面,直观专业的界面能帮助我们了解股票的走势和形象地展示量化交易的结果。本文介绍如何使用matplotlib做出专业的K线图和展示各种技术指标:

python绘制蜡烛图_一步一步教你用Python画出专业的K线图

效果还行,不但有K线,还叠加了MA1和MA2。下面我们来绘制其他技术参数。

绘制RSI

下面我们在顶部加入RSI:# plot an RSI indicator on top

maLeg = plt.legend(loc=9, ncol=2, prop={‘size’:7},

fancybox=True, borderaxespad=0.)

maLeg.get_frame().set_alpha(0.4)

textEd = pylab.gca().get_legend().get_texts()

pylab.setp(textEd[0:5], color = ‘w’)

ax0 = plt.subplot2grid((6,4), (0,0), sharex=ax1, rowspan=1, colspan=4, axisbg=’#07000d’)

rsi = rsiFunc(daysreshape.Close.values)

rsiCol = ‘#c1f9f7’

posCol = ‘#386d13’

negCol = ‘#8f2020’

ax0.plot(daysreshape.DateTime.values[-SP:], rsi[-SP:], rsiCol, linewidth=1.5)

ax0.axhline(70, color=negCol)

ax0.axhline(30, color=posCol)

ax0.fill_between(daysreshape.DateTime.values[-SP:], rsi[-SP:], 70, where=(rsi[-SP:]>=70), facecolor=negCol, edgecolor=negCol, alpha=0.5)

ax0.fill_between(daysreshape.DateTime.values[-SP:], rsi[-SP:], 30, where=(rsi[-SP:]

ax0.set_yticks([30,70])

ax0.yaxis.label.set_color(“w”)

ax0.spines[‘bottom’].set_color(“#5998ff”)

ax0.spines[‘top’].set_color(“#5998ff”)

ax0.spines[‘left’].set_color(“#5998ff”)

ax0.spines[‘right’].set_color(“#5998ff”)

ax0.tick_params(axis=’y’, colors=’w’)

ax0.tick_params(axis=’x’, colors=’w’)

plt.ylabel(‘RSI’)

我们在ax1的上面加上了ax0子图,用以绘制RSI曲线。程序比较简单,我们来运行一下:

python绘制蜡烛图_一步一步教你用Python画出专业的K线图

绘制MACD

我们再在最下面画出MACD图。经过了前面那些步骤,你一定知道只要增加个新的子图就好了。是的,程序比较简单:# plot an MACD indicator on bottom

ax2 = plt.subplot2grid((6,4), (5,0), sharex=ax1, rowspan=1, colspan=4, axisbg=’#07000d’)

fillcolor = ‘#00ffe8’

nslow = 26

nfast = 12

nema = 9

emaslow, emafast, macd = computeMACD(daysreshape.Close.values)

ema9 = ExpMovingAverage(macd, nema)

ax2.plot(daysreshape.DateTime.values[-SP:], macd[-SP:], color=’#4ee6fd’, lw=2)

ax2.plot(daysreshape.DateTime.values[-SP:], ema9[-SP:], color=’#e1edf9′, lw=1)

ax2.fill_between(daysreshape.DateTime.values[-SP:], macd[-SP:]-ema9[-SP:], 0, alpha=0.5, facecolor=fillcolor, edgecolor=fillcolor)

plt.gca().yaxis.set_major_locator(mticker.MaxNLocator(prune=’upper’))

ax2.spines[‘bottom’].set_color(“#5998ff”)

ax2.spines[‘top’].set_color(“#5998ff”)

ax2.spines[‘left’].set_color(“#5998ff”)

ax2.spines[‘right’].set_color(“#5998ff”)

ax2.tick_params(axis=’x’, colors=’w’)

ax2.tick_params(axis=’y’, colors=’w’)

plt.ylabel(‘MACD’, color=’w’)

ax2.yaxis.set_major_locator(mticker.MaxNLocator(nbins=5, prune=’upper’))

for label in ax2.xaxis.get_ticklabels():

label.set_rotation(45)

运行效果如下:

python绘制蜡烛图_一步一步教你用Python画出专业的K线图

结语

大家可能注意到了,有很多代码在配色。是的,如果我们把所有的colorxxx都删掉,也可以显示出大致的曲线,但是却非常难看。这也是为什么要改变缺省matplotlib配色的原因。

大家可以实验一下更新前面的几个全局变量,比如换一换股票、MA或者开始结束日期什么的,这里给大家一个思考题:

在readstkData()切片时为什么只切了结束时间没有切开始时间P变量是干什么用的/p>

欢迎关注本专栏!

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览208235 人正在系统学习中 相关资源:wax_tasks:使用蜡Wa处理收集数据的实用程序任务-其它代码类资源…

来源:蛏子圣子

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月11日
下一篇 2021年1月11日

相关推荐