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

 

Aidez-nous, s'il vous plaît. Qu'est-ce qui ne va pas ici ?

 double buy_OrderProfit = 0;
 double sell_OrderProfit = 0;
 double buy_Order_price  = 0;
 double sell_Order_price = 0;
 
  double Drop_proc1 =AccountEquity();
  double Drop_proc2 =AccountBalance();
  double Drop_proc3 =(Drop_proc1*100)/Drop_proc2;
  
  if (Drop_procK <= Drop_proc3)
  {
  for(int i=OrdersTotal()-1; i>=0; i--)
       if ((OrderSelect(i,SELECT_BY_POS,MODE_TRADES))&& (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic))
            if((OrderType()==OP_SELL) sell_OrderProfit + OrderProfit())
                 if((OrderType()==OP_BUY)  buy_OrderProfit + OrderProfit()) 

  for (int i=OrdersTotal()-1; i>=0; i--)
        if ((OrderSelect(i,SELECT_BY_POS,MODE_TRADES))&& (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic))
             if ((OrderType()==OP_BUY ) && ( buy_OrderProfit < sell_OrderProfit ) )     
                  OrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),slippage);
                    if ((OrderType()==OP_SELL) && sell_OrderProfit < buy_OrderProfit )
                         OrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),slippage);  
        } 
   else 1=1;

erreur 'if' - les expressions ne sont pas autorisées sur une portée globale v.4.1.5(2).mq4 793 3



 
new-rena:

Messieurs !

Comment puis-je savoir si le marché est fermé ou non pendant l'initialisation d'un Expert Advisor MQL4 ? (quelle commande ?)

Cette commande n'existe pas. Vous pouvez essayer de placer un ordre en attente à long terme, puis le supprimer si c'est le cas.
 
Kisolen:

Aidez-nous, s'il vous plaît. Qu'est-ce qui ne va pas ici ?

Une condition if ne peut se trouver qu'à l'intérieur d'une fonction.
 
Sergei Vladimirov:
La condition if ne peut se trouver qu'à l'intérieur d'une fonction.
Merci d'avoir répondu. Ce code se trouve dans la fonction void OnTick(), à l'intérieur des crochets. C'est loin en haut, je m'excuse de ne pas l'avoir copié. C'est comme ça que je le comprends ? C'est une fonction, non ? Et il y a toujours une erreur.
 
Kisolen:
Merci d'avoir répondu. Ce code se trouve dans la fonction void OnTick(), à l'intérieur des crochets. Il est tout en haut, désolé de ne pas l'avoir copié. C'est comme ça que je le comprends ? C'est une fonction, non ? Et il y a toujours une erreur.
Le compilateur écrit que if est dans la portée globale. Peut-être s'agit-il simplement d'un déséquilibre des parenthèses, vérifiez-le (ce qui n'est pas surprenant, d'ailleurs, avec ce style de code).
 
Vitaly Muzichenko:

Essayez celui-là, il a semblé fonctionner une fois, mais je ne l'ai pas utilisé :

Votre code ne fonctionne pas, car l'heure actuelle est déterminée par TimeCurrent(), et elle renvoie l'heure de la dernière citation, et votre fonction renverra toujours true. Vous pouvez faire la même chose avec TimeLocal(), en tenant compte de la différence de fuseau horaire entre l'ordinateur et le serveur, mais cela ne garantit pas un résultat correct : l'horloge de l'ordinateur peut être fausse, et elle peut ne pas remplir l'heure de session sur le serveur, et les jours fériés (Nouvel An), personne ne sait ce qui sera renvoyé... Et il n'existe pas de fonction simple et fiable comme MarketIsClosed() dans µl.
 
Sergei Vladimirov:
Cette commande n'existe pas. Vous pourriez essayer de placer un ordre en attente à long terme, puis le supprimer si c'est le cas.

Oui, une bonne option. L'équipe renverra une erreur "Le marché est fermé".

C'est résolu.

Merci !

 

Bonjour à tous.

Veuillez me conseiller sur la manière de creuser, ou si vous pouvez me fournir un morceau de code à titre d'exemple :)

J'ai besoin des éléments suivants :

J'ai un conseiller expert et un indicateur sur le graphique. Comment changer les paramètres de l'indicateur avec Expert Advisor ?

Merci d'avance pour les réponses.

 
GrRusel:

Bon après-midi à tous.

Veuillez me conseiller sur la manière de creuser, ou si vous pouvez me fournir un morceau de code à titre d'exemple :)

J'ai besoin des éléments suivants :

J'ai un conseiller expert et un indicateur sur le graphique. Comment changer les paramètres de l'indicateur avec Expert Advisor ?

Merci d'avance pour les réponses.

Vous ne modifierez pas visuellement les paramètres de l'indicateur, mais lorsque vous lisez les données dans l'Expert Advisor à travers iCustom depuis l'indicateur, vous pouvez régler les paramètres qui sont reçus par l'Expert Advisor depuis cet indicateur. Vous pouvez également utiliser des variables globales, si vous apprenez à l'indicateur à les utiliser.
 
Vladimir Zubov:
Vous ne modifierez pas visuellement les paramètres de l'indicateur, mais lorsque vous lisez les données dans l'Expert Advisor à travers iCustom depuis l'indicateur, vous pouvez régler les paramètres qui sont reçus par l'Expert Advisor depuis cet indicateur. Vous pouvez également utiliser des variables globales, si vous apprenez à l'indicateur à les utiliser.
Mais lorsque je change les paramètres de l'indicateur, je veux que l'indicateur change ses paramètres de visualisation - par exemple, j'ai changé les zones OBOS. J'ai décidé de modifier les zones OBOS. Je devrais peut-être les supprimer du graphique et les ajouter avec de nouveaux paramètres, mais cela doit être fait par le biais d'Expert Advisor. Personne n'a rencontré un tel problème et à chaque fois ils changent tout à la main - ce n'est pas possible...
Raison: