[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 72

 
lottamer:

Veuillez suggérer un plan d'action :))

si (...)

{

si(...)

{

si (...) false ->

}

else {...}

}

============================================

où va l'exécution après FALSE -to else ou même au-delà des parenthèses du premier if ?

Si je comprends bien vos accolades, alors.. :

if (1<2) {
   if(2<3) {
      if (3>4) { 
         false ->
         }
      } 
   else  { иначе, если два больше три}
   }   
 
Bonjour, Pourriez-vous nous indiquer comment régler le nombre d'ordres(avec contrôle du symbole, de l'opération et du magicien), nous avons besoin que l'expert ouvre un ordre sans faire attention aux ordres déjà ouverts.
 
dimarik0000:
Bonjour, Pourriez-vous m'indiquer combien d'ordres (avec vérification du symbole, de l'opération et de la magie), je dois faire pour qu'un expert ouvre un ordre sans faire attention aux ordres déjà ouverts.


Cette fonction renvoie le nombre de postes actuellement ouverts

 
Disposez-vous d'une telle fonction ? Si ce n'est pas difficile, veuillez montrer un exemple de son utilisation dans le code du conseiller expert.
 

J'ai écrit une fonction qui doit déterminer si la position existe en fonction de la balise et du commentaire saisis. Si ce n'est pas le cas, il doit renvoyer la permission de l'ouvrir.

Lorsque j'utilise un signal de transaction dans le conseiller expert, tout fonctionne bien : il ouvre une position uniquement lorsqu'il n'y en a pas d'autre avec les mêmes conditions. Mais lorsque le conseiller expert travaille avec plusieurs types de signaux que j'étiquette avec un commentaire différent, il ouvre plusieurs positions. Quel est le problème ?

bool TwoOrders(int magic, string comment)
 {
  int to;
  for(to=0; to<=OrdersTotal(); to++)
   {
    if(OrderSelect(to,SELECT_BY_POS)==true)
     {
      if(OrderMagicNumber()==magic)
       {
        if(OrderComment()==comment)
         {
          return(false);
         }
        else return(true);
       }
      else return(true); 
     }
    else return(true);
   }
 } 

   Type1=TwoOrders(ExpertID,"type1");
   Type2=TwoOrders(ExpertID,"type2");
     if(Type1==true)
      {
       Ans=OrderSend(Symb,OP_BUYSTOP,Lts,OpnPrice,30,SL,TP,"type1",ExpertID,0);
       if(Ans==false)
        {
         Alert("Ошибка при открытии BUY-STOP ордера: ", GetLastError());
        }
      }
     if(Type2==true)
      {
       Ans=OrderSend(Symb,OP_BUYLIMIT,Lts,OpnPrice,30,SL,TP,"type2",ExpertID,0);
       if(Ans==false)
        {
         Alert("Ошибка при открытии BUY-STOP ордера: ", GetLastError());
        }
      }
 
silhouette:

J'ai écrit une fonction qui doit déterminer si la position existe en fonction de la balise et du commentaire saisis. Si ce n'est pas le cas, il doit renvoyer la permission de l'ouvrir.

Lorsque j'utilise un signal de transaction dans le conseiller expert, tout fonctionne bien : il ouvre une position uniquement lorsqu'il n'y en a pas d'autre avec les mêmes conditions. Mais lorsque le conseiller expert travaille avec plusieurs types de signaux que j'étiquette avec un commentaire différent, il ouvre plusieurs positions. Quel est le problème ?

Etes-vous sûr que dans le commentaire de la commande, le DC ne va pas ajouter quelque chose de son cru ? Vous devez rechercher une sous-chaîne dans le commentaire de l'ordre. Ou, mieux encore, ne vous embêtez pas avec ça. La position peut être trouvée en utilisant d'autres critères plus fiables.

 
artmedia70:

Êtes-vous sûr que le DC ne va pas ajouter quelque chose de son cru au commentaire de l'ordre ? Vous devez rechercher une sous-chaîne dans le commentaire de l'ordre. Mieux encore, ne vous embêtez pas avec ça. La position peut être trouvée en utilisant d'autres critères plus fiables.



Par des mages différents, par exemple ?

Mais dans tous les cas, l'erreur se trouve quelque part dans le code, en théorie. Tout de même, je me demande où.

 
dimarik0000:
avez-vous une telle fonction ? si vous pouvez montrer un exemple de son utilisation dans le code de l'expert


//вызываем
NumberOfPositions(NULL,OP_BUY,1234); //текущий график, OP_BUY, 1234 магик 

NumberOfPositions(NULL,OP_SELL,1234); //текущий график, OP_SELL, 1234 магик 

NumberOfPositions();//общее кол.

саму функцию, за пределами функции start()
 
r772ra:



J'ai enfin trouvé comment et où mettre quoi ! Merci beaucoup.
 
silhouette:

J'ai écrit une fonction qui doit déterminer si la position existe en fonction de la balise et du commentaire saisis. Si ce n'est pas le cas, il doit renvoyer la permission de l'ouvrir.

Lorsque j'utilise un signal de transaction dans le conseiller expert, tout fonctionne bien : il ouvre une position uniquement lorsqu'il n'y en a pas d'autre avec les mêmes conditions. Mais lorsque le conseiller expert travaille avec plusieurs types de signaux que j'étiquette avec un commentaire différent, il ouvre plusieurs positions. Quel est le problème ?

Votre boucle for "basique" ne fonctionne pas. Il dira de toute façon soit vrai soit faux au premier ordre et ne cherchera pas plus loin
Raison: