前言
前文已经讲述了如何根据 k 线数据进行绘制图形并创建价托建模,今天就结合 talib 类库强大的金融计算功能,介绍常见的技术指标计算方法,最终使用 matplotlib 绘图。
talib api
在绘图之前,需要先进行数据的计算,之前已经使用 k 线数据进行了均线计算,本文使用 k 线数据计算 macd 、kdj 、rsi 、boll 数据,以下仅作为数据绘图进行说明,后续会根据相关的指标进行建模,选择股票。
k线图
k 线图的绘制采用 mplfinance
进行绘制股票数据的k线图:
macd
macd 是股票技术分析中常用的手段,在买入和卖出股票时具有参考意义。macd 传入的数据是股票的收盘价数据,其快中慢线的参数数据分别 9、12、26 天。
# 计算 macd 数据,分别传入快中慢三个周期数据
# talib.MACD(close, fastperiod=12, slowperiod=26, signalperiod=9)
data["macd"], data["macd_signal"], data["macd_hist"] =
talib.MACD(data['Close'], fastperiod=12, slowperiod=26,signalperiod=9)
kdj
kdj 同样是股票技术分析的常用手段,只不过 kdj 的反映比 macd 要更灵敏一些。kdj 传入的数据也是收盘价数据,其参数数据分别为 9 、3、3.
# KDJ 值对应的函数是 STOCH
data['slowk'], data['slowd'] = talib.STOCH(
data['High'].values,data['Low'].values,data['Close'].values,
fastk_period=9,slowk_period=3,slowk_matype=0,slowd_period=3,slowd_matype=0)
# 求出J值,J = (3*K)-(2*D)
data['slowj'] = list(map(lambda x, y: 3 * x - 2 * y, data['slowk'], data['slowd']))
rsi 和 boll
强弱指标 rsi 和 boll 布林线传入的参数都是收盘价,强弱指标的数据的计算周期为 14 天,布林线传入的周期为 5、2、2。
# 计算 rsi 相对强弱指数
data["rsi"] = talib.RSI(data["Close"], timeperiod=14)
# 计算 boll 线数据
upper, middle, lower = talib.BBANDS(data["Close"], timeperiod=5, nbdevup=2, nbdevdn=2, matype=0)
数据绘图
在数据绘图部分,分为蜡烛图部分、成交量数据、以及针对 k 线的技术分析图,需要将数据合并到一张图进行展示,这就用到了图像的合并展示,使用 add_axes 进行合并展示: 绘制指标的代码如下图所示,可以参照股票软件的图形进行对比,其形态和数据指标具有很好的契合度。
最终展示的效果如下图所示:
总结
本文结合 talib 和 matplotlib 两个类库实现了股票走势图的数据计算和图形展示,学习到了 plot 函数的使用和图形的布局。在后续的文章中会介绍如何使用 macd 和 kdj 两个指标进行选取金叉和死叉的股票,相关的图形展示代码已经上传至 github
,欢迎大家的持续关注。
题外话
当下这个大数据时代不掌握一门编程语言怎么跟的上脚本呢?当下最火的编程语言Python前景一片光明!如果你也想跟上时代提升自己那么请看一下.
感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。
👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
工具都帮大家整理好了,安装就可直接上手!
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、Python视频合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试宝典