-
【邢不行|量化小讲堂系列43-实战篇】:在量化投资中,原来K线还能这么画(附画K线代码)
邢不行Python量化 / 2019-04-01 18:23 发布
引言:
邢不行的系列帖子“量化小讲堂”,通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助。
【历史文章汇总】请点击此处
在量化投资中,原来K线还能这么画(附画K线代码)
这是邢不行的第 43期分享。
转载请联系授权 :xingbuxing0807
K线是每一位交易者再熟悉不过的东西。毫不夸张的说,每一根K线的开、高、收、低,后面都是大家的喜怒哀乐。
我们熟悉的分钟线、小时线、周线、月线等,统称为「时间等分K线」。实际上,K线的画法非常丰富,远远不止这一种。这篇文章就要从另一个角度来画K线,从另外一个角度描绘交易的信息。
最常见的K线就是时间等分K线。各个交易平台、行情平台展示的,都是这一种K线。
什么叫时间等分呢?用大白话说,就是每根K线背后代表的时间相等。5分钟线,15分钟线,30分钟线,小时线,日线,都属于时间等分K线。
例如,这样一张以太坊的15分钟线:
每15分钟,它就会产生一根新的K线。放大来看:
每根K线包含四个价格:这15分钟里的开盘价、收盘价、最高价、最低价。每根K线,实心方框的上下两个位置代表分别代表开盘价和收盘价;细线(也就是所谓的影线),上下两端代表最高价和最低价。
在数字货币市场,或者美股里,如果K线是绿色的,代表收盘价比开盘价高,所以收盘价在上,开盘价在下;如果K线是红色的,代表收盘价比开盘价低,和绿线相反。
在我大A股,颜色是反过来的。
A股K线图,绿色代表跌,红色代表涨
每根K线就相当于一次信息的简化,简化了这段时间内发生的交易,方便我们做决策。不同交易风格的人会使用不同周期的K线。炒短线的使用1分钟K线、15分钟K线,中长线的可能使用日K线、周K线,而像巴菲特这样的投资者,可能看的是年K线(当然也可能压根不看...)。
大A股30年的年线
每根K线经历的时间相等,这样简单,直观,易理解。任何一个没接触过交易的人,花几分钟就能理解K线的含义了。
可是这样做也会导致:我们在处理K线的时候,都是惯性思维,对每一根K线等同看待。但是,某一根K线可能成交额有几百亿,上千亿,包含了巨大的价格博弈;另一根的成交额只有十几万,行情清汤寡水。
每一根K线代表的相同时间内的成交信息是完全不同的!
我们可以通过额外地看成交量,成交额来弥补这部分的信息。不过,我们还可以从另一个视角来刻画K线。
传统的画K线的方式,用专业名词来说就是:时间等分切片。那么除了这种画法之外,还有哪些画法?如下图:
需要注意的一点是,成交量和成交额是完全不一样的,可能很多人连这一点都不明白就开始做交易了:
「成交量按照交易的品种来计算,例如成交了多少个币,成交了多少股;成交额是按照钱来算的,例如成交了多少人民币,或者多少美元。」
上面这张图就是我们用python画出来的成交额等分的K线图。
成交额等分的意思是,每根K线包含的成交额相同。上面这张图里,每根K线的成交额就都是8000万美元左右。
也就是说,在画K线时,每当成交额满了8000万美元,就画一根新的K线。这样一来,K线就同时包含了价格和成交额的信息。
当然,每根K线的成交额是不可能正正好好等于8000万美元的:可能现在这根K线的成交额已经有7999万美元了,但是下一笔交易直接成交了5万美元,这时就不得不让成交额多出一个零头。
我们需要用高频数据来画这样的K线,最好是用逐笔数据。也就是一笔一笔交易看过去,再画K线。但逐笔数据的量太大,处理起来较困难,所以我们这里使用1分钟的K线来粗略地近似,代码如下:
实际上用1分钟K线来画,和用逐笔数据画是有很大区别的。因为有的时候1分钟里面可以发生非常多的事情,所以最好还是用逐笔数据。感兴趣的话可以研究一下代码,用逐笔数据去尝试一下,也可以加xingbuxing0807交流。
我们分别用1D的K线,也就是日线,以及成交额等分K线,画出2017年年初至2019年年初的以太坊的走势:
正常K线
成交额等分K线
第二幅图里,每根K线的成交额是8200万美元。为什么用这么奇怪的一个数字?因为两年时间里,第一幅图中的日K线刚好有730根。为了让成交额等分的K线也画出730根,我们强行设定了8200万这个成交额。
虽然走势比较接近,K线数量也相等,但这两幅图还是能看出明显不同。实际上,区别在于:
它们的「信息密度」,或者说「信息分布」是不一样的。
我们用两个例子来解释:
第一个例子,2017年上半年ETH的起势。这段时间里,ETH的成交额比较少:
正常K线
2017年前半年,日线总共有180多根。这些信息息全部浓缩在了下图30多根成交额等分的K线里。用成交额等分来画,行情冷清的K线就合并了。
成交额等分K线
第二个例子,2017年年底到2018年年初ETH的暴涨。我们把2017年11月到2018年2月放大细节来看:
正常K线
成交额等分K线
同样的时间里,成交额等分的K线走势更加平缓,而且K线数量更多。
为什么会出现这样的情况?就是因为这段时间ETH放量上涨。用时间等分来画,有几根K线的成交额就非常大;用成交额等分来画,相当于把原来的一根日线分成了好多根,因此看起来会平缓。大额成交的K线被稀释了。
每一笔交易都体现了交易者的心理活动,或者暗含着某种策略逻辑,这些都是市场的信息。
在时间等分的K线里,每根K线所包含的信息量都不一样,信息分布是不均匀的;在成交额等分K线,每一根的信息量就比较接近,信息均匀地分布在每根K线里。
说了这么多,画成交额等分的K线到底有什么好处?
K线本身是对最原始交易数据的一种简化,是信息的一种呈现形式。我们很多人的投资决策都是基于正常的K线做出的。那么当K线本身发生变化的时候,我们的决策会不会变化?
很多时候,当信息以另外一种形式呈现的时候,往往会产生很多新的启发。
例如很多基于K线的趋势策略或者震荡策略,在新的成交量等分K线下会不会有更好的效果?简单的观测可以发现,新的K线下的布林线策略中,K线不会那么轻易地突破上下轨,而是更加倾向于回到中轨。
再例如,做机器学习选股的时候,新的K线是否可以让机器更好的发现潜在规律?
还有很多场景在这样的K线下会有不一样的效果,就不在文章里一一列举了,感兴趣的话可以交流一下。