Comment coder ? - page 295

 

ce type d'indicateur à propos de l'exposant de Hurst

mladen:
Cette partie :

for (i=limit-1;i>=0;i--)

{

for (int j=0;j<n;j--)

{

for (i=limit-1;0<=i<=j;i--) // you are alrady using "i" variable in in the outer loop

{

double B=0,SUM[]; // Sum is an un-initialized array and shoulde be created out of this loop.

B=B+A;

SUM[j]=B;

}

}

H=MathLog((SUM[ArrayMaximum(SUM,n,0)]-SUM[ArrayMinimum(SUM,n,0)])/S)/MathLog(n/2);

}
Commenté où se trouve l'erreur. Sans description, je ne peux pas dire ce que vous essayez de faire avec ce code, donc je ne peux pas le modifier.

Dans le trading harmonique, nous utilisons l'exposant de Hurst comme une estimation de la

prévisibilité d'un flux de données de prix. Il indique si l'action du prix est

susceptible d'avoir:-

Persistance - valeur 0,5 - 1 (c'est-à-dire que ce qui se passe maintenant est susceptible de continuer)

est susceptible de se poursuivre)

Anti-persistance - valeur 0 - 0,5 (c'est-à-dire que ce qui se passe actuellement est susceptible de s'inverser).

est susceptible de s'inverser)

Aléatoire - valeur autour de 0,5 (c.-à-d. susceptible d'aller dans n'importe quelle

direction)

Cher mladen,désolé,l'anglais n'est pas ma langue maternelle,Pouvez-vous m'aider à écrire le code complet avec les idées de calcul suivantes?.

Step_A、X= MathLog(Close/Close)

{ la valeur de H d'un seul R/S par exemple :

Step1、E = (1/n)*[X(0)+X(1)+X(2)+...+X(n-1) ] //din n>=10

Etape2、A(0) = X(0) - E

A(1) = X(1) - E

A(2) = X(2) - E

...

A(n-1) = X(n-1) - E

Etape 3、SUM(0) = A(0)

SUM(1) = A(0)+ A(1)

SUM(2) = A(0)+A(1) + A(2)

...

SUM(n-1) = A(0)+A(1) + A(2) + ...+ A(n-1)

Étape 4、R= Maximum(SUM,n) - Minimum(SUM,n)

Step5、H = log(R/S)/log(n/2) // Soit s l'écart type de l'ensemble de {X(0),X(1), X(2), .... X(n-1)}

}

Étape_B、calculer H à partir de l'ensemble de {X(i),X(i+1), X(i+2), ... X(i+n-1)}

Etape_C、Calculer la moyenne mobile exponentielle de H, Lisser la moyenne mobile exponentielle de H, si la moyenne mobile exponentielle de H est égale à 0,5 alors alerte "lookout".

Et faites en sorte que cet indicateur puisse fonctionner en temps multiple, s'il vous plaît, merci.

 

...

chenairbin

Je vous recommande de lire ce post : https://www.mql5.com/en/forum/173010/page19 pour obtenir des informations supplémentaires.

Puisque Sevciks (celui qui a un problème dont je parlais), l'indice de dimension fractale corrigé (correction faite par Alex Matulich) et l'exposant de Hurst ne sont pas joints à ce post, les voici également.

Vous remarquerez également que ces versions ne correspondent pas exactement à l'équité de l'indice de dimension fractale 2, mais j'ai décidé de les laisser telles quelles au lieu de les forcer à être exactement identiques.

chenairbin:
Dans le trading harmonique, nous utilisons l'exposant de Hurst comme une estimation de la moyenne mobile exponentielle.

la prévisibilité d'un flux de données de prix. Il indique si l'action du prix est

susceptible d'avoir :-

Persistance - valeur 0.5 - 1 (c'est à dire que ce qui se passe actuellement est

est susceptible de se poursuivre)

Anti-persistance - valeur 0 - 0,5 (c'est-à-dire que ce qui se passe actuellement est susceptible de s'inverser).

est susceptible de s'inverser)

Aléatoire - valeur autour de 0,5 (c.-à-d. susceptible d'aller dans n'importe quelle

direction)

Cher mladen,désolé,l'anglais n'est pas ma langue maternelle,Pouvez-vous m'aider à écrire le code complet avec les idées de calcul suivantes?.

Step_A、X= MathLog(Close/Close)

