水晶球APP 高手云集的股票社区
下载、打开
X

推荐关注更多

柴孝伟

买进就值,越来越值,时享价...


邢星

邢 星 党员,国...


石建军

笔名:石天方。中国第一代投...


揭幕者

名博


洪榕

原上海大智慧执行总裁


小黎飞刀

黎仕禹,名博


启明

私募基金经理,职业投资人


李大霄

前券商首席经济学家


桂浩明

申万证券研究所首席分析师


宋清辉

著名经济学家宋清辉官方账号...


banner

banner

【邢不行|量化小讲堂系列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线下会有不一样的效果,就不在文章里一一列举了,感兴趣的话可以交流一下。