主页 > imtoken安全吗 > 量化交易中,如何用Python画K线、成交量、买卖点[兴不会]

量化交易中,如何用Python画K线、成交量、买卖点[兴不会]

imtoken安全吗 2023-06-18 06:09:08

介绍:

邢步兴系列帖子《量化小讲堂》通过实际案例,教初学者使用python进行量化投资,了解行业研究方向。 希望对大家有所帮助。

【历史文章汇总】点这里

比特币画线_sitechainnode.com 比特币k线_比特币k线走势图

这是邢不兴第68期量化讲座的分享

作者| 邢步兴,助教-法玛

之前在直播的时候给大家展示了一个我们内部使用的工具——时机策略查看器。

比特币画线_sitechainnode.com 比特币k线_比特币k线走势图

时序策略查看器

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

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

比特币k线走势图_比特币画线_sitechainnode.com 比特币k线

点击“图表显示”,K线页面将重点关注该笔交易,显示其开盘点、收盘点、收益率等信息。

这个工具主要是为了让大家更方便的将定时策略的交易一一阅读,帮助开发和优化新的策略。 一开始只是内部使用,后来在攻略分享会上开放给同学们使用。

这个“神器”的主要部分是K线和相关指标的显示。 看起来好复杂,会不会很难?

答案是:其实只需要十几行Python代码,即使是没有编程基础的新手也能画出K线图。

本文将按照以下四个步骤来讲解如何打造一款高端的个性化市场分析神器:

01 绘制普通烛台图

02 添加音量

03 加入移动平均线

04 添加交易信号

01

绘制普通烛台图

这里我假设大家已经安装好Python及相关环境,并且知道如何运行代码。

如果没有,请参考我之前写的这篇文章:

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

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

这里我为大家准备了三份数据,分别是比特币日K线、比特币4小时K线、sh000688科创50指数日K线:

比特币k线走势图_sitechainnode.com 比特币k线_比特币画线

K线数据文件

比特币k线走势图_比特币画线_sitechainnode.com 比特币k线

sh000688数据展示

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

sitechainnode.com 比特币k线_比特币k线走势图_比特币画线

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

以比特币的4小时K线为例,打开程序“1_drawing K-line.py”:

sitechainnode.com 比特币k线_比特币k线走势图_比特币画线

1_ 绘制烛台.py

其中,第1、2行代码的意思是导入我们提前安装的第三方库,第5到7行是导入这张图需要的数据。

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

比特币画线_比特币k线走势图_sitechainnode.com 比特币k线

选择代码后,右键单击

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

比特币画线_sitechainnode.com 比特币k线_比特币k线走势图

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

sitechainnode.com 比特币k线_比特币画线_比特币k线走势图

接下来,我们使用导入的数据绘制K线图:

sitechainnode.com 比特币k线_比特币k线走势图_比特币画线

绘图部分代码

绘图部分的代码是设置K线的颜色和样式。

如果我们想让K线的颜色和国内A股市场一样,那么只需要设置参数为:

上='红' 下='绿'

第13行代码中的edge表示设置K线边框的颜色,默认为黑色,edge='inherit'表示保持K线边框的颜色与K线的颜色一致行实体。

运行所有代码比特币画线,可以绘制比特币最近一段时间的K线图:

比特币k线走势图_比特币画线_sitechainnode.com 比特币k线

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

比特币画线_sitechainnode.com 比特币k线_比特币k线走势图

既然会画K线图,那普通的K线图应该怎么加交易量呢?

02

增加音量

打开新程序“2_JoinVolume.py”:

比特币画线_比特币k线走势图_sitechainnode.com 比特币k线

2_添加卷.py

该程序前10行的代码与“1_draw Kline.py”程序完全相同,同样导入了第三方库和读取数据。

区别在于:

比特币k线走势图_sitechainnode.com 比特币k线_比特币画线

首先在第14行添加一个成交量参数,volume='inherit'表示设置成交量直方图的颜色为红色向上绿色向下,与K线一致。

其次,在第 19 行的图表代码中添加了两个新参数,volume=True 表示将交易量添加到图表中。 ylabel_lower='volume'表示将成交量图的纵坐标命名为“volume”。

运行程序后,可以看到加量后的K线图:

比特币画线_比特币k线走势图_sitechainnode.com 比特币k线

下面的直方图显示了交易量(红色向上绿色向下

修改体积的纵坐标名称,只需修改第20行代码中的ylabel_lower参数即可:

比特币画线_比特币k线走势图_sitechainnode.com 比特币k线

接下来,我将解释如何将技术指标添加到K线图中。

03

添加技术指标

下面以均线为例,演示给K线图添加技术指标。

移动平均线在我提供给你的数据中已经计算出来了,你只需要根据代码在绘图函数中添加移动平均线指标即可。

比特币画线_sitechainnode.com 比特币k线_比特币k线走势图

平均数据字段

打开“3_Join Moving Average.py”程序:

比特币画线_sitechainnode.com 比特币k线_比特币k线走势图

3_加入移动平均线.py

该程序的前16行代码与上述两个程序相同。

区别在于:

sitechainnode.com 比特币k线_比特币画线_比特币k线走势图

在第 19 行添加一个新变量 add_plot比特币画线,分配 10 天移动平均线 'ma_10' 和 50 天移动平均线 'ma_50',并将 add_plot 变量添加到第 21 行的 mpf.plot() 方法。

写好后运行程序得到K线图:

比特币画线_sitechainnode.com 比特币k线_比特币k线走势图

可以看到K线增加了两条均线。 蓝色的是50日均线,橙色的是10日均线。

大家应该能感觉到这个过程其实很简单,我们只需要像搭积木一样给绘图函数添加相应的参数即可。

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

04

添加交易信号

我提供给您的数据已经包含交易信号,只需按照代码将交易信号添加到绘图功能即可。

sitechainnode.com 比特币k线_比特币画线_比特币k线走势图

数据中的交易信号

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

sitechainnode.com 比特币k线_比特币画线_比特币k线走势图

4_加入买卖点.py

该程序的前16行代码与“3_join moving average.py”的程序完全相同。

区别在于:

sitechainnode.com 比特币k线_比特币画线_比特币k线走势图

在代码的第 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(蓝色),可以根据自己的喜好设置不同的颜色。

运行程序来制作最终的市场分析器:

比特币k线走势图_比特币画线_sitechainnode.com 比特币k线

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

05

总结

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

如您所见,编程其实并不难。 就像搭积木一样,一点一点地添加。 而第四步的程序总共只需要20行Python代码,其中大部分是注释和空格。

强烈建议有兴趣的同学可以尝试自己运行代码,体验会更加不一样。 我可以将绘图所需的所有数据和代码发送给您。

比特币k线走势图_sitechainnode.com 比特币k线_比特币画线

邢不兴:Excel常用于量化投资,同事可能会打不过

邢不兴:【邢不兴|量化小讲系列45-实战】关于股票市值:99%的投资者都不知道的陷阱,你知道吗?

邢布布:【邢布布|量化小讲系列44-实战】历年10强基金第二年表现如何? Python告诉你答案

邢布布:【邢布布|量化小讲系列43-实战】:在量化投资中,K线还可以这样画(附K线代码)