{ la valeur de H à partir d'un seul R/S par exemple :

Step1、E = (1/n)*[X(0)+X(1)+X(2)+...+X(n-1) ] //din n>=10

Etape2、A(0) = X(0) - E

A(1) = X(1) - E

A(2) = X(2) - E

...

A(n-1) = X(n-1) - E

Etape 3、SUM(0) = A(0)

SUM(1) = A(0)+ A(1)

SUM(2) = A(0)+A(1) + A(2)

...

SUM(n-1) = A(0)+A(1) + A(2) + ...+ A(n-1)

Étape 4、R= Maximum(SUM,n) - Minimum(SUM,n)

Step5、H = log(R/S)/log(n/2) // Soit s l'écart type de l'ensemble de {X(0),X(1), X(2), .... X(n-1)}

}

Étape_B、calculer H à partir de l'ensemble de {X(i),X(i+1), X(i+2), ... X(i+n-1)}

Etape_C、Calculez la moyenne mobile exponentielle de H, Laissez-la lisse , si la moyenne mobile exponentielle de H est égale à 0,5 alors alerte "lookout".

Et faites en sorte que cet indicateur puisse fonctionner en multi temps, s'il vous plaît, merci.
 

mladen

mladen:
chenairbin

Je vous recommande de lire ce post : https://www.mql5.com/en/forum/173010/page19 pour obtenir des informations supplémentaires.

Puisque Sevciks (celui avec un problème dont je parlais) ni l'indice de dimension fractale corrigé (correction faite par Alex Matulich) ni l'exposant de Hurst ne sont pas attachés à ce post les voici aussi

En outre, vous remarquerez que ces versions ne correspondent pas exactement à l'équité de l'indice de la dimension fractale 2-, mais j'ai décidé de les laisser tels quels au lieu de forcer à ce que ce soit exactement pareil....

le cod dans Hurst cofficient.mq4

Prix appliqué = PRICE_CLOSE

maxY = MathMax(y[k],maxY) ;

minY = MathMin(y[k],minY) ;

devrait être

AppliedPrice=In(prix/prix)

maxY = y[ArrayMaximum(y,HurstLength,i)] ;

minY = y[ArrayMinimum(y,HurstLength,i)] ;

et ensuite le coefficient de Hurst doit être modifié ,Do me a favor,Thank you very much!

 

...

chenairbin

Ce code est juste une partie du code de calcul de Hurst.

Le bloc de code entier est celui-ci :
for (k=1; k<HurstLength; k++)

{

y[k] = y[k-1] + x[k];

maxY = MathMax(y[k],maxY);

minY = MathMin(y[k],minY);

}

Comme vous pouvez le voir, il s'agit d'une boucle qui est fonctionnellement équivalente à ArrayMaximim() et ArrayMinimum() que vous proposez. Vous ne pouvez pas regarder ces 2 lignes de code (MathMin() et MathMax()) en négligeant la boucle dans laquelle elles sont exécutées.

Prix appliqué fait référence au prix qui va être utilisé dans le calcul (les habituels : close, open, high, low, median, typical et weighted) Leur différence est calculée autrement (il n'existe pas de prix tel que In(price/price))

chenairbin:
le code du coefficient de Hurst.mq4

AppliedPrice = PRICE_CLOSE

maxY = MathMax(y[k],maxY) ;

minY = MathMin(y[k],minY) ;

devrait être

AppliedPrice=In(prix/prix)

maxY = y[ArrayMaximum(y,HurstLength,i)] ;

minY = y[ArrayMinimum(y,HurstLength,i)] ;

et le coefficient de Hurst doit être modifié. Faites-moi une faveur. Merci beaucoup.
 

mladen

mladen:
chenairbin

Ce code est juste une partie du code de calcul de Hurst.

Le bloc de code complet est celui-ci :
for (k=1; k<HurstLength; k++)

{

y[k] = y[k-1] + x[k];

maxY = MathMax(y[k],maxY);

minY = MathMin(y[k],minY);

}

Comme vous pouvez le voir, il s'agit d'une boucle qui est fonctionnellement équivalente à ArrayMaximim() et ArrayMinimum() que vous proposez. Vous ne pouvez pas regarder ces 2 lignes de code (MathMin() et MathMax()) en négligeant la boucle dans laquelle elles sont exécutées.

Le prix appliqué fait référence au prix qui va être utilisé dans le calcul (les habituels : close, open, high, low, median, typical et weighted) Leur différence est calculée autrement (il n'y a pas de tel prix que In(price/price)).

Erik Long a dit sur ce site Fractal Dimension Index par Erik T. Long

Nous pouvons également estimer la valeur de H à partir d'une seule valeur R/S par :

H = log(R/S)/log(n/2) // est-ce correct ?

Pour les marchés, j'utilise les rendements logarithmiques au lieu des variations de prix en pourcentage :

St = ln(Pt/P(t-1))

Où St = rendement logarithmique à un moment t Pt = Prix au moment t //comme le prix In(Close/Close)

Pouvez-vous fixer le code avec Erik Long ?

J'utilise le code suivant dans Hurst coefficient.mq4,et il fonctionne bien avec le site(http://www.stator-afm.com/hurst-exponent.html).

Quoi qu'il en soit, ce que Hurst a apparemment trouvé, c'est que le tracé avait une pente plus proche de 0,7 (plutôt que de 0,5).

maxY = y[ArrayMaximum(y,HurstLength,0)] ;

minY = y[ArrayMinimum(y,HurstLength,0)] ; }

double iValue = 0 ; if (sums !=0) iValue = (maxY - minY)/MathSqrt(sums/HurstLength) ;

double hurst = 0 ; if (iValue > 0) hurst = MathLog(iValue)/ MathLog(HurstLength/2) ;

qu'en est-il lorsqu'il a modifié avec Erik Long?

Pour les marchés, j'utilise les rendements logarithmiques au lieu des variations de prix en pourcentage :

St = ln(Pt/P(t-1))

Où St = rendement logarithmique à un moment t Pt = prix au moment t //comme le prix In(Close/Close)

Je suis impatient d'avoir de vos nouvelles ? merci.

 
ymkoh:
Merci pour l'information !

J'ai essayé la plupart d'entre eux mais aucun ne fonctionne.

Exemples : EA Trading TF H1 VQ input 240.

Il ne fonctionne que sur Trading TF H1 VQ input 0 par défaut.

La capture d'écran ci-jointe montre un exemple de signal d'achat de TF H1 déclenché par l'indicateur VQ H4. (Aucun EA n'est joint)

