Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 503

 
Vitaly Muzichenko:

Cela fonctionne à merveille !

Parmi deux positions, j'ai choisi la dernière, à savoir sur la 11ème barre, que vous pouvez voir dans la capture d'écran :


Code de validation

J'ai décidé de changer la condition pour entrer dans la position, il suffit de définir Limit à Low[2] a travaillé, mais quand la condition comme dans mon premier appel aujourd'hui, il ne fonctionne pas, il est donc dans la condition elle-même avant la fonction est appelée

 
Вадим Мотеюнас:

J'ai décidé de changer la condition pour entrer dans une position, juste fixer la limite à Low[2] a fonctionné, mais quand la condition comme dans mon premier appel aujourd'hui, il ne fonctionne pas, donc c'est la condition elle-même avant la fonction est appelée

C'est vous qui définissez un ordre et non une prise de position (Achat, Vente).

Ok, donc c'est une bonne chose.

 
Vitaly Muzichenko:

C'est vous qui avez fixé l'ordre, pas l'entrée dans la position (Achat, Vente).

Ok, on a tout compris - donc c'est bon.

Je voulais dire qu'il y avait d'abord une condition pour entrersi(Open[2]>Close[2] && Open[1]>Close[1] && Close[1]<Low[2]

puis j'ai appelé cette fonction pour retourner l'indice de la barre, mais maintenant je l'ai juste supprimée et j'ai mis Low[2] dans OrderSend et ça marche

Après tout, je n'ai pas perdu un jour pour cela, c'est un peu un décalage du point mort

 
J'ai résolu le problème, merci à tous pour vos commentaires.
 
if(takelimit=OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      Print(takelimit,GetLastError());//здесь возвращает число 11, получается ошибка код 11, но не нашел расшифровку нигде?
      {if(iBarShift(Symbol(),0,OrderOpenTime())==1)
        
      deletelimit=OrderDelete(ticket);
      if(!deletelimit)
         Comment(GetLastError());
         }
 
Вадим Мотеюнас:

peut-être 1 et 1 ?/c'est-à-dire vrai et code d'erreur 1

ERR_NO_RESULT1Pas d'erreur, mais le résultat est inconnu
bool takelimit;

if(takelimit=OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      Print(string(takelimit)+"   :",GetLastError());//здесь возвращает число 11, получается ошибка код 11, но не нашел расшифровку нигде?
      {if(iBarShift(Symbol(),0,OrderOpenTime())==1)
        
      deletelimit=OrderDelete(ticket);
      if(!deletelimit)
         Comment(GetLastError());
         }
 
Вадим Мотеюнас:

Votre code entier est faux.

bool takelimit;

if(takelimit?=OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      Print(string(takelimit)+"   :",GetLastError());//здесь возвращает число 11, получается ошибка код 11, но не нашел расшифровку нигде?
      {if(iBarShift(Symbol(),0,OrderOpenTime())==1) // <<< что это, почему сравнивать с единицей? OrderOpenTime() может вернуть "1"???
        
      deletelimit=OrderDelete(ticket);
      if(!deletelimit)
         Com
 
Vitaly Muzichenko:

Votre code entier est faux.

il vérifie le numéro de la barre par rapport au temps qu' il y a...

int ticket;

void Fn()
  {
   ResetLastError();
   if(!OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)){Print(GetLastError());}
   else
     {
      if(iBarShift(Symbol(),0,OrderOpenTime())==1 && !OrderDelete(ticket)){Comment(GetLastError());}
     }
  }
 
Nikolay Gaylis:

il vérifie le numéro du bar par rapport au temps qu'il y a...

Oui, je n'avais pas remarqué le support.

 
Nikolay Gaylis:

il vérifie le numéro de la barre par temps là...

Nikolay Gaylis:

peut-être 1 et 1 ?/c'est-à-dire vrai et code d'erreur 1

ERR_NO_RESULT1Il n'y a pas d'erreur, mais le résultat est inconnu.

Print(takelimit,GetLastError()) renvoie deux valeurs car la 1ère variable est de type bool et n'a pas besoin de GetLastError, et parce qu'il y a une virgule, GetLastError renvoie la dernière erreur dans le code au moment de l'appel de GetLastError ?