为什么我们的K线不一样?
某些细心的用户已经发现了,我们软件的K线与其它软件的K线有点不一样。那么,究竟有什么不一样,为什么要这样做,这个问题比较有意思,我们下面来详细地讲一讲。
市场原始数据
首先我们要知道的是,K线图并不是市场原始数据。市场中,一个合约一天交易真正的原始数据是这个样子的:
成交时间 | 成交价 | 成交量 | 买单单号 | 卖单单号 |
---|---|---|---|---|
2017/01/03 09:00:00.135000 | 3501.2 | 3 | 13748392 | 13744382 |
… | … | … | ||
2017/01/03 09:31:20.345000 | 3501.2 | 3 | 15643244 | 15643242 |
2017/01/03 09:31:20.347000 | 3501.4 | 10 | 15643262 | 15643270 |
2017/01/03 09:31:20.352000 | 3502.0 | 8 | 15643282 | 15643283 |
… | … | … | ||
2017/01/03 15:00:00.000000 | 3610.4 | 2 | 59020390 | 59020320 |
上面这个表,叫做“逐笔成交表”,市场中每发生一笔撮合成交,交易所都会把当时的时间,成交的价格,成交量,以及成交的双方是哪两个报单都记下来。拿到了这张表格,就能完全掌握一个合约每天成交价格的全部情况。但遗憾的是,这个表格的数据,交易所从来没有对外公开过,你也不可能在任何软件里面看到这套数据
(这里有的同学要说了,行情软件右下角那里不就有一个“逐笔成交”板块么?呵呵,那个板块的数据并不是这个表的数据,具体是什么,下面会讲到)。
交易所数据处理机制
交易所真正对外发送的数据,学名叫“定时行情截面快照”,俗称tick数据。 什么意思呢?就像一个人拿着照相机,每隔一段时间(国内期货交易所一般是半秒),对着上面那张表的最后一行拍个照片,并且去掉了买卖双方的信息。
- 最新价
- 成交量
- 持仓量
- 买一价/买一量, 买二价/买二量, ...
- 卖一价/卖一量, 卖二价/卖二量, ...
需要注意的是,在公开数据里面所能拿到的所有成交价,其时间标注都是滞后的。如果你在软件中看到时间为09:30:01的价格是3500,并不代表09:30:01这一时刻的成交价是3500,而是代表09:30:01之前,最后一笔成交价是3500。至于这笔成交的真实时间是多少,对不起,除了交易所没人知道。
信易科技的K线生成算法
了解了所谓Tick数据的真相以后,我们再来看K线图。K线图(除日线以外)并不是交易所发布的官方数据,只是行情软件为了方便用户做技术分析而构造的。与多数软件相比,我们的K线生成算法有两个特征:
- 连续交易时段内生成K线时,对于正好处于K线分界位置的Tick数据,同时用作为前一根K线的收盘价和下一根K线的开盘价。
- 连续交易时段内用K线填满。例如1个小时总是有60根分钟线,即使其中有几分钟没有成交,也不会把整根K线取消。
为什么要这样设计
在上面这张图里面,可以看得很清楚,市场中一共发生了两次实际跳空事件,仅仅是因为成交时间的区别,一个在K线图上画成了跳空缺口,一个没有。有的同学以为,跳空缺口和大阳线的区别,表示一个是突然上涨,一个是持续上涨形成的,这其实都是幻觉。你以为你在观察市场突变的信号,其实只是在观察市场突变时交易所的钟是不是刚好在整点附近罢了。
而且,交易品种的成交越活跃,你所看K线的周期越长,市场价格突变在K线图上体现为缺口的概率就越低。假定某个品种每秒有1笔成交,在任一笔成交价格暴涨的概率都相等,那当你看3秒线时,每次暴涨有1/3的概率体现为跳空缺口,如果看的是一分钟线,那每次暴涨只有1/60的概率体现为跳空缺口。如果盯着跳空缺口去找交易机会,那每找到一次的同时,就漏掉了其它的59次。
事实上,无论采取何种K线算法,都不可能正确地将连续交易过程的价格突变体现成K线图上的缺口形态。那么应该怎样处理较好呢?我们相信技术分析的基本原理:本质相同或相似的市场行为,应该表现为相同或相似的图表特征;本质不同的市场行为,应该表现为明显不同的图表特征。因此,我们在设计K线时,并不鼓励用户使用交易时段内的跳空缺口作为判断市场价格突变的分析和决策依据,特意消除了这种盘中的缺口信号(跨交易时段的跳空缺口仍保留)。
至于为什么要把交易时段内的K线填满,这同样是为了技术分析的准确。我们所使用的绝大多数技术指标和画线图形,都对K线条数非常敏感。我们以最简单的均线为例:假如我们在分钟线图上增加了一条周期为5的均线,我们希望看到的是什么呢?应该是最近5分钟的成交均价。如果我们的K线不是填满的,就会出现错误的结果。
在K线不满的情况下,均线指标依然取了最近的5条K线来计算均价,但这5根K线的时间范围是不确定的。换句话说,在K线不满的情况下,用户对于自己技术指标覆盖的时间范围是随机且不可控的。基于这样的数据做的分析和交易策略中也蕴含随机风险。因此我们在设计时刻意避免了这种情形,确保所有品种、所有合约的技术指标都是稳定连续可控的。
技术分析的新思考
技术分析的历史悠久,许多成名著作与大师都诞生于几十上百年前。在那个年代,还没有计算机,报单画图基本靠手,报纸上的K线图还是以日线图为主。而最近一二十年来,随着IT技术飞速发展,市场交易频率和行情数据频率都空前提高,在这种高速高频环境中,技术分析的数据准备和分析工作应该怎样进行,这一方面还缺少权威成熟的理论与技术,有待于我们一同探索研究。
谢谢阅读,欢迎讨论。