python 画图坐标按指数_量化交易中,如何使用Python画K线、成交量、买卖点【邢不行】...

efab55f3662b9ea6bc04b378b0ee649e.png

97e21ec150158af3ead694b3b6ab088a.png

之前有次直播的时候给大家演示过一个我们内部使用的工具 —— 择时策略查看器

8592de6005ec24acbdfab65cd2c8f154.png

在查看器的界面上,不仅可以清楚地看到K线图、均线等各类技术指标,还能显示出择时策略交易信号的买点、卖点。

在页面右侧可以看到每一笔买卖交易:

c925e22858fc8cc3241b7c8bad08be9a.png

点击“在图中显示”,K线页面就会对焦到该笔交易,展现它的开仓点、平仓点、收益率等信息。

这个工具主要是让大家更方便的阅读择时策略的逐笔交易,帮助开发、优化新的策略。一开始只是内部使用,后来开放给策略分享会的同学。

这件“神器”的主要部分是K线和相关指标的展示,看上去好复杂,会不会很难?

答案是:其实只需十几行Python代码,即便是毫无编程基础的小白也可以画出K线图。

本文就按照以下四步,讲解如何制作高大上的个性化行情分析神器:

01 绘制普通的K线图

02 加入成交量

03 加入均线

04 添加交易信号

01

绘制普通的K线图

这里我默认大家已经装好了Python以及相关环境,并且知道如何运行代码。

如果不会的话,请参考我之前写的这篇文章:

收藏 | 最最最最简单、最最最最详细的Python和Pandas安装教程

首先我们打开Anaconda, 在里面点击Spyder。

这里我已经为大家准备好三份数据,分别是比特币日K线比特币4小时K线,以及sh000688科创50指数日K线

178d92f17e83f3293f3dbd35917cd852.png

1519c89d71dddad6efd60285247e9768.png

除此之外,还有我们的4个程序文件:

87172ad2b8acc3e54f36769d007e266d.png

如果你需要这些代码和数据,可以加我微信xbx9585,可以发给你。

比特币4小时K线为例,打开“1_画K线.py”这个程序:

6ace2cd29df5cf72dedb1438ee914c60.png

其中第1、2的代码意思是导入我们事先安装好的第三方库,第5到第7行是导入本次作图需要用到的数据。

选中前7行代码,点击鼠标右键,再点击“Run Cell”,运行这几行代码:

37d92b6932dec08cfa54282b64817352.png

在界面右侧的Variable中可以看到,数据已经导入到程序中了:

d242c94351d4e6e22fe8fd48071460d7.png

我们在此双击“df”变量,便可以看到已经被导入的K线数据:

7d3c8b1bdbb248cefbee113c7da21012.png

接下来我们用导入的这份数据画K线图:

871583964245033b8f417117f14a4c5d.png

作图部分的代码是设置K线的颜色风格

如果我们希望K线的颜色和国内A股市场一样红涨绿跌,那么只需要把参数设置为:

up=’red’ down=’green’

第13行代码中edge的意思是设置K线边框的颜色,默认是黑色,edge=’inherit’的意思是保持K线边框的颜色与K线实体颜色一致。

运行全部代码,就可以画出比特币最近一段时间的K线图:

61f8758822ff75925b398c288f2d32b5.png

想要修改图中的纵坐标名称,只需修改代码第18行代码里的ylabel参数即可:

4bf0cc675d9559953043da2627fa2a97.png

现在我们已经可以画K线图了,那应该如何在普通的K线图中加入成交量呢?

02

加入成交量

打开“2_加入成交量.py”这个新的程序:

6f6514d02052d96c0ef57ccd9317be0f.png

这个程序前10行的代码和“1_画K线.py”程序完全一致,也是导入第三方库和读取数据。

不同之处在于:

d5fc3862f657402f52a399f9aa39eb49.png

首先,在第14行新增了一个volume参数,volume=’inherit’意思是将成交量柱状图的颜色设置为红涨绿跌,与K线一致。

