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
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
J'ai enregistré au format csv, ça n'a pas marché.
Есть условие для открытия ордера 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;
}
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.
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 ResetLastError() ;
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.
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
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".