如何用Python画出漂亮的股票K线—布林指标-成交量图

👇我的小册 40章+教程:(小白零基础用Python量化股票分析小册) ,目前已经300多人订阅

本篇是我们量化小册中的一篇(小册内容详细看上面),前面我们讲了很多内容,如何准备爬取数据,拿到数据如何清洗,如何回测,如何用策略去开仓平仓,如何可视化等等。

但是有的时候我们开了信号,但是不知道怎么可视化,比如我需要把K线,指标,成交量都画在一张图上,这样方便我们回测的时候分析,最后时机可以拖动放大,其实不难,100多行Python代码就可以轻松搞定,我们先来看一下效果:

64e5aad423b56b0e73ecec5262f3198e.png

上面的图就是茅台的股票数据图,有k线,有布林指标,有成交量,看起来还不错。怎么画的呢,其实我们前面的文章讲过一些,用python的pyecharts来画的,其实还可以画很多指标,比如cci, macd,obv 等等,今天我们就画上图这样一个简单的。

1.准备数据,数据预处理

首先你需要拿到一个股票的日线数据,当然分钟线,小时线也可以(如何免费获取股票历史数据我们前面都讲过,小册里面也有),我这边就准备了一份茅台的历史数据,长这样:

5cc16b76dfc9e054a222908d439c19e0.png

这个是标准的k线数据,开盘价,最高价,收盘价,最低价,成交量,成交额,这些数据,拿到之后我们稍微处理一下即可。

23607950cfe0b051d301696980c5c41c.png

然后处理好数据之后,我们就开始计算指标,比如我们上面图里画布林指标,需要先计算一下,布林策略(我们前面详细深入的解读过这个策略,可以翻历史文章),计算布林的公式如下:

ed6af1ee2393983caeb0f074524ad7fc.png

我们默认的是20个周期,然后2个标准差来计算的,布林的上轨,中轨和下轨的线。然后我们需要把数据稍微处理一下,主要是为画图喂相应的格式:

ed81bf8b0a95adca653046f25d0f0167.png

2.开始画图

我们画图有3部分组成:k线,布林指标(折线图)和成交量的柱状图,3个图合成在一起构成了上面的图。下面我们来详细说说:

1).先画k线图

pycharts图里面自带了kline的函数,可以非常方便的话出股票的k线。核心的代码如下:

4ec3315d419c896e2a6caada0d196a1b.png

调用kline函数,x轴填入我们的股票的日线k线数据的datas = df[['open', 'close', 'low', 'high']].values.tolist() ,就是常见的open/high/low/close ,然后y轴填入日期,styleopts里面填入阳线和阴线常见的颜色即可成型。我们看一下效果:

2a9bd5587c239e24be972c3fffe85499.png

2).添加横坐标的日期放大功能

因为我们的股票的数据周期比较长,有几年,十几年的数据。需要对时机轴进行缩小和放大的功能,这样才能方便我们观察数据,怎么添加这个功能呢,很简单,在kline()里面增加一个datazoom_opts配置,然后可以设置一下即可

7c5bc94b559012d757b8824ffee3fd65.png

我们默认是把横坐标的日期放在[80,100]的地方,看一下效果:

4a2c28670e8404b58dc74601567a1bec.png

3). 增加布林指标

布林指标其实就是折线图,跟以前我们讲过的双均线指标一样的,只是布林分上轨,中轨,下轨线而已。我们拿一个上轨的为例说一下:

b5acdcbb09647c7bd750f2e49f94ab7b.png

里面pyecharts 里面的line()函数,x轴喂的是我们的股票里面的日期列表,然后y轴是我们的上轨的数据,颜色设置为红色。

line_upper = draw_line(series_name="上轨", xaxis_data=data['dates'], y_axis=data['upperband'], color='red')

我们看一下效果:

ddbab59f2e8e14cde6794775d7776504.png

其他的中轨和下轨都是类似的,我就不一一展开了,下面我们继续画成交量数据bar图。

4).成交量bar图

完成了上面的操作之后,我们还剩下一个成交量bar图,看一下核心代码:

