Hearst-Index - Seite 18

 
surfer >> :

Ich habe nur an einer Stelle des Indikators einen Fehler gemacht.

Der Gewichtungsfaktor gibt nichts her, es ist ein Unterschied von einem Tausendstel.

Na ja, die Tatsache, dass es aufspringt, ja.

Haben Sie die zweite Funktion ausprobiert?

Es wäre schön, Bilder zu sehen... nicht auf den Indikator, sondern auf die resultierende Linie selbst.

 
TheXpert >> :

Haben Sie die zweite Funktion ausprobiert?

Ich würde gerne ein paar Bilder sehen... Nicht für den Indikator, sondern für die sich daraus ergebende Linie.

Die zweite habe ich nicht ausprobiert.

Ich bin mir nicht sicher, welche Bilder Sie sehen wollen.

Ich gebe dir den Indikator, vielleicht zeigt er die Bilder :)


Dateien:
ivar_2.mq4  5 kb
 
Prival >>:

Ерунда какая то с этим херстом. Добиться 0.5 не получилось (хотя давал на вход rnd()). Единицы тоже не получилось добиться, хотя подавал x(i)=i (ряд все время растет)

Файл прилагаю, версия маткада 14

Alles funktioniert, wenn man n nicht von 1 bis 10 nimmt... sondern mindestens bis 3000

Ihre zweite Version der Berechnung ist ebenfalls korrekt - auch hier müssen Sie mehr Daten eingeben...

 
tenyps писал(а) >>

Alles funktioniert, wenn man n nicht von 1 bis 10 nimmt... sondern mindestens bis 3000

Ihre zweite Version der Berechnung ist ebenfalls korrekt - auch hier müssen Sie mehr Daten eingeben...

Was nun? Angeheftet, keine Verbindung zum Quotienten oder übersehe ich etwas?

 

Guten Tag) Ich habe teilweise alle Seiten gelesen, aber leider verstehe ich nicht alle Algorithmen. Eine ähnliche Frage wurde hier bereits gestellt. Soweit ich verstanden habe, ist die MQL4- und C-Syntax mehr oder weniger die gleiche, aber die Strukturen sind unterschiedlich, und es gibt mehr "Bibliotheken" mit unterschiedlichen statistischen Funktionen.

Ich habe den Algorithmus in C geschrieben, hier also ein bisschen Code:


double Herst( double *S, int n)

{

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

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

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

*Hn = (double *) 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("Nicht genug Speicher!!!\n");

Rückgabe -1;

}

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

for(int i = 1; i < 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; i < n - 1; i++ )

{

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

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

}

qsort( (double *)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;

frei(h);

frei(hn);

frei(h1);

frei(h2);

RSn zurückgeben;

}


Dann werden die Arrays in die Arrays geschoben:

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 );

}

und eine gerade Linie wird mit ANC gezeichnet.

Frage: Gelegentlich kommt es vor, dass der Wert größer als 1 ist, aber sehr selten. Ich kann nicht verstehen, wo der Fehler liegt. Ich habe ANC auf einfachen Linien geprüft ( y=ax+b, für a={0,0.5,1,2,3} und b = {-1,0,1,2} )

Was ist, wenn die Standardabweichung für die ersten 3-5 Stichprobenwerte 0 ist? Also ist RS gleich unendlich und diese Punkte werden einfach nicht berücksichtigt?

Oh, und die Hauptsache - bin ich richtig in stehen die Reihenfolge der Punkte (am Anfang für n_min, dann für die gleichen n_min + den nächsten Wert, etc.) oder sollte ich teilen das Segment von n in einige gleiche Teile und zählen für jede?

Ich habe versucht, es selbst herauszufinden, aber nach zwei Wochen habe ich aufgegeben. Der Algorithmus basiert auf den folgenden Büchern: "Fractal Analysis of Financial Markets" von Peters und "The Fundamentals of Financial Mathematics" von Shiryaev.

 
Disa >>:

День добрый) Прочитал частично все страницы, но к сожалению не все алгоритмы понял.


Verzeihen Sie mir, dass ich die Frage nicht beantworte, aber sie könnte sich als nützlich erweisen.
Allerdings mit einem Testfall.
Streng nach Peters "Fraktale Analyse der Finanzmärkte".

Dateien:
 
Vita >>:

Пардон, что не по вопросу ответ, но возможно пригодится.
С тестовым примером зато.

Die Testdatei selbst. H~0.72

Dateien:
brown72.txt  10 kb
 
Ich habe eine lange Umrechnung vorgenommen, um die Berechnung zu beschleunigen,
, und bin auf diese vereinfachte Formel für den Hurst-Exponenten gekommen:
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);           
    } 
Sie scheint logisch korrekt zu sein,
, allerdings ohne Logarithmen.
 
Urain >>:
Долго преобразовывал чтоб ускорить расчёт,
в результате получил вот такую упрощённую формулу для показателя Херста :
логически вроде бы всё верно,
хотя без логарифмов.

Es handelt sich nicht um eine vereinfachte Formel für den Hearst-Index. Sie irren sich.
Es gibt viele Möglichkeiten, die Hearst-Zahl zu berechnen, und sie sind alle arbeitsintensiv. Welche haben Sie vereinfacht?
Und Ihre Formel ist möglicherweise kleiner als Null, was überhaupt nicht hilfreich ist.

 
Vita >>:

Это не упрощенная формула для показателя Херста. Вы заблуждаетесь.
Способов расчета показателя Херста много и все они трудоемки. Вы какую упрощали?
И ваша формула по ходу может быть меньше нуля, что совсем не кстати.

Es geht nicht um die absoluten Zahlen, es geht um die Idee.

Die Formel gibt das Verhältnis der Regressionsrate (Winkel) zur Standardabweichung an, was meines Erachtens dem Geist von Hirst entspricht.

Grund der Beschwerde: