楼主: karma3001
2287 2

[问答] 关于用matlab算HURST指数的问题 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

大专生

40%

还不是VIP/贵宾

-

威望
0
论坛币
9 个
通用积分
0.1200
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
386 点
帖子
40
精华
0
在线时间
45 小时
注册时间
2012-4-2
最后登录
2023-3-15

1论坛币
我想算一个时期内的Hurst指数,matlab程序如下:
function [ A,C ] = hurst( p )
format long

   
    ll=length(p); % l????????¨°?????????????????????
    j=1;
   
    for i=5:500;  
      if mod(ll,i)==0;
         n1(j)=i; % n1(j)是子区间里价格的数量
         n2(j)=ll/i; % n2(j)是子区间存在的个数
         j=j+1;
      end
    end
   l=length(n1);
   K=[n1; n2]
   
   for j=1:l;
        for i=1:n2(j);
          bar=mean(p((i-1)*n1(j)+1:i*n1(j)))  ; %?¨???????????????¨???
          x=p((i-1)*n1(j)+1:i*n1(j))-bar;
          y=cumsum(x);  %?¨???????????????????????
          R(i)=max(y)-min(y) ;%?¨????????????R??
          sigma(i)= std(p((i-1)*n1(j)+1:i*n1(j)),1);
          if sigma(i)==0;
             sigma(i)=0.0001;
          end
          RS(i)=R(i)/sigma(i); %?¨??????????????R/S????
          clear x y
        end
        meanRS=mean(RS); %?¨?????TS?¨°??R/S???¨???
        A(j)=log(meanRS);
        B(j,1)=1;
        B(j,2)=log(n1(j));
        C(j)=B(j,2);
    end
   A=A';
   coefficient=inv(B'*B)*B'*A %???????????§???¨?????Husrt
   BB=coefficient(1)+coefficient(2)*C;
   plot(C,BB)
   hold on
   plot(C,A,'o')
end
但是我算出来的结果总是小于0.3,我觉得程序有问题,求高人帮我看看,跪谢!

关键词:Hurst指数 MATLAB matla hurst atlab function matlab 程序
沙发
karma3001 发表于 2014-4-15 22:28:01 |只看作者 |坛友微信交流群
求前辈帮忙啊啊~~~~

使用道具

藤椅
karma3001 发表于 2014-4-15 22:29:16 |只看作者 |坛友微信交流群
程序检查了很多遍,查不出问题,但是老觉得结果不对。。我自己弄了个数列 1 2 3 4 ...1000 输进去结果也只有0.5多一点。。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-27 18:54