干货!写最少的Python代码,画最骚的K线!

56d5f15c5bd60bcef00c0ee555c28f87.jpeg

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

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

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

04e4f419b85417e8db65bb709d69f541.gif

择时策略查看器

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

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

947e1843e4714db7e07246461f2cc2e1.png

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

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

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

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

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

01 绘制普通的K线图 

02 加入成交量 

03 加入均线 

04 添加交易信号

如果你看完后有任何问题,都可以扫描下方二维码或加我微信xbx971,和我交流。

5fc0658dbfe7e88d175be9696f2bcf02.png

01

 绘制普通的K线图

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

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

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

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

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

a71334291c350664d82e0f6ea45884b3.png

K线数据文件

01690eb11a539d555a9e50812f43f438.png

sh000688数据展示

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

16edefd43451d98f526213ee57515202.png

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

e604f26592baf102ce8bfdeb311cee83.png

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

e83b0537eb67df1822c385b1ec84d9c2.png

1_画K线.py

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

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

5169f732de98697493da77439e8bc5f0.png

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

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

dbbf42d93f004677d7b6d4391891a4e4.png

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

fae59fe9905812888deb662579241ea6.png

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

89f7946f4ff6ce3243930d10997b1ac4.png

作图部分代码

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

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

up=’red’  down=’green’

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

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

e56219fb88baf919d28701bf6ec28fb8.png

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

b8a4545ea4e0fec4ccd79f0d8a366007.png

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

如果你对上述的数据和代码感兴趣的话,可以扫描下方二维码或加我微信xbx971,都是可以免费发给你的。

d26604c68464c6e5384a90ec922e5a49.png

02

加入成交量

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

63af424430a11be57fcb79befb90e2cf.png

2_加入成交量.py

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

不同之处在于:

a46b7615dbd1c80385a4cdd0664293a6.png

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

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

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

512393f6dbfbdbb5a6f391e13f27d3bb.png

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

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

209371931576ef695355a183b6ae457f.png

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

03

加入技术指标

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

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

1e7224dba69867edcb335481b2370c79.png

均线数据字段

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

5168d4e99a060ca49e7bcf80f323f04e.png

3_加入均线.py

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

不同之处在于:

76bb27b410ab64d29b00a41ffbaab840.png

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

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

dc1bbd1872473da4a45b28ba78a618c9.png

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

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

如果你对上述的数据和代码感兴趣的话,可以扫描下方二维码或加我微信xbx971,都是可以免费发给你的。

9c9c8b2a3e6877230f2a6943658cb510.png

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

04

添加交易信号

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

15c41d1d459c234742a60b8e47f35848.png

数据中的交易信号

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

2b41830263a16cae93cafaf694854fd5.png

4_加入买卖点.py

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

不同之处在于:

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

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

781e7a07719eeff8de9633a6f19def07.png

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

05

总结

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

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

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

3d2000864b1ee374cd2204dcac8d1b6b.png

06

后记

文章的最后,和大家分享一点量化投资的心得

很多人问我小白如何开始学习量化投资,有什么可以书单推荐

我的建议是千万不要直接找本书来看。

你找本编程书看,那跟着敲完“Hello World”就结束了;你找本数学书看,那看到第七页的公式就睡着了。

ac144a495eb8d21f8d02917fc68665ab.png

更好的学习方式是做实际的项目,在实践中学习量化策略。

研报就是很好的量化实践项目。

一篇研报就是一个策略,作者都是年薪百万的高学历券商分析师,你要做的就是读懂策略研报,并用代码实现。

ca0943d78bafa69ebc2c58c74db76aac.jpeg

在此期间什么不会学什么,哪里不会点哪里,抱着解决问题的心态去学习,事半功倍。

熟读唐诗三百首,不会作诗也会吟。

35a9574a8fe144bafdb7bd0f7a84579c.jpeg

那么哪里可以获取研报呢?

你可以扫描下方二维码或加我的微信xbx971,我这里有分门别类几万份研报,还会实时更新

1ebc8b934e65f88855a24881e52fe9cb.png

我会区分难度,精选之后发给你。

709b0727abcdeda73b0473388fb6ec1d.png

加我微信xbx971后,也可以交流量化投资相关问题,我比较忙,回复的比较慢,但是看到的都会回复。

聊的开心,聊得有缘,很多量化的数据、资料都是可以送给你的。

也可以翻翻我朋友圈的内容,很多量化干货。一些不会公开发的内容,都会在朋友圈说。

6044a4c71a52c64ea67e5d90c97da3d6.jpeg

联系作者

fc871d2749e4a4cbe60058cf3d209aa3.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值