vq7.mq4

J'ai une difficulté. Quelqu'un peut m'aider... s'il vous plaît aidez-moi... comment coder ?

 

...

Jetez un coup d'œil à cette section pour commencer : Leçons

april:
J'ai une difficulté. quelqu'un m'aide..s'il vous plaît aidez-moi..comment coder ?
 

...

Ceci pourrait vous aider : il s'agit de la description originale du calcul de l'IDE (et de l'exposant de Hurst) par Erik Long, publiée dans TASC en mai 2003.

chenairbin:
Erik Long a déclaré sur ce site L'indice de dimension fractale par Erik T. Long

Nous pouvons également estimer la valeur de H à partir d'une seule valeur de R/S par :

H = log(R/S)/log(n/2) // est-ce correct ?

Pour les marchés, j'utilise les rendements logarithmiques au lieu des variations de prix en pourcentage :

St = ln(Pt/P(t-1))

Où St = rendement logarithmique à un moment t Pt = Prix au moment t //comme le prix In(Close/Close)

Pouvez-vous fixer le code avec Erik Long ?

J'utilise le code suivant dans le coefficient de Hurst.mq4,et il fonctionne bien avec le site(Hurst Exponent).

Quoi qu'il en soit, ce que Hurst a apparemment trouvé, c'est que le tracé avait une pente plus proche de 0,7 (plutôt que de 0,5).

maxY = y[ArrayMaximum(y,HurstLength,0)] ;

minY = y[ArrayMinimum(y,HurstLength,0)] ; }

double iValue = 0 ; if (sums !=0) iValue = (maxY - minY)/MathSqrt(sums/HurstLength) ;

double hurst = 0 ; if (iValue > 0) hurst = MathLog(iValue)/ MathLog(HurstLength/2) ;

qu'en est-il lorsqu'il a modifié avec Erik Long?

Pour les marchés, j'utilise les rendements logarithmiques au lieu des variations de prix en pourcentage :

St = ln(Pt/P(t-1))

Où St = rendement logarithmique à un instant t Pt = prix à l'instant t //comme In(Close/Close)

Je suis impatient d'avoir de vos nouvelles ? merci.
Dossiers :
fdi.gif  118 kb
 

Une aide de plus sur le coefficient de Hurst.mq4

mladen:
Ceci pourrait vous aider : il s'agit de la description originale du calcul de l'IDE (et de l'exposant de Hurst) par Erik Long, publiée dans TASC en mai 2003.

Merci beaucoup,i suis plus récent dans le domaine de mql4 , S'il vous plaît aider à améliorer le code avec le prix d'Erik Long。.

Pour les marchés, j'utilise les rendements logarithmiques au lieu des variations de prix en pourcentage :

St = ln(Pt/P(t-1))

Où St = rendement logarithmique à un instant t Pt = prix à l'instant t //comme prix In(Close/Close)

 

quelqu'un peut-il corriger mon code mql 4 ?

comme mentionné ci-dessus,

je viens d'éditer mon code MQL4, mais ça ne semble pas fonctionner,

il y a beaucoup d'erreurs dans mon code mql4,

J'aimerais que quelqu'un ici corrige mon code MQL 4.

S'il vous plaît, j'ai vraiment besoin de votre aide.