Tutoriel sur la création d'une EA pour tous
36 réponses
Conmariin
Il y a 7 ans #116417
Bonjour,
Je ne suis pas programmeur et je pensais qu'en achetant l'EA Wizard il serait beaucoup plus facile de construire un EA. Mais après quelques exercices de construction, je constate qu'il faut être un mql-Programmer pour comprendre l'EA Wizard.
Je vous pose donc une question : Est-il possible de construire dans ce forum au moins un EA étape par étape pour mieux comprendre l'EA Wizard pour tous les non-programmeurs ?
J'ai déjà une stratégie qui est décrite ici : https://www.mql5.com/en/articles/1734
Dans cette stratégie, il y a des extraits de code. En fait, je ne sais pas comment les intégrer. Mais plus que cela, je veux comprendre et comprendre comment je construis un tel EA dans l'EA Wizard. Pour que je puisse construire d'autres EA à l'avenir.
Les extraits de code de l'article se trouvent dans le mq4.
En espérant que les salutations de
Conmariin 🙂 .
Gestion automatisée avec Expert Advisor
https://www.rabenesche.de
Conmariin
il y a 6 ans #197213
Il manquait quelque chose. Désolé. Je l'ai corrigé dans cette version 🙂 .
Gestion automatisée avec Expert Advisor
https://www.rabenesche.de
Conmariin
il y a 6 ans #197239
J'ai un problème avec la condition des ordres d'achat.
Je veux que l'EA ouvre un ordre lorsque les conditions suivantes sont remplies :
(GoLongSandR=true et(Pattern1=true ou Pattern2=true ou Pattern3=true)
Mais il ouvre des ordres lorsque l'un de ces modèles est respecté. Il ouvre lorsque GoLongSandR=vrai. Il ouvre lorsque Pattern1=vrai et Pattern3=vrai (mais pas GoLongSandR). Il s'ouvre lorsque seul le schéma 2 est vrai...etc. Par exemple, il s'ouvre parfois correctement lorsque GoLongSandR=vrai et Pattern1=vrai.
J'ai joint une image de mes conditions dans EAWizard for Long. Où se trouve l'erreur ? Quelqu'un peut-il m'aider ?
Voici le code de l'EA :
//--------------------------------------
// Ouverture d'un Long
if(sqIsBarOpen == true) {
if (((sqGetMarketPosition() == 0)
&& ((GoLongSandR == true)
&& ((Pattern1Long == true)
| ((Pattern2Long == true)
| (Pattern3Long == true)))))))
{
// Action #1
sqOpenOrder("NULL", OP_BUY, getOrderSize(MagicLong, OP_BUY ), getOrderPrice(MagicLong), Comment1, MagicLong, "Open Long") ;
// Action #2
sqDrawUpArrow(1) ;
}
}
//--------------------------------------
// Ouverture du court-circuit
if(sqIsBarOpen == true) {
if (((sqGetMarketPosition() == 0)
&& ((GoShortSandR == true)
&& ((Pattern1Short == true)
| ((Pattern2Short == true)
| (Pattern3Short == true)))))))
{
// Action #1
sqOpenOrder("NULL", OP_SELL, getOrderSize(MagicShort, OP_SELL ), getOrderPrice(MagicShort), Comment2, MagicShort, "Open Short") ;
// Action #2
sqDrawDownArrow(1) ;
}
}
Gestion automatisée avec Expert Advisor
https://www.rabenesche.de
tomas262
il y a 6 ans #197256
Bonjour,
Je vois que dans le fichier original joint vous avez omis les parenthèses mais sur la capture d'écran que vous avez fournie elles sont présentes (correctement). Fichier modifié ci-joint
tomas262
il y a 6 ans #197258
Un problème pourrait se poser si vous définissez "pattern" comme VRAI mais que vous ne le ramenez jamais à FAUX, de sorte que la condition reste toujours valable.
Je pense que vous devriez définir pattern = FALSE lors de l'entrée d'un ordre.
Conmariin
il y a 6 ans #197259
Oui, j'ai ajouté les parenthèses lorsque j'ai cherché l'erreur pour ce comportement. Et j'ai pensé que cela pouvait être dû au fait que quelque chose n'est pas réinitialisé. Mais je n'étais pas sûr. D'accord, vous avez eu la même idée. Maintenant, j'essaie de trouver comment définir le modèle après l'entrée de l'ordre. Merci Tomas262 ! 🙂
Gestion automatisée avec Expert Advisor
https://www.rabenesche.de
Conmariin
il y a 6 ans #197277
Bonjour,
Malheureusement, je n'ai pas trouvé comment résoudre ce problème dans EAWizard, mais j'ai pris le code et je l'ai résolu manuellement. C'était juste une ligne dans chaque condition de motif pour mettre motif = FALSE. Cela fonctionne maintenant 🙂 .
Gestion automatisée avec Expert Advisor
https://www.rabenesche.de