Hurst üssü - sayfa 18

 
surfer >> :

az önce türkiyede bir yerde hata yaptım

katsayı muhasebesi. ağırlıklar hiçbir şey vermez, farklar binde birdir

atladığı gerçeği evet

İkinci işlevi denediniz mi?

Resimleri görmek istiyorum... göstergeyi değil, ortaya çıkan çizginin kendisini.

 
TheXpert >> :

İkinci işlevi denediniz mi?

Resimleri görmek istiyorum... göstergeyi değil, ortaya çıkan çizginin kendisini.

2. denemedim

Ne tür resimler görmek istediğimi tam olarak anlamıyorum

Hindiyi yayınlıyorum belki bu resimleri gösterir :)


Dosyalar:
ivar_2.mq4  5 kb
 
Prival >> :

Bu Hurst ne saçmalıyor. 0,5'e ulaşmak mümkün değildi (girdi olarak rnd() vermesine rağmen). Birimler de elde edilemedi x(i)=i vermesine rağmen (seri sürekli büyüyor)

Ekli dosya, matkad sürüm 14

n'yi 1'den 10'a değil de en az 3000'e kadar alırsanız her şey yolunda gider.

İkinci hesaplama seçeneğiniz de doğru - yine daha fazla veri gönderin ...

 
tenyps писал(а) >>

n'yi 1'den 10'a değil de en az 3000'e kadar alırsanız her şey yolunda gider.

İkinci hesaplama seçeneğiniz de doğrudur - yine daha fazla veri gönderin ...

Sıradaki ne? Bağlandım, kotir ile bağlantım yok mu yoksa bir şey mi yakalayamıyorum?

 

İyi günler) Tüm sayfaları kısmen okudum ama ne yazık ki tüm algoritmaları anlamadım. Benzer bir soru zaten burada sorulmuştu. Anladığım kadarıyla MQL4 ve C'nin sözdizimi neredeyse aynı, ancak yapılar farklı ve farklı istatistiksel işlevlere sahip daha fazla "kütüphane" var.

C'de bir algoritma yazdım, işte bir kod parçası:


double Herst(double *S, int n)

{

double *h1 = (double *) malloc(sizeof(double ) * n),

*h2 = (çift *) malloc(sizeof(double ) * n),

*h = (çift *) malloc(sizeof(double ) * n),

*Hn = (çift *) malloc(sizeof(double ) * n),

h_ = 0, Rn = 0, Sn = 0, RSn = 0;

h[0] = 0, h[1] = 0, Hn[0] = 0, Hn[1] = 0;

if( h == NULL || Hn == NULL || h1 == NULL || h2 == NULL )

{

printf ("Yeterli bellek yok!!!\n");

dönüş -1;

}

for( int i = 1; ben < n ; i++ ) h[i-1] = log(S[i] / S[i-1]);

for(int i = 1; ben < n; i++) Hn[i] = Hn[i-1] + h[i-1];

if( (n - 1) != 0) h_ = Hn[n - 1] / (n - 1);

h2[0] = (h[0] - h_) * (h[0] - h_);

h1[0] = (h[0] - h_);

for( int i = 1; ben < n - 1; i++ )

{

h1[i] = h1[i-1] + (h[i] - h_);

h2[i] = h2[i-1] + (h[i] - h_) * (h[i] - h_);

}

qsort( (çift *)h1, n-1, sizeof(T), Comp );

Rn = h1[n-2] - h1[0];

if( (n - 1) != 0 ) Sn = h2[n-2] / ( n - 1 );

if( (n - 1) == 0 ) Sn = h2[n-2];

RSn = Rn / Sn;

serbest(h);

serbest(Hn);

serbest(h1);

serbest(h2);

geri RSn;

}


Ayrıca, dizilere doldurulurlar:

for( int i = n_min; i < n; i++ )

{

x1[i - n_min] = log( double( i * 0,5) );

y1[i - n_min] = log( Herst( S1, i ) );

}

ve LSM'ye göre düz bir çizgi oluşturulur.

Soru şu ki - periyodik olarak 1'den büyük bir değer ortaya çıkıyor, ancak çok nadiren. Neyin yanlış olduğunu anlayamıyorum. LSM, basit satırlarda test edildi ( y=ax+b, for a={0,0.5,1,2,3} ve b = {-1,0,1,2} )

Numunenin ilk 3-5 değeri için standart sapma 0 ise ne yapmalı? RS'nin sonsuza eşit olduğu ortaya çıktı ve bu noktalar basitçe dikkate alınmadı mı?

Ve evet, ve asıl mesele - nokta dizisinde haklı mıyım (başlangıçta n_min için, sonra aynı n_min + sonraki değer için vb.) veya segmenti n'den bazı eşitlere bölmem gerekiyor mu? bölümler ve her biri için say?

Kendim çözmeye çalıştım ama iki hafta sonra pes ettim. Algoritma aşağıdakiler temel alınarak oluşturulmuştur. kitaplar - Peters "Finansal Piyasaların Fraktal Analizi" ve "Finansal Matematiğin Temelleri" Shiryaev.

 
Disa >> :

İyi günler) Tüm sayfaları kısmen okudum ama ne yazık ki tüm algoritmaları anlamadım.


Konu dışı cevap için özür dilerim, ancak kullanışlı olabilir.
Ama bir test örneği ile.
Kesinlikle Peters'e göre "Finansal Piyasaların Fraktal Analizi"

Dosyalar:
 
Vita >> :

Konu dışı cevap için özür dilerim, ancak kullanışlı olabilir.
Ama bir test örneği ile.

Gerçek test dosyası. H~0.72

Dosyalar:
brown72.txt  10 kb
 
Hesaplamayı hızlandırmak için uzun dönüştürülmüş,
sonuç olarak Hurst üssü için aşağıdaki basitleştirilmiş formülü elde ettim:
 for (i=limit;i>= 0 ;i--)
    { double LWma= iMA ( NULL , 0 ,period, 0 , MODE_LWMA , PRICE_CLOSE ,i);
     double Sma= iMA ( NULL , 0 ,period, 0 , MODE_SMA , PRICE_CLOSE ,i);     
     double Bma= iBands ( NULL , 0 ,period, 1 , 0 , PRICE_CLOSE ,MODE_PLUSDI,i);
     if (Bma!=Sma) e0[i]=(LWma - Sma)/(Bma-Sma);           
    } 
Mantıken her şey doğru gibi görünüyor
logaritma olmasa da.
 
Urain >> :
Долго преобразовывал чтоб ускорить расчёт,
в результате получил вот такую упрощённую формулу для показателя Херста :
логически вроде бы всё верно,
хотя без логарифмов.

Bu, Hurst üssü için basitleştirilmiş bir formül değildir. Hatalısınız.
Hurst üssünü hesaplamanın birçok yolu vardır ve hepsi zahmetlidir. Neyi sadeleştirdin?
Ve yol boyunca formülünüz sıfırdan küçük olabilir, ki bu hiç de kullanışlı değildir.

 
Vita >> :

Bu, Hurst üssü için basitleştirilmiş bir formül değildir. Hatalısınız.
Hurst üssünü hesaplamanın birçok yolu vardır ve hepsi zahmetlidir. Neyi sadeleştirdin?
Ve yol boyunca formülünüz sıfırdan küçük olabilir, ki bu hiç de kullanışlı değildir.

Mesele mutlak sayılarda değil, fikirde.

Formül, bence oldukça Hurst ruhu içinde, regresyon hızının (açı) standart sapmaya oranını gösterir.