Comment vérifier si une commande est sélectionnée - page 3

 
FAQ:

commande par sélection et rien d'autre.

Le sélecteur de commande ne sait pas du tout si une commande est actuellement sélectionnée, et quelle commande est actuellement sélectionnée si elle l'est, donc vous avez complètement tort.

 
Ant_TL:

Le sélecteur de commande ne sait pas du tout si une commande est actuellement sélectionnée, vous avez donc tout à fait tort.

Regardez n'importe quel EA ! Vous êtes le premier à essayer de sélectionner par vous-même ! Apprenez ! Pourquoi êtes-vous si embarrassé par l'ensemble du forum ?
 

Pour ceux qui sont dans le réservoir :

1) Il y a longtemps, dans une fonction lointaine, vous avez sélectionné une commande et y avez travaillé.

2) Après une très longue période, vous voulez y accéder à nouveau et en savoir plus sur son sort.

3) vous contactez la commande et le terminal dit : il n'y a pas de commande (c'est-à-dire que la commande n'a pas déjà été sélectionnée, vous l'avez passée et vous avez réussi à oublier son nom (ticket)). == erreur

Qu'est-ce qui vous empêche, au moment où vous avez choisi l'ordre, de stocker son nom (ticket) dans une variable globale, puis, au lieu de revenir à l'ordre en utilisant un nom oublié depuis longtemps (ticket), de le sélectionner en utilisant la valeur de cette variable globale.

S'il contient le nom de l'ordre, vous obtiendrez une réponse positive indiquant que vous ne l'avez pas oublié, et vous pourrez connaître son sort ou effectuer des actions avec lui.

Mais si vous avez oublié son nom, vous obtenez simplement une réponse négative de la fonction de sélection de l'ordre, et vous réalisez que l'ordre doit être recherché à nouveau dans la liste.

Ouf... ça fait beaucoup de texte...

 
borilunad:
Regardez n'importe quel EA ! Vous êtes les premiers à essayer de le sélectionner à votre guise ! Apprenez ! Pourquoi as-tu si honte de toi sur tout le forum ?

Ce n'est pas moi qui suis gêné, ce sont ceux qui ne comprennent pas les choses élémentaires sur lesquelles j'écris (et qui pourtant essaient agressivement de faire la "leçon").

Que signifie "vérifier si une commande est sélectionnée" ?

Cela signifie qu'à n'importe quel moment de l'exécution d'un programme dans mql4, il existe une telle construction interne, comme l'ordre actuellement sélectionné. En utilisant OrderSelect, nous pouvons sélectionner n'importe quel ordre ouvert/fermé par ticket ou numéro dans la liste.

Cependant, nous ne pouvons pas vérifier si un ordre est actuellement sélectionné et quel est son numéro via OrderSelect, mais seulement sélectionner un ordre à l'aide des données que nous connaissons déjà, comme son ticket ou son numéro dans la liste.

 
FAQ:

pour ceux qui sont dans le réservoir :

Pour ceux qui sont dans le réservoir, bien sûr je peux écrire ma propre fonction OrderSelect, qui en plus de sélectionner une commande va écrire son ticket au global et ensuite déterminer ce ticket si j'ai besoin de savoir si la commande est sélectionnée, mais cela s'appelle une simple résolution de problème à travers le ...

 
FAQ:

Pour ceux qui sont dans le réservoir :

1) Il y a longtemps, dans une fonction lointaine, vous avez sélectionné une commande et y avez travaillé.

2) Après une très longue période, vous souhaitez y accéder à nouveau et en savoir plus sur son sort.

3) vous contactez la commande et le terminal dit : il n'y a pas de commande (c'est-à-dire que la commande n'a pas déjà été choisie, vous l'avez déjà passée, et vous avez réussi à oublier son nom (ticket)). == erreur

Si ce message vous empêche effectivement de sélectionner la commande, son nom (ticket) sera stocké dans une variable globale, et ensuite au lieu de revenir dessus (recherche) en utilisant un nom oublié depuis longtemps (ticket),

S'il porte le nom de la commande, vous recevrez une réponse positive indiquant que vous ne l'avez pas oublié, et vous pourrez connaître son sort futur ou effectuer des actions avec lui.

Mais si vous avez oublié son nom, vous n'obtenez qu'une réponse négative de la fonction de sélection de l'ordre, et vous découvrez que l'ordre doit être recherché à nouveau dans la liste.

Ouf... tant de texte...

Il pense probablement que nous devrions chercher le billet par le numéro que le DC nous donne et que nous voyons sur le tableau ?
 
Ant_TL:

L'erreur est "effrayante" car il ne devrait pas y avoir d'erreur.

L'ordre peut être exécuté, et peut renvoyer une erreur, et vous ne pouvez pas éviter cette erreur.

 
Figar0:

L'ordre peut être exécuté, mais il peut renvoyer une erreur, et vous ne pouvez pas éviter cette erreur.

C'est vrai. Mais je ne suis pas d'accord pour dire que nous ne pouvons aller nulle part sans de telles erreurs. Laisser de telles erreurs dans le code est tout simplement du mauvais code. Il s'agit d'une situation où vous ne pouvez pas vous passer de générer des erreurs - un défaut de la boîte à outils. Les erreurs d'exécution sont tout à fait différentes, ce ne sont pas vraiment des erreurs du conseiller-expert, mais une indication pour le conseiller-expert de nouvelles actions à entreprendre.

 

En fait, il y a beaucoup de démagogie en cours.

bool OrderSelect( int index, int select, int pool=MODE_TRADES)
La fonction sélectionne un ordre pour travailler avec lui. Renvoie VRAI si la fonction se termine avec succès. Renvoie FALSE si la fonction échoue. Appelez GetLastError() pour obtenir des informations sur l'erreur.

Tout ce dont vous avez besoin pour savoir si une commande est choisie ou non.

Ant_TL:

Si vous le dites, justifiez votre point de vue.

void SomeFunс()

{

int tick=OrderTicket(); // Поразумевает ордер выбраный посредством OrderSelect  (ну или ошибку)

// ..... 

if(tick>0) OrderSelect(tick,SELECT_BY_TICKET);  // Так зачем его еще раз выбирать??? 
} 
 
borilunad:
Il pense probablement que nous devrions rechercher le billet par le numéro que le DC nous donne et que nous voyons sur le tableau ?

Non, il est vraiment dans le réservoir.