其次,第19行作图代码中新增两个参数,volume=True的意思是将成交量添加到图中。ylabel_lower=’volume’意思是将成交量图的纵坐标命名为“volume”。

运行程序之后,可以看到添加了成交量的K线图:

5c4c7bdbf7c34bb2251c24ac2b025923.png

想要修改成交量纵坐标的名称,只需修改代码第20行代码里的ylabel_lower参数即可:

67677221783b649ab8ae6c159929effa.png

接下来讲解一下如何在K线图中加入技术指标。

03

加入技术指标

我们以均线为例,演示在K线图中添加技术指标。

我给大家提供的数据里已经算好了均线,只需按照代码将均线指标添加到画图函数即可。

7719602c249d97c45210a9bb2cddbecd.png

打开“3_加入均线.py”程序:

f1ce078d87a2722147c7086f03c74283.png

该程序的前16行代码和上面两个程序是相同的。

不同之处在于:

d5646441b77208f0d6e570a5a71b429d.png

第19行新增一个变量add_plot, 赋值为10日均线’ma_10’和50日均线’ma_50’,并且将add_plot变量添加到第21行的mpf.plot()方法中。

写好之后,运行程序,就能得到K线图:

ff53ddbb74f84879d3419e8fe858eb83.png

可以看到,K线中新增了两条移动平均线。蓝色的是50日均线橙色的是10日均线

大家应该能感受到,过程其实很简单,我们只要像搭积木一样在画图函数里添加相应的参数即可。

最后再来看看,如何将交易策略的开仓平仓信号,添加到K线中。

04

添加交易信号

我给大家提供的数据已经包含了交易信号,只需按照代码将交易信号添加到画图函数即可。

c140b2cad9110f5af34dedf0d72df7e0.png

打开“4_加入买卖点.py”程序:

3b4c7b52a519cfad05f29df2f441dbb5.png

这个程序的前16行代码和“3_加入均线.py”的程序是完全一样的。

不同之处在于:

b9abc52a22cf9514c27f3357bfaa31da.png

第19-22行代码中,add_plot变量新增了我们的交易信号。交易信号分为三种:

1. signal_long: 做多的开仓信号

2. signal_short: 做空的开仓信号

3. signal_0: 平仓的信号

marker参数用来设定交易信号图标的形状,marker=’^’表示向上的箭头, marker=’v’表示向下的箭头, marker=’o’表示圆圈。

color参数可以用来控制颜色,color=’g’表示绿色(green), ‘y’表示黄色(yellow), ‘b’表示蓝色(blue),可以根据自己的偏好设定不同的颜色。

运行程序,做出最终的行情分析器

ef6bac87e7839711b3a492e71fec2f8a.png

图中红色向上的箭头表示开多仓的位置,绿色向下的箭头表示开空仓的位置,黄色圆圈表示平仓的位置。

05

总结

现在我们已经成功绘制出比特币4小时K线,加入了成交量均线,并且还把我们自己的交易信号添加到K线中。

大家可以发现,编程其实也不难。就像搭积木一样,一点一点往上加就行。并且第四步的程序一共只需20几行Python代码,其中大部分还是注释和空格。

强烈建议感兴趣的同学可以自己尝试运行一下代码,体会会更不一样。加我微信xbx9585,我可以把作图需要的数据和代码都发给你。

