Comment coder ? - page 107

 

C'est un EA, pas un indicateur, vous ne devez pas mélanger les deux.

 

Bonjour à tous.

C'est un EA, pas un indicateur, vous ne devez pas mélanger les deux.

En fait, je prends un peu de code de l'indicateur MACD et à partir de cela je fais un EA. Quelqu'un peut-il m'aider à savoir quel code je dois corriger ?

Merci...

 

Essayez de regarder quelques-uns des EA que vous avez déjà. Étudiez le code et essayez de voir si vous pouvez comprendre une partie de la logique. Essayez de parler à voix haute du déroulement du programme. Cela aide beaucoup !

Bonne chance

Lux

 

Bonjour à tous.

merci luxinterrior pour la réponse...

Essayez de regarder quelques-uns des EA que vous avez déjà. Étudiez le code et essayez de voir si vous pouvez comprendre une partie de la logique. Essayez de parler à voix haute du déroulement du programme. Cela aide beaucoup ! Bonne chance

J'ai 7 tampons... tampon1 jusqu'à tampon7... chaque tampon sauvegarde la valeur de la barre MACD... l'EA s'ouvrira

BUY post quand le MACD devient de forme 'u'...

la condition quand...

if (MacdBuffer7>MacdBuffer5&&MacdBuffer5>MacdBuffer3&&MacdBuffer3>MacdBuffer1

&&MacdBuffer1<MacdBuffer2&&MacdBuffer2<MacdBuffer4&&MacdBuffer4<MacdBuffer6) [/CODE]

SELL post when the MACD become 'n' shape..

the condition when..

[CODE] if(MacdBuffer7<MacdBuffer5&&MacdBuffer5<MacdBuffer3&&MacdBuffer3<MacdBuffer1

&&MacdBuffer1>MacdBuffer2&&MacdBuffer2>MacdBuffer4&&MacdBuffer4>MacdBuffer6)

j'espère que quelqu'un pourra m'aider à résoudre ce problème... merci...

 

Existe-t-il un moyen de forcer le programme à calculer ?

Actuellement, il attend le prochain tick.

J'ai 6 graphiques ouverts et le même indicateur est sur les six graphiques.

Si un graphique reçoit un tick, il se met à jour mais les autres graphiques ne le font pas et sont donc "périmés".

Merci.

 
J'ai essayé plusieurs configurations simples pour n'avoir que des processus/calculs non liés aux ticks, mais ensuite vous avez le problème de rafraîchissement de l'écran ... donc ... J'ai tout remis à la normale ... l'importance de le faire n'était pas si grande ... peut-être dans MQL5 à venir

: : les indicateurs ne peuvent pas gérer la fonction sleep()

: : vous pouvez écrire une dll, récupérer toutes les fenêtres dans votre terminal... puis faire/envoyer un "refresh screen/window" à chaque fenêtre enfant. Mais alors vous devez envoyer le fichier dll avec votre indicateur aux autres ... encore une fois ... ce qui complique les choses ...

TheRumpledOne:
Existe-t-il un moyen de forcer le programme à calculer ?

Pour l'instant, il attend le prochain tick.

J'ai 6 graphiques ouverts et le même indicateur est sur les six graphiques.

Si un graphique reçoit un tick, il est mis à jour mais les autres graphiques ne le sont pas et sont donc "périmés".

Merci.
 

Bonjour,

J'espère que vous ne m'en voudrez pas de m'immiscer ici, je suis dans une situation similaire et j'ai une idée sur la question... et si vous codiez une boucle à la fin de votre programme qui dit "si aucun ordre n'est ouvert, recommencez". et laissez la boucle peut-être 3 ou 4 fois.

S'il fait cela, alors tous les ordres manqués (ce qui arrive assez souvent) devraient sûrement être récupérés. ou y a-t-il quelque chose de faux dans mon raisonnement.

Je pense que cela ressemblerait à quelque chose comme ceci...

for (int k = OrdersTotal() ==0; k >=2; k++)

{

if ( ! OrderSelect ( k, SELECT_BY_POS, MODE_TRADES ))continue ;

if (k > 2) break ;

}

return(0) ;

}

Je suis encore novice dans ce domaine, alors si cela n'a pas de sens, expliquez-moi pourquoi.

 

A Lux, ajk, Raygun, Devil2000, IN10TION

Merci pour ces conseils.

Je vais les essayer et j'espère trouver la réponse.

Je posterai plus tard.

Big Be

 
amatrader:
Bonjour,

J'espère que vous ne m'en voudrez pas de m'immiscer ici, je suis en train de regarder une situation similaire et j'ai une idée sur la question... et si vous codiez une boucle à la fin de votre programme qui dit "si aucun ordre n'est ouvert, recommencez". et laissez la boucle peut-être 3 ou 4 fois.

S'il fait cela, alors tous les ordres manqués (ce qui arrive assez souvent) devraient sûrement être récupérés. ou y a-t-il quelque chose de faux dans mon raisonnement.

Je pense que ça ressemblerait à quelque chose comme ça...

Je suis encore novice dans ce domaine, alors si cela n'a pas de sens, expliquez-moi pourquoi.

Hé, c'est une bonne idée !

Je pourrais vérifier l'heure et si X secondes ou minutes se sont écoulées, sortir de la boucle.

MERCI !

P.S. Ce n'était pas pour un EA. Je ne code pas d'EA.

 
: : cela ne fonctionnera pas avec des indicateurs comme ça, même si vous bouclez 1.000.000 de fois, cela bloquera tout le reste, rien d'autre que cette boucle ne sera traité, quand la boucle est terminée alors votre terminal continuera ses processus normaux avant un nouveau tick.

: : dans cette 1.000.000 de boucle il est inutile de vérifier/contrôler autre chose, c'est pourquoi la fonction sleep() ne fonctionne pas.

TheRumpledOne:
Hé, c'est une bonne idée !

Je pourrais vérifier le temps et si X secondes ou minutes se sont écoulées alors sortir de la boucle.

MERCI !

P.S. Ce n'était pas pour un EA. Je ne code pas les EAs.