[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 337

 

J'ai trouvé le dossier. J'ai dû donner au programme des droits d'administrateur pour qu'il puisse enregistrer dans le fichier.

Maintenant, j'ai une autre question.

Comment déterminer le dernier numéro d'opération à insérer dans OrderSelect()?

Je fais ça

 int total=OrdersHistoryTotal();

Print("total " + total);
OrderSelect(total,SELECT_BY_POS,MODE_HISTORY);
FileWrite(handle,"OrderTicket : " + OrderTicket(),", OrderLots : " + OrderLots(),", OrderType : " + OrderType(),", OrderClosePrice : " + OrderClosePrice());

Il est dit que le total = 322

Mais il y a des zéros dans le fichier

 

J'ai fait ce qui suit

OrderSelect(total-1,SELECT_BY_POS,MODE_HISTORY);

Et tout a fonctionné ;)))

Est-ce correct ou cela peut provoquer une erreur dans le temps ?

C'est-à-dire qu'il peut accidentellement renvoyer la valeur non pas de la dernière commande dans l'historique, mais d'une autre ?

 
ordres de dépassement site:mql4.com
 

Pouvez-vous me dire si cela fait une différence si vous écrivez

if(условие)
{
   if(условие)
   {
      if(условие)
      {
         ...
      }
   }
}

ou

if(условие && условие && условие)
{
   ...
}
 
vitesse des conditions complexes site:mql4.com
 

Pourquoi ce "chalut" obtient-il l'erreur "OrderModify error 1" dans le testeur toutes les secondes et en grande quantité ? Les journaux se transforment en gigaoctets... Qu'est-ce qui doit être réparé ?

void Stop() {

 int    i, o=OrdersTotal();
 for (i=0; i<o; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
     if (OrderType()==OP_BUY) {
        if (OrderOpenPrice()>OrderStopLoss()&&OrderOpenPrice()-OrderStopLoss()>StopLoss*Point) {
           OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-StopLoss*Point,OrderTakeProfit(),0,CLR_NONE);
          }
         }
      if (OrderType()==OP_SELL) {
         if (OrderOpenPrice()<OrderStopLoss()&&OrderStopLoss()-OrderOpenPrice()>StopLoss*Point) {
            OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+StopLoss*Point,OrderTakeProfit(),0,CLR_NONE);
          }
      }
      }
      }
 
  return(0);
}
 
Google:
la vitesse des conditions complexes site:mql4.com
Bien sûr, il y a du bon sens dans les allusions à la recherche, mais vous auriez pu simplement écrire : oui, il y en a. Et expliquer en quelques mots que l'utilisation de la comparaison logique en 4 n'est pas organisée de manière optimale.
 
artmedia70:
Il y a, bien sûr, un peu de bon sens dans les indices de recherche, mais vous auriez pu simplement écrire : oui, il y en a. Et expliquer en quelques mots que l'utilisation de la comparaison logique en 4 n'est pas organisée de manière optimale.
Ou peut-être que Google veut devenir un modérateur ?
 
Shniperson:

Pourquoi ce "chalut" obtient-il l'erreur "OrderModify error 1" dans le testeur toutes les secondes et en grande quantité ? Les journaux se transforment en gigaoctets... Qu'est-ce qui doit être réparé ?

Vous ne devez pas essayer de modifier la même valeur. Si, par exemple, le Stop est à 1,2300 et que vous le modifiez à 1,2300, vous ferez une erreur - il n'y a rien à modifier. Vérifier l'égalité des valeurs modifiées
 
snail09:
Google veut-il être un modérateur ?
Ou président de toute la Russie ? :)