Comment coder ? - page 294

 

CommanderEnvoi(Symbole..... requête

int ticket=OrderSend(Symbol(),OP_BUY,1.0,Ask,3,0,0, "commentaire expert",255,0,CLR_NONE) ;

ma question est la suivante :

Est-ce que la partie symbole() peut être modifiée pour qu'elle dise eurusd, de sorte que lorsque j'exécute le script d'achat, il achète juste eurusd... à partir de n'importe quel graphique que j'exécute ?

quelque chose comme :

int ticket=OrderSend(eurusd,OP_BUY,1.0,Ask,3,0,0, "expert comment",255,0,CLR_NONE) ;

merci

 

...

Oui, c'est possible.

Faites juste attention à l'enveloppe. L'appel devrait ressembler à ceci :

int ticket=OrderSend("EURUSD",OP_BUY,1.0,Ask,3,0,0,"expert comment",255,0,CLR_NONE);
al_shore:
int ticket=OrderSend(Symbol(),OP_BUY,1.0,Ask,3,0,0, "commentaire d'expert",255,0,CLR_NONE) ;

Ma question est la suivante :

la partie symbol() peut-elle être modifiée de façon à ce qu'elle dise eurusd et que lorsque je lance le script d'achat, il n'achète que eurusd... sur n'importe quel graphique ?

quelque chose comme :

int ticket=OrderSend(eurusd,OP_BUY,1.0,Ask,3,0,0, "expert comment",255,0,CLR_NONE) ;

Merci
 

L'EA ne travaille pas

Chers amis,

Je suis nouveau dans le Forex, bien qu'il ne donne pas d'erreur lors de la compilation, je n'ai pas réussi à le faire fonctionner, s'il vous plaît quelqu'un m'aide sur ce qui ne va pas avec lui ?

Merci d'avance

Dossiers :
test_ea.mq4  128 kb
 

...

Vous ne pouvez pas simplement copier le code d'un indicateur dans un EA et vous attendre à ce qu'il fonctionne (surtout les indicateurs de Nikolay Kostisin qui n'est pas connu pour son code simple).

Pour commencer, il vaut mieux utiliser les indicateurs par le biais de l 'appel iCustom() et garder la logique de trading dans l'EA, de cette façon vous allez obtenir un EA beaucoup plus facile à écrire.

kemal44:
Chers amis,

Je suis nouveau dans le Forex, bien qu'il n'ait pas donné d'erreur lors de la compilation, je n'ai pas réussi à le faire fonctionner, s'il vous plaît quelqu'un peut-il m'aider sur ce qui ne va pas avec lui ?

Merci d'avance
 

Comment coder l'EA Volatility Quality

Salutations à tous !

Je suis nouveau dans le domaine des EA Metatrader. Comment puis-je coder l'indicateur VQ dans un EA pour trader dans le cadre M15 mais déclencher l'achat et la vente en fonction du cadre sélectionné de l'indicateur Volatility Quality ?

Merci beaucoup.

Dossiers :
vq7.mq4  8 kb
 

Vous devrez également changer Ask en MarketInfo("EURUSD", MODE_ASK).

Sinon, la transaction n'aboutira pas. La demande portera sur le symbole du graphique.

Sachez également que certains courtiers ajoutent d'autres caractères avant ou après le nom du symbole

comme "EURUSDm".

Robert

al_shore:
int ticket=OrderSend(Symbol(),OP_BUY,1.0,Ask,3,0,0, "commentaire d'expert",255,0,CLR_NONE) ;

Ma question est la suivante :

Est-ce que la partie symbol() peut être changée pour qu'elle dise eurusd, de sorte que lorsque je lance le script d'achat, il n'achète que eurusd... à partir de n'importe quel graphique que je lance ?

quelque chose comme :

int ticket=OrderSend(eurusd,OP_BUY,1.0,Ask,3,0,0, "expert comment",255,0,CLR_NONE) ;

Merci
 

...

ymkoh

Consultez ce fil de discussion : https://www.mql5.com/en/forum/general

Il existe de nombreuses versions d'EA utilisant la qualité de la volatilité.

ymkoh:
Salutations à tous !

Je suis novice en matière d'EA Metatrader. Comment puis-je coder l'indicateur VQ dans un EA pour trader dans le cadre M15 mais déclencher l'achat et la vente en fonction du cadre sélectionné de l'indicateur Volatility Quality ?

Merci beaucoup
 
mladen:
ymkoh

Consultez ce fil de discussion : https://www.mql5.com/en/forum/general

Il existe de nombreuses versions d'EA utilisant la qualité de la volatilité.

Merci pour ces informations !

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 entrée 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

Dossiers :
 

ce type d'indicateur sur l'exposant de Hurst

Bonjour, quelqu'un peut m'aider ? je veux ce type d'indicateur sur l'exposant de Hurst. le code est programmé avec succès par le compilateur, mais pas d'image, pouvez-vous le réparer ? Merci !

Les valeurs de l'exposant de Hurst sont comprises entre 0 et 1.

* Une valeur de l'exposant de Hurst H proche de 0,5 indique une marche aléatoire (une série chronologique brownienne). Dans une marche aléatoire, il n'y a aucune corrélation entre un élément quelconque et un élément futur et il y a une probabilité de 50% que les valeurs de rendement futures aillent à la hausse ou à la baisse. Les séries de ce type sont difficiles à prévoir.

* Une valeur de l'exposant de Hurst H comprise entre 0 et 0,5 existe pour les séries chronologiques présentant un "comportement anti-persistant". Cela signifie qu'une augmentation aura tendance à être suivie d'une diminution (ou qu'une diminution sera suivie d'une augmentation). Ce comportement est parfois appelé "retour à la moyenne", ce qui signifie que les valeurs futures auront tendance à revenir à une valeur moyenne à plus long terme. La force de ce retour à la moyenne augmente à mesure que ?H?s'approche de 0.

* Une valeur de l'exposant de Hurst H comprise entre 0,5 et 1 indique un "comportement persistant", c'est-à-dire que la série chronologique suit une tendance. S'il y a une augmentation du pas de temps [t-1] à [t], il y aura probablement une augmentation de [t] à [t+1]. Il en va de même pour les diminutions, où une diminution aura tendance à suivre une diminution. Plus la valeur ?H est grande, plus la tendance est forte. Les séries de ce type sont plus faciles à prévoir que les séries appartenant aux deux autres catégories.

Le calcul est le suivant

Step_A、X= MathLog(Close/Close)

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

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

Étape 2、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 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)}

