社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

写最少的代码,画最骚的K线。手把手教你用Python编程画出完美K线。

Python爱好者社区 • 3 年前 • 708 次点击  

这是邢不行第  68  期量化小讲堂的分享

作者 | 邢不行、助教-法玛




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


择时策略查看器


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


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




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


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


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


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


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


01 绘制普通的K线图 

02 加入成交量 

03 加入均线 

04 添加交易信号


需要获取文章中的数据和代码,可以扫描下方二维码或加我微信xbx297,都是可以发你的。




01

 绘制普通的K线图


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


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


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


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


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


K线数据文件


sh000688数据展示


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



如果你需要这些代码和数据,可以扫描下方二维码或加我微信xbx297,都是可以发你的。



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


1_画K线.py


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


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


选中代码后,单击鼠标右键


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



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




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


作图部分代码


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


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


up=’red’  down=’green’


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


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



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



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



02

加入成交量


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


2_加入成交量.py


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


不同之处在于:



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


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


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


下方的柱状图表示成交量(红涨绿跌)


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



如果你需要这些代码和数据,可以扫描下方二维码或加我微信xbx297,都是可以发你的。



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



03

加入技术指标


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


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


均线数据字段


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



3_加入均线.py



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


不同之处在于:



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


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




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


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


如果你需要这些代码和数据,可以扫描下方二维码或加我微信xbx297,都是可以发你的。



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



04

添加交易信号


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


数据中的交易信号


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


4_加入买卖点.py


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


不同之处在于:



第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),可以根据自己的偏好设定不同的颜色。


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



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


如果你需要这些代码和数据,可以扫描下方二维码或加我微信xbx297,都是可以发你的。




05

总结


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


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


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



联系作者



推荐阅读


邢不行 | 量化投资中如何计算机构、主力、散户资金流数据【视频】

资金流数据详解 | 一笔交易有买有卖,如何确定流入还是流出?【邢不行】

2018量化炒币7大玩法复盘 | 视频、PPT分享

收藏!量化小讲堂前50篇合集(含代码)

量化投资中经常使用Excel,可能会被同事打

警惕!数字货币交易所排名陷阱:到底哪家交易最活跃?(下)

历年排名前10的基金,在第2年表现如何?Python告诉你答案

在量化投资中,原来K线还能这么画(附画K线代码)


系列文章

点击图片即可阅读

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/127125
 
708 次点击