怎么用MATLAB计算移动HURST指数

怎么用MATLAB计算移动HURST指数,第1张

你好;

你上面编写的程序从原理上御梁面来说并没有问题,关于你为什么运稿漏行会出错,我想可能是 Hurstcompute函数的问题,因为我把这个 Hurstcompute函数换成其他的函数,比如四舍五入镇敬运的round函数,那么程序能够正常运行,还有最后的result是可以不写的,由于Hurstcompute究竟有什么问题,你可以检查下,也可以贴出来,我帮你看看。 有问题Hi我

cls

load 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指数。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12397384.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存