Étape_C、calculer H_SMA, Qu'il soit lisse ,si H_SMA=0.5 alors alerte

Le code est le suivant

//+------------------------------------------------------------------+

//| #HURST.mq4 |

//| chenairbin. |

//| MetaTrader 4 Trading Platform / MetaQuotes Software Corp. |

//+------------------------------------------------------------------+

#property copyright "chenairbin."

#property link "http://www.metaquotes.net"

#property indicator_separate_window

#property indicator_minimum 0

#property indicator_maximum 1

#property indicator_buffers 7

#property indicator_color7 Yellow

extern int n=21,S_EMA=8 ;

extern double Natural=0.5 ;

double X[],E[],S[],A[],SUM[],H[],C[];

int init()

{

IndicatorBuffers(7) ;

SetIndexBuffer(0,X) ;

SetIndexBuffer(1,E) ;

SetIndexBuffer(2,S) ;

SetIndexBuffer(3,A) ;

SetIndexBuffer(4,SUM) ;

SetIndexBuffer(5,H) ;

SetIndexStyle(6,DRAW_LINE) ;

SetIndexBuffer(6,C) ;

return(0) ;

}

int start()

{

int i ;

int limite ;

int counted_bars=IndicatorCounted() ;

if(counted_bars<0) return(-1) ;

if(counted_bars>0) counted_bars-- ;

limit=Bars-counted_bars ;

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

{

X= MathLog(Close/Close) ;

}

pour (i=limite-1;i>=0;i--)

{

E=iMAOnArray(X,0,n,0,MODE_EMA,i) ;

S=iStdDevOnArray(X,0,n,0,MODE_EMA,i) ;

}

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

{

A=X-E ;

}

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

{

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

{

pour (i=limit-1;0<=i<=j;i--)

{

double B=0,SUM[] ;

B=B+A ;

SUM[j]=B ;

}

}

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

}

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

{

C=iMAOnArray(H,0,S_EMA,0,MODE_EMA,i) ;

}

return(0) ;

}

