量化是一个庞大的学科体系,华尔街早在很多年前就有了一帮精英在研究,集合了数学,统计学,计算机和金融几大学科的知识,其中Python目前是量化领域最通用的编程语言。
前面小编写了几篇关于股票量化的开胃菜,有粉丝同学私信我比较有兴趣,今天我们继续写,更多内容我们都看我们的小册:
我的小册:小白零基础用Python量化股票分析小册,原价199 早鸟价39(满100人涨10元)
今天带大家要用可视化的方法来分析股票数据了。我们平时一些券商或者是同花顺软件上看股票数据,都是看到的K线数据,其实我们也是可以自己用python代码来可视化的话,下面我们就来详细讲一讲。我们还是用五粮液100天的K线数据来演示:
很多教程选择matplot这个库来可视化的,但是这个库有字体乱码的问题,而且颜色也不是很好看,这次我们选择pyecharts这个库来进行可视化。
1.安装pyechats库
Pyecharts 是一个用于创建交互式图表和可视化的Python库。它是基于百度的 ECharts JavaScript 库的一个Python封装。ECharts 是一个广泛使用的、功能丰富的图表库,能够生成各种类型的图表,例如折线图、柱状图、饼图、散点图、地图、K线图等。
用pip install pyecharts 即可。
2.画出五粮液股票的K线图
我们导入pyecharts这个库,并且导入kline ,然后导入pandas开始读取数据 ,然后开始画图。
因为渲染的时候x轴必须是一个列表,所以需要线把我们的data这个dataframe数据提取交易日期这一列,然后转为列表
同样渲染的时候y轴是一个嵌套列表,包含了每一天的开盘/收盘/最高价/最低价,所以我们得到的ohlc就是这样长这样的:
[[165.45, 165.14, 163.88, 165.76], [165.2, 165.46, 165.0, 166.66] …
然后我们创建Kline这个对象即K线图,对它进行配置,Kline()
是Pyecharts
中用于生成K线图的类。添加x轴和y轴的数据(上面已经准备好了这2个数据)
kline.set_global_opts 是开始配置K线图一些全局配置:
-
xaxis_opts=opts.AxisOpts(is_scale=True)
: 设置x轴的配置。is_scale=True
表示x轴将自动缩放,以适应数据的范围。 -
yaxis_opts=opts.AxisOpts(...)
: 设置y轴的配置。其中包括使y轴自动缩放,以及定义分割区域的样式。splitarea_opts
用于设置y轴分割区域的显示(如显示网格),areastyle_opts
定义了区域的样式(如透明度)。 -
title_opts=opts.TitleOpts(title="五粮液100天K线图")
: 设置图表的标题。
这些设置帮助自定义图表的外观和行为,例如调整轴的缩放、样式和图表的标题。
最后我们会把生成的K线图保存到一个wuliangye_kline.html里面,我们看一下效果:
是不是有点小成就感,竟然可以手动画出了股票的K线图,而且因为是html类型,我们可以在网页上鼠标点击任何一根k线都可以看到具体的数据。不要急,我们后面还要继续增加一些内容。
3.在图上标出最高价和最低价
上面的图只是开胃菜,图还是很单调的,我们需要增加最高价和最低价
然后我们在kline配置y轴的时候,增加一个markpoint_opts,里面设置一下最高价和最低价配置即可,我们看一下效果图:
4.在图上画出10日MA均线
我们需要在上图的继续继续增加内容,我们要增加一根10日的均线,大家还记得前面的基础的pandas部分给大家讲过如何计算均线,其实就是用rolling函数()来计算即可。
首先我们计算一下ma10的均线,因为是10日的均线,所以第一日到第九日都是空的都是NaN, 从第10日开始才有值,
这行代码ma10 = data[‘收盘价’].rolling(window=10).mean().dropna()输出的结果:
9 169.081
10 170.517
11 171.751
12 172.332
13 173.251
就是从第10天开始的。
然后我们需要创建一个line对象(10均线),然后配置一下x轴和y轴的内容 ,接着我们需要把K线图和10日均线图叠加。
kline里的overlap函数用于组合多个图表,使得它们可以在同一个画布上显示,我们将MA10的折线图(line_ma10)添加到K线图(kline)上。然后初始化一个Grid布局,这是Pyecharts用于组合多个图表的一个布局容器。
Grid可以让你在一个网页上布局多个图表,并且可以调整每个图表的位置和大小。
init_opts参数用于初始化设置,其中width和height用于指定整个Grid布局的宽度和高度。在这里,我们将整个网格的大小设置为1400像素宽和800像素高。
最后grid.render()函数,它将渲染整个网格布局(包括所有添加的图表)到一个HTML文件中。我们看一下效果图:
我们可以看到整个K线图上加了一个MA10均线,而且当鼠标停在上面的时候,会精准的显示开盘价,收盘价,最低价,最高价和MA10均线值。
5.在图上画出10日,20 日 双MA均线
同理我们增加一个ma20的line对象,然后跟上面的图形组合,看一下代码:
基本设置跟前面的ma10一样,只是改了一下参数而已,我们看一下效果图吧:
然后我们跟实际的某券商股票软件上的K线来对比一下,看看是否一样:
显示的是一样的,可视化可以帮我们非常直观的观察你的策略和信号,是量化非常重要的一步。有的同学可能会抬杠,很多软件都有可视化,为啥我们还要自己动手做。这个问题就好像很多饭店都有菜,为啥你还要自己做饭。
自己动手画自己的策略,可以更深刻的理解自己的策略,而且很多策略和参数都是你自己定制的,股票软件上不一定有,所以掌握这个技能可以帮你更好的理解量化。
如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!
如果想要系统学习Python、Python问题咨询,或者考虑做一些工作以外的副业,都可以扫描二维码添加微信,围观朋友圈一起交流学习。
我们还为大家准备了Python资料和副业项目合集,感兴趣的小伙伴快来找我领取一起交流学习哦!
关于Python学习指南
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!
👉Python所有方向的学习路线👈
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)
👉Python学习视频600合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python70个实战练手案例&源码👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉Python大厂面试资料👈
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
👉Python副业兼职路线&方法👈
学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。
👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取【保证100%免费
】