统计函数
计函数
这组函数,是统计学中的最典型的几个指标,在基本函数中提供了算法。有几个是可以相互转换的,看似众多,实际上没有几个。
“统计学理论划分成描述统计学和推导统计学两部分。描述统计学指用图表达资料数据,比如用一张标准的线图展示价咯历史。推导统计学则指从资料推导出概括的、预测的或推延性的结论。所以价咯图表属于前者的范畴,而针对价咯图表进行的技术分析则属于推导统计学的范畴。
综合起来,技术分析以过去的价咯数据预测未来,有充分的统计学根据。”<期货市场技术分析>P16
实际上,我们常用的技术指标,都自觉或不自觉地利用了统计学中的相关原理。比如均线指标MA(C,N),是N个周期中收盘价的算术平均值,就利用了统计学中集中趋势度量法的原理。
先回忆一下统计学中几个指标的算法。
统计对象可以看成是一个数列,数列中数据的总个数为N,以今天(2002.11.22)五天内的600036招商银hang收盘价为例,N就为5。数列的内容为:{9.17,9.24,9.11,8.85,8.87}。
1、算术平均值:数据总和除以总个数N。
(9.17+9.24+9.11+8.85+8.87)/5=9.048。
可以用公式MA(C,5),从今天的值上看出。
2、偏差:每个数据,减去算术平均值的结果。
9.17-9.048=0.122,
9.24-9.048=0.192,
9.11-9.048=0.062,
8.85-9.048=-0.198,
8.87-9.048=-0.178,
各偏差相加,应该是等于0的。
3、平均绝对偏差:将偏差的绝对值相加,除以总个数N。
(0.122+0.192+0.062+0.198+0.178)/5=0.150
4、(总体样本)方差:将偏差的平方相加,总和除以总个数N。用公式可以这样算:
(POW(0.122,2)+POW(0.192,2)+POW(0.062,2)+POW(0.198,2)+POW(0.178,2))/5=0.025
方差的算法,经过化简,也可以这样算:每个数据的平方的平均数,减去平均数的平方。
在公式里就可以这样编了:
MA(POW(C,2),5)-POW(MA(C,5),2);{0.025}
5、估算样本方差:是总体方差的N/(N-1)倍。
0.025*5/(5-1)=0.031
估算样本方差,总比总体样本方差大一点,当N够大时,两者趋于相等。
6、(总体)标准差:方差的开方。
POW(0.025,0.5);{0.158}
7、估算标准差:估算样本方差的开方。
POW(0.031,0.5);{0.176}
同样,估算标准差也比总体标准差大一点,当N够大时,两者趋于相等。
8、最小二乘法求回归直线方程:放在后面讲。
以下的例子,也以在今天(2002.11.22)五天内的600036招商银hang收盘价为例。
一、
函数: AVEDEV(X,N)
参数: X为数组,N为统计周期
返回: 返回数组
说明: 平均绝对偏差
AVEDEV(C,5);{0.150}
二、
函数: DEVSQ(X,N)
参数: X为数组,N为统计周期
返回: 返回数组
说明: 数据偏差平方和DEVSQ
数据偏差平方和,除以N,即为方差。
DEVSQ(C,5)/5;{0.025}
DEVSQ(C,5);{0.126}
三、
函数: VARP(X,N)
参数: X为数组,N为统计周期
返回: 返回数组
说明: X的N日总体样本方差
总体样本方差用数据偏差平方和,已经求出了,看看一样吗?
DEVSQ(C,5)/5;{0.025}
VARP(C,5);{0.025}
四、
函数: VAR(X,N)
参数: X为数组,N为统计周期
返回: 返回数组
说明: X的N日估算样本方差
估算样本方差是总体方差的N/(N-1)倍,看看一样吗?
VARP(C,5)*(5/(5-1));{0.032}
VAR(C,5);{0.032}
五、
函数: STDP(X,N)
参数: X为数组,N为统计周期
返回: 返回数组
说明: X的N日总体标准差
总体标准差,即为总体样本方差的开方,看看一样吗?
POW(VARP(C,5),0.5);{0.159}
STDP(C,5);{0.159}
六、
函数: STD(X,N)
参数: X为数组,N为统计周期
返回: 返回数组
说明: X的N日估算标准差
估算标准差,即为估算样本方差的开方,看看一样吗?
POW(VAR(C,5),0.5);{0.178}
STD(C,5);{0.178}
好了,以上六个统计函数,除了第一个,其它五个,只要求出方差,就可以找到相应关系,全部求出来。而方差,可以用公式MA(POW(C,2),5)-POW(MA(C,5),2);求出,所以说,新东西只有一个:平均绝对偏差。
以上六个函数中的N,目前均不支持序列变量,但可以用参数来调整。
一元线性回归的方法,就是在众多的点中,找到一根直线,而这根直线,最能代表众多点的平均“趋势”。
直线的表达方程是:y=a+bx。只要两个参数a、b定下来,直线的位置就定了。
求参数a、b的方法一般有两种,一种较为简便,但精度不够,称为平均数法。还有一种精度较高,应用也最多,叫最小二乘法。可想而知,倚天中的线性回归预测值,是根据最小二乘法求出来的。这里就只介绍最小二乘法。
设在众多点中穿过的回归直线的方程是y'=a+bx。而每个点的垂直高度为y。那么对应于每个点,都可得到类似于偏差的值y-y'。这些值的平方的总和达到最小,而求出参数a、b,就是最小二乘法的基本原理。
y-y'=y-a-bx。每个点,都有对应的x、y值,那么将这些值,分别代入(y-a-bx),求平方,最后进行累计。最终的表达式Q中,就只有a和b两个变量了。为使Q具有最小值,必须使其对a,b的偏导数等于0。由这两个等式中,就可以求出a、b的值了。
同例,x:{0,1,2,3,4}, y:{9.17,9.24,9.11,8.85,8.87}
xy:{0,9.24,18.22,26.55,35.48}
x的平均值是(0+1+2+3+4)/5=2,x的平均值的平方是:4,y的平均值是:9.048
x平方{0,1,4,9,16},x平方总和是:30
b=(89.49-5*2*9.048)/(30-5*4)=-0.99/10=-0.099
a=9.048-(-0.099*2)=9.246
y=9.246-0.099*x。这就是我们求出的回归直线方程。
在前四天,y值为9.246,在今天,y=9.246-0.099*4=8.85。
有了这两个值,就可以在主图上画线了:
A:=BACKSET(ISLASTBAR,5);
B:=A>REF(A,1);
DRAWICON(A,C,10);
DRAWLINE(B,9.246,ISLASTBAR,8.85,0);
{主图、主图叠加}
各位看到,计算过程比较麻烦,一般只要了解回归线的意义即可。具体计算,也有以下两个基本函数帮忙。
七、
函数: FORCAST(X,N)
参数: X为数组,N为统计周期
返回: 返回数组
说明: X的N周期线性回归预测值
示例: FORCAST(CLOSE,10) 表示求10周期线性回归预测
用最小二乘法,求出N周期内,X的一元线性回归线上的当天的值。与以上介绍的a值不同,a值是(N-1)周期前的回归线上的值。N取值为1时没有意义。
FORCAST(C,5);{8.85}
八、
函数: SLOPE(X,N)
参数: X为数组,N为统计周期
返回: 返回数组
说明: 为X的N周期线性回归线的斜率
示例: SLOPE(CLOSE,10) 表示求10周期线性回归线的斜率
用最小二乘法,求出N周期内,X的一元线性回归线的斜率,相当于以上介绍的b值。在K线图上是(价差/时间差)的关系,与角度没有任何关系。N取值为1时没有意义。
SLOPE(C,5);{-0.099}
那么有了这两个函数,要画出回归线还是不容易。今天的回归线的值和斜率知道了,可(N-1)天之前的回归线上的值(相当于前面说的a值)还是不知道,因为指标均为序列变量,无法倒推。
|