b14bcf0cd75b4aefe2053b8b3112fd34.png

调用pyecharts里面的bar函数,然后x轴喂入我们的股票日期数据,y轴喂入我们的成交量数据,其他的参数用默认的即可,看一下效果:

5c490584b8ba52e7d88613dab80a10e3.png

最后我们把这几个图都合成到一个图里面即可。

5).合成图

pyecharts里面有一个Grid()类可以把多个指标图合成到一起,我们看一下代码即可:

781a2b2d987f12c6a8b455ed75d2c118.png

先设置一下grid()这个画布大小,我们默认用1380*600 px ,然后把kline ,布林的上轨,中轨,下轨,bar图都添加到Grid()里面即可。除了指标,我们还可以把回测的交易信号也放到图上,后面我会再写一篇详细讲一下。

好了,限于篇幅,我就不展开详细讲了,源码都在小册群里面,拿到源码自己跑一下即可。对量化有兴趣的同学可以看我们的小册,目前会员群里面已经几百个同学了,有兴趣的火速加入。

4af83341fa8df9b72c7e0ce8c83171e1.jpeg

最后推荐一下我们团队写的量化小册的内容,45篇内容!从Python安装,入门,数据分析,爬取股票基金的历史+实时数据,以及如何写一个简单量化策略,策略回测,如何看资金曲线统统都有介绍!非常超值!

欢迎订阅:原价199 早鸟价2杯咖啡钱,即可永久阅读。现在的价格非常非常低,只要2杯奶茶,就可以终身订阅+课程源码,还有永久陪伴群。48小时无理由退款,放心食用!

03ab9768d89523672feeeb1e6c93e580.png

推荐阅读:
量化: 如何用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行代码做了一个语音壁纸切换器天天看小姐姐!

  • 17
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在python中画股票k线并添加均线,可以按照以下步骤进行操作: 1. 导入必要的库:使用`import`语句导入需要的库,例如`import matplotlib.pyplot as plt`和`import mpl_finance as mpf`。 2. 准备数据:将股票的历史数据存储在一个数据框中,确保数据框包含日期、开盘价、最高价、最低价和收盘价等必要的列。 3. 计算均线数据:使用`rolling`函数和`mean`函数计算5日均线和10日均线的数据,并将结果存储在数据框的新列中。例如,使用以下代码计算5日均线和10日均线: ``` df['M5'] = df['close'].rolling(5).mean() # 5日均线 df['M10'] = df['close'].rolling(10).mean() # 10日均线 ``` 4. 创建画布和子:使用`plt.subplots`函数创建画布和子,并设置画布的大小。例如,使用以下代码创建一个大小为15x6的画布和子: ``` fig, ax = plt.subplots(figsize=(15, 6)) ``` 5. 绘制k线:使用`mpf.candlestick_ochl`函数绘制k线,传入子名称、股票历史数据、k线柱的宽度、涨跌颜色和柱形透明度等参数。例如,使用以下代码绘制k线: ``` mpf.candlestick_ochl(ax, df_arr, width=0.6, colorup='r', colordown='g', alpha=1) ``` 6. 添加均线:使用`plt.plot`函数在同一子绘制线。例如,使用以下代码绘制5日均线和10日均线: ``` plt.plot(df_arr[:, 0], df['M5']) # 绘制5日均线 plt.plot(df_arr[:, 0], df['M10']) # 绘制10日均线 ``` 7. 添加标题和坐标轴标签:使用`plt.title`、`plt.xlabel`和`plt.ylabel`函数分别设置标题、x轴标签和y轴标签。例如,使用以下代码添加标题和标签: ``` plt.title('股票名称') # 设置标题 plt.xlabel('日期') # 设置x轴标签 plt.ylabel('价格') # 设置y轴标签 ``` 8. 设置刻度格式:使用`ax.xaxis_date`函数将x轴刻度设置为常规日期格式。 9. 显示像:使用`plt.show`函数显示绘制像。 请注意,上述步骤中的变量名和参数值应根据实际情况进行调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python绘制股票k线](https://blog.csdn.net/hjhlln/article/details/127282449)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值