Exécuter le script par le biais d'Expert Advisor - page 2

 
Shaun:

C'est une histoire vraie, je suis nouveau, sur le site, et dans le codage aussi. Je n'ai jamais codé auparavant.
commencez ici
 
qjol:
commencer ici

Merci pour ces informations.

Pour être honnête, je suis venu sur le forum traders/codage pour obtenir la réponse de quelqu'un qui l'a déjà fait et qui pourrait éventuellement m'aider, et non pour apprendre à tout coder moi-même à partir de zéro.

 
Shaun:

Merci pour ces informations.

Pour être honnête, je suis venu sur le forum des traders/codage pour obtenir la réponse de quelqu'un qui l'a déjà fait et qui pourrait éventuellement m'aider, et non pour apprendre à tout coder moi-même à partir de zéro.

Montrez votre script, montrez votre EA, peut-être que quelqu'un aura pitié de vous et les combinera....
 
Shaun:

Merci pour ces informations.

Pour être honnête, je suis venu sur le forum des traders/codage pour obtenir la réponse de quelqu'un qui l'a déjà fait et qui pourrait éventuellement m'aider, et non pour apprendre à tout coder moi-même à partir de zéro.

Bien, montrez votre code et nous essaierons de vous aider, mais bien sûr, je suis sûr que vous ne vous attendez pas à ce que je fasse tout le code pour vous.
 

Merci les gars !

En suivant vos conseils, j'ai écrit quelque chose comme ceci dans mon EA :

if(MyCondition)
{
  PlaySound("my_alert.wav");
    if(MessageBox("Do you really want to run the script?", 0, MB_YESNO|MB_ICONQUESTION)!=IDNO)
     { 
      MyScript();
      DisableAllEA();
      Sleep(3000);    
     }
  }

Dans une certaine situation, définie par MyCondition, cela joue mon alerte, afin que je puisse entendre que je dois vérifier ce qui se passe.

Une boîte de message s'affiche, me demandant si je veux exécuter le script - qui est un script de fermeture de toutes les positions.

Lorsque je clique sur le bouton [OUI], le script s'exécute - ferme toutes les positions - et désactive le bouton [Experts] dans MT4.

Bien sûr, vous n'avez pas besoin de désactiver les experts, sauf si vous avez une raison de le faire.

Si, lors de la boucle suivante, votre EA ne trouve pas la condition, il ne déclenchera pas le script.

Évidemment, ce n'est qu'une solution de contournement et non une solution parfaite, car l'EA continue de tourner en boucle à chaque tick.

Et vous ne pouvez pas désactiver les Experts tant que le script n'a pas été exécuté, car le script est à l'intérieur de l'EA, et non pas autonome.

P.S.

Pour que cela fonctionne, vous devez inclure ce qui suit au début de votre EA :

#include <WinUser32.mqh>
 

Je viens de penser à une autre solution !!!

Vous pouvez attribuer une touche de raccourci (HOTKEY) à votre script.

Ainsi, vous pouvez émuler l'événement clavier.

Donc, mieux :

if(MyCondition)
{
      EnableScript();
      DisableAllEA();
      Sleep(3000);
}

Vous pouvez inclure votre alert.wav dans le script autonome, ainsi que dans la boîte de message.

Et, vous pouvez décider d'activer ou non les experts, après votre action sur la situation.

De cette façon, vous ne risquez pas de surcharger le système.

Bien sûr, cela nécessite une étude plus approfondie des événements clés.

La fonction de l'événement clavier Ctrl+E est la suivante :

void DisableAllEA() {
   keybd_event(17, 0, 0, 0); // CTRL down
   keybd_event(69, 0, 0, 0); // E down
   keybd_event(69, 0, 2, 0); // E up
   keybd_event(17, 0, 2, 0); // CTRL up
}

Avec un peu de google, vous pouvez trouver des codes numériques pour chaque touche.

Vous pouvez aussi utiliser ce lien : https://www.mql5.com/en/code

Bien sûr, keybd_event ne fait pas partie de mql4, c'est pourquoi vous en avez besoin :

#include <WinUser32.mqh>
 

Et, au fait !

Est-ce que quelqu'un s'est déjà fatigué à implémenter un EA sur le graphique comme un indicateur ?

Cela devrait fonctionner tout aussi bien !

Et vous pouvez avoir n'importe quel nombre d'indicateurs sur un graphique !

J'ai essayé d'implémenter des scripts en tant qu'indicateurs, et cela fonctionne très bien !

 
Dadas:

Et, au fait !

Est-ce que quelqu'un s'est déjà fatigué à implémenter un EA sur le graphique comme un indicateur ?

Cela devrait fonctionner tout aussi bien !


Vous ne pouvez pas effectuer de transactions à partir d'un indicateur, seulement à partir de scripts et d'EAs.
 
RaptorUK:

Vous ne pouvez pas effectuer de transactions à partir d'un indicateur, seulement à partir de scripts et d'EAs.


Ainsi, une EA pourrait s'exécuter comme un script ? Dans une boucle ?

Seulement, lorsqu'il est dans une boucle infinie, l'ordinateur finit par planter.

Existe-t-il un moyen de déclencher un script dans une boucle contrôlée par un ticker, par exemple toutes les 50 ms ou quelque chose comme ça ?

Pas par les ticks MT4 ?

 
RaptorUK:

Vous ne pouvez pas effectuer de transactions à partir d'un indicateur, mais uniquement à partir de scripts et d'EA.


Et une autre idée :

Vous pouvez donc utiliser la fonction événement clavier pour passer des commandes par Script.

1. Ecrivez un script pour passer automatiquement des commandes.

2. Attribuez-lui un HOTKEY.

3. Dans l'EA fonctionnant comme indicateur, définissez l'événement clavier.

Ensuite, vous pouvez faire la même chose pour les ordres de fermeture.

Et voilà ! Un EA fonctionnant comme un indicateur et faisant son travail !

Le seul inconvénient de cette méthode est que vous ne pouvez pas désactiver un indicateur avec un événement clavier - mais seulement le supprimer manuellement du graphique.