楼主: karma3001
2579 2

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

  • 0关注
  • 0粉丝

等待验证会员

已卖:135份资源

大专生

40%

还不是VIP/贵宾

-

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

楼主
karma3001 发表于 2014-4-15 22:26:19 |AI写论文
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
拉您进交流群
GMT+8, 2026-1-1 04:12