77c912d0b85c31a2f20220822a1a6158.png
相关资源:TongWeb技术文档合集
已标记关键词 清除标记
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
<p> <strong><span style="background-color:#FFFFFF;color:#E53333;font-size:24px;">本页面购买不发书!!!仅为视频课购买!!!</span></strong> </p> <p> <strong><span style="color:#E53333;font-size:18px;">请务必到</span></strong><a href="https://edu.csdn.net/bundled/detail/49?utm_source=banner"><strong><span style="color:#E53333;font-size:18px;">https://edu.csdn.net/bundled/detail/49</span></strong></a><strong><span style="color:#E53333;font-size:18px;">下单购买课+书。</span></strong> </p> <p> <span style="font-size:14px;">本页面,仅为观看视频页面,如需一并购买图书,请</span><span style="font-size:14px;">务必到</span><a href="https://edu.csdn.net/bundled/detail/49?utm_source=banner"><span style="font-size:14px;">https://edu.csdn.net/bundled/detail/49</span></a><span style="font-size:14px;">下单购买课程+图书!!!</span> </p> <p> <br /> </p> <p> <span style="font-size:14px;">疯狂Python精讲课程覆盖《疯狂Python讲义》全书的主体内容。</span> </p> <span style="font-size:14px;">内容包括Python基本数据类型、Python列表、元组和字典、流程控制、函数式编程、面向对象编程、文件读写、异常控制、数据库编程、并发编程与网络编程、数据可视化分析、Python爬虫等。</span><br /> <span style="font-size:14px;"> 全套课程从Python基础开始介绍,逐步步入当前就业热点。将会带着大家从Python基础语法开始学习,为每个知识点都提供对应的代码实操、代码练习,逐步过渡到文件IO、数据库编程、并发编程、网络编程、数据分 析和网络爬虫等内容,本课程会从小案例起,至爬虫、数据分析案例终、以Python知识体系作为内在逻辑,以Python案例作为学习方式,最终达到“知行合一”。</span><br />
<p> <strong><span style="font-size:20px;color:#FF0000;">本课程主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者</span></strong> </p> <p> <span style="color:#FF0000;"><strong><span style="font-size:18px;">1. 包含:<span style="color:#FFFF00;background-color:#FF0000;">项目源码、</span><span style="color:#FFFF00;background-color:#FF0000;">项目文档、数据库脚本、软件工具</span>等所有资料</span></strong></span> </p> <p> <span style="color:#FF0000;"><strong><span style="font-size:18px;">2. 手把手的带你从零开始部署运行本套系统</span></strong></span> </p> <p> <span style="color:#FF0000;"><strong><span style="font-size:18px;">3. 该项目附带的源码资料可作为毕设使用</span></strong></span> </p> <p> <span style="color:#FF0000;"><strong><span style="font-size:18px;">4. 提供技术答疑和远程协助指导</span></strong></span><strong><span style="font-size:18px;"></span></strong> </p> <p> <br /> </p> <p> <span style="font-size:18px;"><strong>项目运行截图:</strong></span> </p> <p> <strong><span style="font-size:18px;">1)系统登陆界面</span></strong> </p> <p> <strong><span style="font-size:18px;"><img src="https://img-bss.csdn.net/202002241015433522.png" alt="" /><br /> </span></strong> </p> <p> <strong><span style="font-size:18px;"><strong><span style="font-size:18px;">2)学生模块</span></strong></span></strong> </p> <p> <strong><span style="font-size:18px;"><img src="https://img-bss.csdn.net/202002241015575966.png" alt="" /></span></strong> </p> <p> <strong><span style="font-size:18px;"><strong><span style="font-size:18px;">3)教师模块</span></strong></span></strong> </p> <p> <strong><span style="font-size:18px;"><img src="https://img-bss.csdn.net/202002241016127898.png" alt="" /></span></strong> </p> <p> <strong><span style="font-size:18px;"><strong><span style="font-size:18px;">4)系统管理员</span></strong></span></strong> </p> <p> <strong><span style="font-size:18px;"><img src="https://img-bss.csdn.net/202002241016281177.png" alt="" /></span></strong> </p> <p> <strong><span style="font-size:18px;"><img src="https://img-bss.csdn.net/202002241016369884.png" alt="" /></span></strong> </p> <p> <strong><span style="font-size:18px;"><br /> </span></strong> </p> <p> <strong><span style="font-size:18px;"><strong><span style="font-size:18px;">更多Java毕设项目请关注我的毕设系列课程 <a href="https://edu.csdn.net/lecturer/2104">https://edu.csdn.net/lecturer/2104</a></span></strong></span></strong> </p> <p> <strong><span style="font-size:18px;"><br /> </span></strong> </p>
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页