//-----------------------------------------------------------

 

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.

chenairbin:
Bonjour, quelqu'un peut m'aider ? je veux ce type d'indicateur sur l'exposant de Hurst. le code est programmé avec succès par le compilateur, mais pas d'image, pouvez-vous le réparer ? Merci !

Les valeurs de l'exposant de Hurst sont comprises entre 0 et 1.

* Une valeur de l'exposant de Hurst H proche de 0,5 indique une marche aléatoire (une série chronologique brownienne). Dans une marche aléatoire, il n'y a aucune corrélation entre un élément quelconque et un élément futur et il y a une probabilité de 50% que les valeurs de rendement futures aillent à la hausse ou à la baisse. Les séries de ce type sont difficiles à prévoir.

* Une valeur de l'exposant de Hurst H entre 0 et 0,5 existe pour les séries chronologiques ayant un "comportement anti-persistant". Cela signifie qu'une augmentation aura tendance à être suivie d'une diminution (ou qu'une diminution sera suivie d'une augmentation). Ce comportement est parfois appelé "retour à la moyenne", ce qui signifie que les valeurs futures auront tendance à revenir à une valeur moyenne à plus long terme. La force de ce retour à la moyenne augmente à mesure que ?H?s'approche de 0.

* Une valeur de l'exposant de Hurst H comprise entre 0,5 et 1 indique un "comportement persistant", c'est-à-dire que la série chronologique suit une tendance. S'il y a une augmentation du pas de temps [t-1] à [t], il y aura probablement une augmentation de [t] à [t+1]. Il en va de même pour les diminutions, où une diminution aura tendance à suivre une diminution. Plus la valeur ?H est grande, plus la tendance est forte. Les séries de ce type sont plus faciles à prévoir que les séries appartenant aux deux autres catégories.

Le calcul est le suivant

Step_A、X= MathLog(Close/Close)

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

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

Étape 2、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 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)}

Étape_C、calculer H_SMA, Qu'il soit lisse ,si H_SMA=0.5 alors alerte

Le code est le suivant

//+------------------------------------------------------------------+

//| #HURST.mq4 |

//| chenairbin. |

//| MetaTrader 4 Trading Platform / MetaQuotes Software Corp. |

//+------------------------------------------------------------------+

#property copyright "chenairbin."

#property link "http://www.metaquotes.net"

#property indicator_separate_window

#property indicator_minimum 0

#property indicator_maximum 1

#property indicator_buffers 7

#property indicator_color7 Yellow

extern int n=21,S_EMA=8 ;

extern double Natural=0.5 ;

double X[],E[],S[],A[],SUM[],H[],C[];

int init()

{

IndicatorBuffers(7) ;

SetIndexBuffer(0,X) ;

SetIndexBuffer(1,E) ;

SetIndexBuffer(2,S) ;

SetIndexBuffer(3,A) ;

SetIndexBuffer(4,SUM) ;

SetIndexBuffer(5,H) ;

SetIndexStyle(6,DRAW_LINE) ;

SetIndexBuffer(6,C) ;

return(0) ;

}

int start()

{

int i ;

int limite ;

int counted_bars=IndicatorCounted() ;

if(counted_bars<0) return(-1) ;

if(counted_bars>0) counted_bars-- ;

limit=Bars-counted_bars ;

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

{

X= MathLog(Close/Close) ;

}

pour (i=limite-1;i>=0;i--)

{

E=iMAOnArray(X,0,n,0,MODE_EMA,i) ;

S=iStdDevOnArray(X,0,n,0,MODE_EMA,i) ;

}

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

{

A=X-E ;

}

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

{

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

{

pour (i=limit-1;0<=i<=j;i--)

{

double B=0,SUM[] ;

B=B+A ;

SUM[j]=B ;

}

}

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

}

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

{

C=iMAOnArray(H,0,S_EMA,0,MODE_EMA,i) ;

}

return(0) ;

}

//-----------------------------------------------------------

Raison: