效果还行,不但有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曲线。程序比较简单,我们来运行一下:
绘制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)
运行效果如下:
结语
大家可能注意到了,有很多代码在配色。是的,如果我们把所有的colorxxx都删掉,也可以显示出大致的曲线,但是却非常难看。这也是为什么要改变缺省matplotlib配色的原因。
大家可以实验一下更新前面的几个全局变量,比如换一换股票、MA或者开始结束日期什么的,这里给大家一个思考题:
在readstkData()切片时为什么只切了结束时间没有切开始时间P变量是干什么用的/p>
本专栏!
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览208235 人正在系统学习中 相关资源:wax_tasks:使用蜡Wa处理收集数据的实用程序任务-其它代码类资源…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!