大智慧公式仿飞狐DATACOUNT函数
-
相关简介:飞狐软件函数多,运行效率高,公式发烧友都知道,而其中DATACOUNT函数非常有用,许多创意通过它很方便就能表达出来,而大智慧没有这个函数,通过VC编程转DLL方式可以做出这个函数,然而,更简单的方法是通过大智慧新一代提供的HHVALL函数在一定程度上可以模仿飞狐的DATACOUNT函数,就是下面这行代码: C/C++ Code 复制内容到剪贴板 DATACOUNT:=HHVALL(HHV(BARPOS,COUNT(C,0))); 为什么说只能在一定程度上模仿哪,因为这个仿制的DATAC
-
文章来源:择股网作者:股海网发布时间:2009-07-15浏览次数:
飞狐软件函数多,运行效率高,公式发烧友都知道,而其中DATACOUNT函数非常有用,许多创意通过它很方便就能表达出来,而大智慧没有这个函数,通过VC编程转DLL方式可以做出这个函数,然而,更简单的方法是通过大智慧新一代提供的HHVALL函数在一定程度上可以模仿飞狐的DATACOUNT函数,就是下面这行代码:
- DATACOUNT:=HHVALL(HHV(BARPOS,COUNT(C,0)));
为什么说只能在一定程度上模仿哪,因为这个仿制的DATACOUNT仍是个函数,只不过是个值不变的函数,所以做为数组下标虽然不会报错,但没做用。如果你拉动光标发现DATACOUNT的值在变,但画在图上的DATACOUNT那条线没变,这应该是COUNT(C,0)变化导致。即便它是个“准DATACOUNT”函数,但还是有用的,只要不用于数组(也许我还没有找到解决办法)都可以当DATACOUNT来用,这给公式编写带来了一定的帮助,下面举个例子:
例:找任意区间最高值和最低值,代码如下:
- {--------示例开始----------}
- INPUT:N(5,1,100),M(10,1,100);
- DATACOUNT:=HHVALL(HHV(BARPOS,COUNT(C,0)));
- a:=ref(datacount,m);{其实直接用DATACOUNT即可,这名话是多此一举,目的在于验证制作的这个DATACOUNT函数值的唯一性,也就是说你在任一根K线处引用DATACOUNT,它的值都是一样的。}
- VERTLINE(BARPOS=a-M,1);
- VERTLINE(BARPOS=a-N,1);
- 区间高:REF(HHV(H,BARSLAST(BARPOS=a-M-1)),BARSLAST(BARPOS=a-N))+0.005,PRECIS2;
- 区间低:REF(LLV(L,BARSLAST(BARPOS=a-M-1)),BARSLAST(BARPOS=a-N))+0.005,PRECIS2;
- {-----示例完--------------}
示例代码的效果图如下,高低值都找到了,而且代码很简单: