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 ?
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 !
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
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".
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.
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.
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
C'est un EA, pas un indicateur, vous ne devez pas mélanger les deux.
Bonjour à tous.
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...
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...
&&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.
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
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.
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.