(一)指标函数分类
根据我的理解,我把指标函数分为三类 1基础函数 2简单函数 3复杂函数
1。基础函数
我对基础函数的定义是:该类函数直接指代个股的基础数据 ,该类函数不存在算法只是数据的代号。
例: c 收盘价 、o 开盘价 、v 成交量 等等等等
2。简单函数
我对简单函数的定义是:该类函数是对基础数据的简单计算后获得输出数据,算法顾名思义很简单,并且在该函数不存在“设定参数"以外的未知数据参与计算。
例: ma(c,5) 这个函数是五日收盘价均线的输出, 该函数算法简单 算法为:最近5日收盘价之和÷5 且这个函数只有一个数据参与计算,就是该函数的设定参数 c
3.复杂函数
我对复杂函数的定义是:该函数算法复杂 无法直接理解,且该类函数很多算法都是系统保密的或后台默认的,并且该类函数计算所调取的数据量远远超过设定参数
例 lwinner(5,c) 该函数是以收盘价输出5日内在收盘价一下的获利比例 一方面:该函数的核心算法我们无法得知
另一方面: 该函数所调用的计算参数 远不止设定参数 c 一个
系统自带的一些实际指标也属于复杂函数 比如 筹码峰 SSRP,在通达信里输入ssrp调用该指标后输出3条线性指标,但是其中的算法你无法知道,因为这个函数是系统加密的
(二)复杂函数和谐
复杂函数的和谐 说白了就是使用 1基础函数 和 2简单函数 去表达 3复杂函数的过程,去诠释复杂函数算法的过程
ps:其实2简单函数 也可以用 1基础函数来表达 比如上面提到 ma(c,5) 其实就是 ( c+ref(c,1)+...+ref(c,4) )/5
例:还是上面提到的 SSRP 筹码峰系统加密函数 这个函数的算法 和 调用的参数我们不得而知
但是经过分析和谐 我自己编写的源码如下:
X:=0;
Y:=4*C;
大:=MAX(X,Y);
小:=MIN(X,Y);
当日大:=MIN(H,大);
当日小:=MAX(L,小);
换手:=V*100/FINANCE(7);
换手空间:=IF(当日小>=H OR 当日大<=L,0,(当日大*100-当日小*100+1)/(H*100-L*100+1)),NODRAW;
换手保留:=DMA(换手空间,换手),NODRAW;
换手修正:=IF(BARSTATUS=1,换手空间,IF(当日小>=H OR 当日大<=L,0,V*100/FINANCE(7))*((当日大*100-当日小*100+1)/(H*100-L*100+1))),NODRAW;
综合换手:=换手修正/换手保留,NODRAW;
大值位移:=IF(当日大=H,0,((H-L)/(H-当日大))*((H-L)/(H-当日大)+1));
小值位移:=IF(当日小=L,0,((H-L)/(当日小-L))*((H-L)/(当日小-L)+1));
每日最终核算:=(H+L)/2-IF(大值位移=0,0,((H-L)/大值位移))+IF(小值位移=0,0,((H-L)/小值位移)),NODRAW;
SSRP和谐:DMA(每日最终核算,综合换手);
MA1:MA(SSRP和谐,5);
MA2:MA(SSRP和谐,20);
以上源码输出结果与ssrp函数的输出结果吻合率在99%以上,使用的函数全部为通达信公式编辑系统里的基础函数
(三)
和谐复杂函数和 加密函数的意义何在,请看下文分解
例:LWINNER(1,C) 这个函数意义很明确,反应每一天以当日收盘价为基准判断当日获利盘的百分比 也就是当天买入价格在收盘价以下的成交量 占 当日总成交量的百分比
以600101为例 2013年10月25日的获利比例 返回值为 0.09 即百分之9
现在我们用如下函数进行验证
VV:IF(C#MIN1<C#DAY,V,0);
IF(REF(V#DAY<REF(V#DAY,1),239),SUM(VV,240)/V#DAY,DRAWNULL);
这个函数的含义是 把一天利用分钟线化为240个周期,当1分钟价格低于今日收盘价时,将该分钟的成交量累加,最后用总的低于收盘的成交量 除以当日总成交量
同样是2013年10月25日,600101的 获利比例返回值为 0.21 百分之21 (ps:如果采用5秒线去验证,所得到的的结果将会更加准确)
百分之9 和百分之21
这是多么大的差距
因此和谐复杂函数目的在于:1,验证我们所使用的函数其准确性 和实际意义到底如何。
2,更好的去理解复杂函数的核心算法,为我所用。
3,修正复杂函数的误差来源和不合理思想,使其朝着我们需要的方向发展并使用
|