Questions des débutants MQL5 MT5 MetaTrader 5 - page 673

 
Bonjour,Quel code dois-je ajouter pour que les alertes de n'importe quel indicateur apparaissent dans l'EA ?

Comment détecter les alertes via iCustom ?

Peut-être connaissez-vous des indicateurs/conseillers déjà existants pour cela ?
 
RichLux:

J'écris un EA qui fonctionne sur la base d'une martingale.

Comment puis-je faire en sorte qu'il ferme tous les ordres qu'il a ouverts lorsque la perte maximale en pips est atteinte sur une paire de devises ?

Si vous en avez vraiment besoin en pips et non en argent, voici une fonction à appliquer en plus de la précédente

//===============================================================================================
//------------------ Возвращает суммарный профит открытых позиций в пунктах --------------------+
//===============================================================================================
double GetProfitOpenPosInPoint(string symb="0", int type=-1, int mg=-1) {
double p=0, prb=0, prs=0, pr=0;
  if(symb=="0") { symb=Symbol();}
   for(int i=0; i<OrdersTotal(); i++) {
    if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
     if((OrderSymbol()==symb||symb=="")&&(type<0||OrderType()==type)&&(mg<0||OrderMagicNumber()==mg)) {
       p=MarketInfo(OrderSymbol(), MODE_POINT)*Sign;
        if(OrderType()==OP_BUY) {
          prb+=((MarketInfo(OrderSymbol(), MODE_BID)-OrderOpenPrice())/p);
        }
        if(OrderType()==OP_SELL) {
          prs+=((OrderOpenPrice()-MarketInfo(OrderSymbol(), MODE_ASK))/p);
        }
       pr=prb+prs;
     }
}}
  return(pr);
}
 
greeng2016:
Bonjour,Quel code dois-je ajouter pour que les alertes de n'importe quel indicateur apparaissent dans l'EA ?

Comment détecter les alertes via iCustom ?

Peut-être connaissez-vous des indicateurs/conseillers déjà existants pour cela ?
Pour autant que je sache, l'apparition de la fenêtre d'alerte ne peut pas être suivie.
 
Bonjour, je voulais ouvrir un fichier.ex4 avec mt4.exe et le configurer pour qu'il soit utilisé pour tous les fichiers. Comment puis-je récupérer la "bibliothèque générale de l'interpréteur de commandes de Windows" ? Pour une raison quelconque, mt4 ne peut pas voir cet expert (robot) maintenant.
Dossiers :
pui_mqhrx2.png  40 kb
 
VSEVPOTOLKI:
Bonjour, je voulais ouvrir un fichier.ex4 avec mt4.exe et le configurer pour qu'il soit utilisé pour tous les fichiers. Comment puis-je rétablir la "bibliothèque générale de l'interpréteur de commandes de Windows" ? Pour une raison quelconque, mt4 ne voit pas cet EA (robot) maintenant.

Vous n'allez pas le croire, mais tout le monde veut ouvrir un fichier .ex4, le problème est qu'il n'a jamais été ouvert pour être édité, et ne s'ouvre pas.

Les fichiers modifiables sont uniquement .mq4, les fichiers exécutables sont .ex4.

 

Événements liés au terminal du client

Init

Immédiatement après le chargement d'un programme (Expert Advisor ou indicateur personnalisé) par le terminal client et le début de l'initialisation des variables globales, un événement Init sera envoyé qui sera traité en utilisant OnInit(), si disponible. Cet événement est également généré après un changement de titre et/ou de période graphique, après une recompilation du programme dans MetaEditor, après un changement des paramètres d'entrée d'un Expert Advisor ou d'une fenêtre de réglage d'un indicateur personnalisé. Le conseiller expert est également initialisé après le changement de compte. L'événement Init n'est pas généré pour les scripts.


Et si ce n'est pas "par la fenêtre" ? Par exemple, en mode d'optimisation dans le Strategy Tester ? Où trouver des informations à ce sujet ?

 
Leo59:

Événements liés au terminal du client

Init

Immédiatement après le chargement d'un programme (Expert Advisor ou indicateur personnalisé) par le terminal client et le début de l'initialisation des variables globales, un événement Init sera envoyé qui sera traité en utilisant OnInit(), si disponible. Cet événement est également généré après un changement de titre et/ou de période graphique, après une recompilation du programme dans MetaEditor, après un changement des paramètres d'entrée d'un Expert Advisor ou d'une fenêtre de réglage d'un indicateur personnalisé. Le conseiller expert est également initialisé après le changement de compte. L'événement Init n'est pas généré pour les scripts.


Et si ce n'est pas "par la fenêtre" ? Par exemple, en mode d'optimisation dans le Strategy Tester ? Où trouver des informations à ce sujet ?

En mode optimisation, chaque passage avec de nouveaux paramètres n'est rien d'autre qu'un nouveau démarrage du programme. L'événement OnInit() est exécuté en conséquence après le démarrage.
 
Vladimir Karputov:
En mode optimisation, chaque passage avec de nouveaux paramètres n'est rien d'autre qu'une nouvelle exécution du programme. En conséquence, après le démarrage, l'événement OnInit() passe.
(Merci, Vladimir ! Je le comprends)). Mais où cela est-il écrit dans la documentation ? Si je mets Print, Alert et Comment dans init(), rien ne s'affiche dans le journal ou sur l'écran. Comment pouvons-nous être sûrs de ce que nous savons ?
 
Leo59:
Merci Vladimir, j'ai compris)). Mais où cela est-il écrit dans la documentation ? Si je mets Print, Alert, Comment dans init(), rien n'est écrit ni dans le journal ni à l'écran. Comment pouvons-nous être sûrs de ce que nous savons ?
  • Limites des fonctions du testeur de stratégie:
  • Il existe des limitations pour certaines fonctions dans le testeur de stratégie du terminal client.

    Fonctions Print() et PrintFormat()

    Pour améliorer les performances lors de l'optimisation des paramètres EA, les fonctionsPrint() etPrintFormat() ne sont pas exécutées. L'exception est l'utilisation de ces fonctions à l'intérieur du gestionnaireOnInit(). Cela facilite la recherche des causes d'erreurs lorsque celles-ci se produisent.

    les fonctions Alert(), MessageBox(), PlaySound(), SendFTP, SendMail(), SendNotification() et WebRequest().

    Les fonctionsAlert(),MessageBox(),PlaySound(),SendFTP(),SendMail(),SendNotification() etWebRequest() qui interagissent avec le "monde extérieur" ne sont pas exécutées dans le testeur de stratégie.

Et pour en être sûr, lancez le débogage sur l'historique et définissez un point d'arrêt dans OnInit().

 

Je n'arrive pas à obtenir quelque chose à imprimer() dans le journal du testeur. Comment faites-vous ?

Raison: