你上面编写的程序从原理上御梁面来说并没有问题,关于你为什么运稿漏行会出错,我想可能是 Hurstcompute函数的问题,因为我把这个 Hurstcompute函数换成其他的函数,比如四舍五入镇敬运的round函数,那么程序能够正常运行,还有最后的result是可以不写的,由于Hurstcompute究竟有什么问题,你可以检查下,也可以贴出来,我帮你看看。 有问题Hi我
clsload data[3089, 2] = lunwen\99201.txt@读入庆蔽让数据@
datr = data[2:3089, 2]:
@计算个数@
obv = (int((rows(datr)-1)/100)*100)+2
print obv
@通计算对数回报率@
datn = (ln(datr[2:obvl./誉局datr[l:obv-1]))
obv = obv-1
@计算AR(1)@
yi = datn[2:obv]
xi = datn[l:obv-1]
xi2 = xi^2
ybar = meanc(yi)
xbar = meanc(xi)
xly = yi.*xi
sxx = obv*sumc(xi2) - (sumc(xi))_2
sxy = obv*(sumc(xly)) - sumc(xi)*sumc(yi):
slope = sxy/sxx const = ybar-slope*xbar
datx = datn[2:obv] - (const + slope*datn[l:obv-1]):
clear datn obv = rows(datx)
@计算R/S值@
I = 4
do while i<obv-1
i = i+l n = floor(obv/i) num = (obv/并雹i):
if n<num:
goto repeat
endif
x1 = reshape(datx, n, i)
mu = meanc(xl)
xl = xl - mu
sig = stdc (xl)
sum = cumsumc(xl)
max = maxc(sum) min = minc(sum):
r=max-min
rs=r/sig
a=log(meanc(rs))b=log(i)
c=a^b^i
?c
repeat:endo
2.计算每个片段的均值(mean value),按照上一步的六种分法总共要计算1+2+4+8+16+32=63个mean值:
**`注:Xi是片段中的元素;
3.针对每个片段计算离差序列(deviation)(贺宴裤63个离差序列):
注:
4.计算每个离差序列的最大差距(widest difference),得到63个最大差距R:
注:
5.计算每个片段的标祥哗准差(standard deviation):
6.计算每个片段的R/S值:
注:
7.对每种分割方法,将其各个片段的R/S值求平均得到Average R/S(ARS);
注:
8.计算Hurst指数
a. 将每种分段方法的片段大小(size)和ARS对10取对数
b. 这样我们就有了6组对数序列。将lgARS作为被解释变量Y,lgSize作为解释变量X,线性回归估计斜率H,H就禅简是Hurst指数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)