全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
2603 2
2014-04-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,我觉得程序有问题,求高人帮我看看,跪谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-4-15 22:28:01
求前辈帮忙啊啊~~~~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-4-15 22:29:16
程序检查了很多遍,查不出问题,但是老觉得结果不对。。我自己弄了个数列 1 2 3 4 ...1000 输进去结果也只有0.5多一点。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群