分享

深入理解通达信的板块统计函数

 话题机 2024-06-04 发布于湖南

深入理解通达信的板块统计函数

tonyonezero tonyBlackWhite 2024-05-13 22:06

众所周知,通达信里面有两个板块相关指标INSORTINSUM指标。

这两个指标计算非常缓慢,用起来体验很不好,但是也是极少数能够在板块内部进行统计的指标了。

那么,你知道这两个指标背后到底干了什么吗?

1INSORTINSUM用法简介

首先简要介绍一下这两个指标:

1)、INSORT:板块排序选股

INSORT.横向统计

用法:INSORT(板块名称,指标名称,指标线,升降序),

返回该股在板块中的排序序号

例如:INSORT('房地产','KDJ',3,0)表示该股的KDJ指标第三个输出即J之值在房地产板块中的排名,

最后一个参数:0表示降序排名,1表示升序排名

2)、INSUM:板块指标统计

INSUM.横向统计

用法:INSUM(板块名称,指标名称,指标线,计算类型),

返回板块各成分该指标相应输出按照计算类型得到的计算值。

计算类型可选择:0-累加,1-平均数,2-最大值,3-最小值.

例如:INSUM('房地产','KDJ',3,0)表示房地产板块中所有股票的KDJ指标第三个输出即J之值的累加值。

2INSORTINSUM原理测试

上面两个指标的用法很简单。

那么,他们背后的原理是什么呢?为什么会这么慢呢?

利用DLL,我探究了这两个公式背后的秘密。

另外,考虑到这两个公式形式上的一致性,我用一个DLL来统一对上述两个公式进行运算。

首先,我们下载任意指定板块的数据,

就像下面一样,建立下载指定数据的公式:

图片

显然,从K2这行代码可以看出,我下载的是KDJ的J指标。

K1这行代码则表示,我下载500个数据,数据类型我定义为101号,这其实就是个用于区分不同板块数据的标号,只用于不同板块之间的区分,并没有什么其他实际意义。

那么现在用这个DLL,就能下载到上面定义的101号板块的所有股票的指标了:

图片

现在有了下载下来的所有数据,就可以自己来编写INSORT(板块排序选股)和INSUM(板块指标统计)的排序和统计公式了,这部分我用C++来完成。

之后比如下面这样,我建立通达信的调用公式,

图片

通达信的调用函数可知,这里可以分别调用0、1、2、3、4、5共计五种计算类型。

其中,0到3号就是对应前面的INSUM(板块指标统计);后面的4、5就对应 INSORT(板块排序选股)函数。

现在,一个公式就解决了INSUM和INSORT函数的调用问题。

下面的副图就是上面的公式的调用的结果:

图片

3、结论

那么,我为什么要废大功夫编这些东西呢?

因为,只有这么测试,才能知道通达信背后到底干了什么?它到底计算得准不准?还有没有可能提高的地方?等等。

而我在公式编写和测试的过程中,就发现了通达信的固有病根

通达信的计算体系是建立在float单精度浮点数上的,而在INSUM公式中,偏偏就用到了求和与取平均两个计算函数。

众所周知,float单精度浮点数的有效数字只有7位,那么通达信的这些与求和相关(也就是普普通通的加减法)的函数,会面临巨大的截断误差,特别是与成交量相关的那些大数相加时尤其明显。

在我的测试中,求和与取平均这两个函数通达信的误差就比较大了。

当然我们也不能苛求通达信,毕竟这是个免费软件,而且其计算内核也还都是源自上世纪90年代的上古大神们的心血。

那时候的计算机性能孱弱,内存也不够用,C++标准没准都还没有统一,能基于那个年代的C++方言构建这么一套系统已经相当厉害了。

最后劝大家一句,在使用INSUM公式时,可千万别对浮点数据较真了。

这个函数的累加误差还是挺大的,在计算时看个变化趋势就行了(变化趋势还是几乎一样的)。

要想得到真实完美的数据,还得像我这样子,用DLL,换成double双精度浮点数搞计算、分析。

当然,以上过程,只是为了还原通达信的INSUM和INSORT函数的底层。

现在我都有了所有指标的数据,其计算、分析当然完全可以离线盘后开展,甚至可以离线搞并行计算,把所有数据都离线计算出来,这就完全脱离了通达信的在线计算平台了。

————————————————

如果不明白DLL的编写方法,

有付费的《通达信》编写DLL的教程,见这里:

如何编写通达信DLL,请看这里!

付费的《大智慧》编写DLL的教程见这里:

"大智慧"DLL保姆级教程出炉

以上教程都是从零讲起,带你进入《通达信》、《大智慧》DLL编写指标的殿堂。

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多