Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1126

 
Comme je suis loin de toi
 
les gens, pouvez-vous me dire comment faire pour que les graphiques dans le terminal sauvegardent le balisage après la remise sous tension ?
J'ai enregistré au format csv, ça n'a pas marché.
 
Seselio:

Есть условие для открытия ордера BUY. Открывается ордер, как сделать переход к SELL условию после закрытия BUY ордера?

if(High[1]-Close[1]>=NormalizeDouble(xbs1*_Point,_Digits))
   {
    int b_tik=OrderSend(_Symbol,OP_BUY,Lots,Ask,Slip,Low[2]-sl,High[1]+ tp,"",Magic,0,clrBlue)==true; //открытие ордера
      
       GlobalVariableSet("B_order",0); // Больше не ищем вход Buy

       //-----?????
       GlobalVariableSet("S_order",1); // Переходим к поиску Sell
       return;
   }
Exactement la même chose que pour Bai. Votre logique ici est incomplète, même pour Bai, je suggère qu'il en soit ainsi :
if(GlobalVariableGet("B_order",1)) //ищем  вход Buy
if(High[1]-Close[1]>=NormalizeDouble(xbs1*_Point,_Digits))
   {
    int b_tik=OrderSend(_Symbol,OP_BUY,Lots,Ask,Slip,Low[2]-sl,High[1]+ tp,"",Magic,0,clrBlue)==true; //открытие ордера
      
       GlobalVariableSet("B_order",0); // Больше не ищем вход Buy

       //-----?????
       GlobalVariableSet("S_order",1); // Переходим к поиску Sell
       return;
   }
else if(GlobalVariableGet("S_order",1))// ищем  вход Sell
{Условие для SELL}
 

Je suis totalement confus avec ces erreurs, j'ai commencé à les écrire et puis elles ont commencé à aller dans un sens et dans l'autre. Brièvement :

Question : Je l'ai testé sur la démo avec Alert et j'ai vérifié son fonctionnement. J'ai intentionnellement fait dans mon EA le mauvais ordre en essayant de l'ouvrir, il a obtenu le code d'erreur 4051, c'est-à-dire que j'ai défini cette fonction GetLastError() avant d'ouvrir un ordre et après qu'il ait été ouvert. Je l'ai obtenu : 1 tick depuis le début de l'EA, Error call--> 0 --> essayé d'ouvrir un ordre avec de mauvaises conditions --> Error call--> 4051, et quand le 2ème tick s'est déclenché le premier call montre déjà 4051 et mon EA n'envoie plus de requêtes jusqu'à ce que j'ai traité l'EA. La fonction GetLastError() appelle la dernière erreur du terminal ou du serveur et comment la réinitialiser ? Je veux dire que si par exemple le code 2 de "general error" et que 5 min plus tard le serveur fonctionne normalement, le serveur m'informera qu'il n'y a pas d'erreur. En bref, confus dans cette logique, aide qui peut. Je pensais être arrivé ici récemment, il s'avère que j'ai mal compris.

Справочник MQL4
Справочник MQL4
  • docs.mql4.com
Справочник MQL4
 
Evgeniy Oshurkevich:

Je suis totalement confus avec ces bugs, j'ai commencé à les écrire et puis ils ont commencé à aller d'un côté et de l'autre. Brièvement :

Question : Je l'ai testé sur la démo avec Alert et j'ai vérifié son fonctionnement. J'ai intentionnellement fait dans mon EA le mauvais ordre en essayant de l'ouvrir, il a obtenu le code d'erreur 4051, c'est-à-dire que j'ai défini cette fonction GetLastError() avant d'ouvrir un ordre et après qu'il ait été ouvert. Je l'ai obtenu : 1 tick depuis le début de l'EA, Error call--> 0 --> essayé d'ouvrir un ordre avec de mauvaises conditions --> Error call--> 4051, et quand le 2ème tick s'est déclenché le premier call montre déjà 4051 et mon EA n'envoie plus de requêtes jusqu'à ce que j'ai traité l'EA. La fonction GetLastError() appelle la dernière erreur du terminal ou du serveur et comment la réinitialiser ? Je veux dire que si par exemple le code 2 de "general error" et que 5 min plus tard le serveur fonctionne normalement, le serveur m'informera qu'il n'y a pas d'erreur. En bref, confus dans cette logique, aide qui peut. Je pensais être arrivé ici récemment, il s'avère que j'ai mal compris.

Essayez de réinitialiser l'erreur avec la fonction ResetLastError() ;
 
Alekseu Fedotov:
Essayez de réinitialiser l'erreur avec ResetLastError() ;
Merci.
 

