👇我的小册 40章+教程:( 小白零基础用Python量化股票分析小册 ) ,目前已经350多人订阅
量化是一个庞大的学科体系,华尔街早在很多年前就有了一帮精英在研究,集合了数学,统计学,计算机和金融几大学科的知识,其中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线来对比一下,看看是否一样:
显示的是一样的,可视化可以帮我们非常直观的观察你的策略和信号,是量化非常重要的一步。有的同学可能会抬杠,很多软件都有可视化,为啥我们还要自己动手做。这个问题就好像很多饭店都有菜,为啥你还要自己做饭。
自己动手画自己的策略,可以更深刻的理解自己的策略,而且很多策略和参数都是你自己定制的,股票软件上不一定有,所以掌握这个技能可以帮你更好的理解量化。
最后推荐一下我们团队写的量化小册的内容 ,45篇内容 !从Python安装,入门,数据分析,爬取股票基金的历史+实时数据,以及如何写一个简单量化策略,策略回测,如何看资金曲线统统都有介绍!非常超值!
欢迎订阅: 原价 199 早鸟价2杯咖啡钱,即可永久阅读。满400人又要涨价了,现在的价格非常非常低, 只要2杯奶茶,就可以终身订阅+课程源码 ,还有永久陪伴群。48小时无理由退款,放心食用!
推荐阅读:
量化: 如何用Python爬取创业板历史+实时股票数据!|实战股票分析篇利用Pandas 9招挖掘五粮液股价!|实战股票数据分析篇 Pandas滚动操作 |量化股票第一步,用Python画股票K线,双均线图,可视化你的股票数据!|如何用Python爬取全部800多只ETF基金数据!|如何用Python写一个双均线策略 |如何用Python开发一个多策略机器人!上篇!|Python量化系列-用布林策略买五粮液能赚多少钱?|只要4秒钟!用Python 获取上证指数34年的历史日线数据!
入门: 最全的零基础学Python的问题 | 零基础学了8个月的Python | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 | 从万众期待到口碑扑街!唐探3令人失望 | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏 | 九宫格 | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf! | 再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! | 60行代码做了一个语音壁纸切换器天天看小姐姐!|