EXCEPTION !!!!!!!!! Chers amis ! Ne vous étonnez pas d'être harcelé par les newbies ! !! Qu'est-ce que c'est que ce moteur de recherche à ???? Je suis une sorte d'expert ici depuis 2 semaines maintenant, vous auriez dû voir mon visage quand j'ai décidé de vérifier et d'en savoir plus sur OrderSend() dans le moteur de recherche !!!!. Pauvres petits nouveaux. Bon, ok, dans la barre d'adresse je le change en 4 au lieu de 5. Je ne suis pas autorisé là, ok, j'appuie sur entrée et je suis de retour à mql5. Si je ne suis pas connecté à Mql4, le moteur de recherche ne fonctionne pas.

Et aussi sur le forum, beaucoup de personnes intelligentes écrivent "à quoi sert le moteur de recherche ?" ou "regardez dans le moteur de recherche", "nous sommes un peu paresseux", etc. sans vouloir vous offenser.

 

Dans la documentation :

GetLastError

Renvoie le contenu de la variable système_LastError.

intGetLastError() ;

Valeur retournée

Renvoie la valeur de la dernièreerreur survenue pendant l'exécution d'un programme mql4.

Note .

Après l'appel de la fonction, le contenu de la variable _LastError est effacé.


Il est clairement écrit dans la note que _LastError est remis à zéro.

Laissons laplace à_LastError.

int _LastError

La variable _LastError stocke la valeur de la dernièreerreur survenue pendant l'exécution du programme mql4. LafonctionResetLastError()permet de remettre la valeur à zéro.

Vous pouvez également utiliser la fonctionGetLastError() pour obtenir le code d'erreur.


Il est dit : Vous pouvez remettre lavaleur à zéro avec la fonctionResetLastError(). Pourquoi devrait-elle se réinitialiser si elle dit que_LastError se réinitialise à zéro ?

Ok, continuez à lireResetLastError().

ResetLastError

Définit la valeur de la variable prédéfinie_LastError à zéro.

voidResetLastError() ;

Valeur retournée

Pas de valeur de retour.

Note

GetLastError() efface la variable_LastError.

LafonctionGetLastError()efface la variable_LastError.

Alors pourquoi ai-je besoin deResetLastError() ; ? ????.

Et comment saurai-je plus tard quelle erreur s'est produite s'il y a 0 après le deuxième appel deGetLastError()? Il efface_LastError.

A propos, dans la démo,GetLastError() affiche la même erreur à chaque tick et ne la réinitialise pas.

C'est-à-dire que nous avons eu la même erreur au 1er tick et au 2ème tick, mon EA n'envoie pas la demande d'ouverture car il a déjà vu la dernière erreur.

J'ai un peu dormi la nuit dernière, je n'ai pas bu depuis le réveillon du Nouvel An.



_LastError - Предопределенные переменные - Справочник MQL4
_LastError - Предопределенные переменные - Справочник MQL4
  • docs.mql4.com
_LastError - Предопределенные переменные - Справочник MQL4
 
Evgeniy Oshurkevich:

Dans la documentation :

GetLastError

Renvoie le contenu de la variable système_LastError.



Maintenant, lisez la documentation MT5 normale, maintenant certaines anciennes fonctions fonctionnent exactement comme il est écrit, parce que la documentation MT4 est dépassée et il y a beaucoup de choses qui ne sont pas encore corrigées.

GetLastError

Renvoie le contenu de la variable système_LastError.

intGetLastError() ;

Valeur retournée

Renvoie la valeur de la dernière erreur survenue pendant l'exécution du programme mql5.

Note

Après l'appel de la fonction, le contenu de la variable _LastError n'est pas effacé. La fonctionResetLastError() doit être appelée pour remettre cette variable à zéro.

Voir aussi

Codes de retour des serveurs commerciaux

 
Evgeniy Oshurkevich:

J'ai en quelque sorte dormi toute la nuit, je n'ai pas bu depuis le réveillon du Nouvel An.

Je le suis depuis 1997)

Vous voyez, il y a un tick et avec lui un signal, et si vous obtenez une erreur, elle doit être traitée. Traité et interrogé à nouveau, mais avant l'interrogation vous pouvez mettre à zéro la variable avec l'erreur, puis à la prochaine interrogation s'il y a une erreur, elle retournera dans la variable, mais s'il n'y a pas d'erreur, elle sera "0".

Il n'est pas nécessaire de mettre la variable à zéro, mais en cas d'erreur, elle renverra une nouvelle valeur. Dans tous les cas, vous ne devriez pas vous intéresser à l'erreur que vous aviez la dernière fois au dernier tick, vous devriez traiter uniquement ce que vous avez "maintenant".