Question sur la fonction OrderSelect - page 3

 

"OrderSelect()" renvoie un nombre entier, alors que la documentation indique clairement qu'il renvoie un booléen ?

Un booléen, c'est 0 ou 1

Vous ne vérifiez même pas le résultat de "OrderClose()" ou si une erreur d'exécution s'est produite ! J'écrirai le code après avoir compris le FMIC de sélection de commande.

la programmation c est importante à comprendre. heureux ?

 
boopa26:

"OrderSelect()" renvoie un nombre entier, alors que la documentation indique clairement qu'il renvoie un booléen ?

Un booléen, c'est 0 ou 1

Vous ne vérifiez même pas le résultat de "OrderClose()" ou si une erreur d'exécution s'est produite ! oui mais cela vient après le CCMI

C'est déjà un booléen, vous n'avez pas besoin de le comparer avec quoi que ce soit, que ce soit une autre constante booléenne ou un Integer typé. Vous ne devriez pas coder en dur les valeurs booléennes représentées en interne ! Vous devriez utiliser "true" ou "false", mais idéalement uniquement lors de l'initialisation d'une variable, et non dans les comparaisons.

if(  OrderSelect( ... ) )  // instead of "if( OrderSelect( ... ) == true )"
if(  OrderSelect( ... ) )  // instead of "if( OrderSelect( ... ) == 1 )"
if( !OrderSelect( ... ) )  // instead of "if( OrderSelect( ... ) == false )"
if( !OrderSelect( ... ) )  // instead of "if( OrderSelect( ... ) == 0 )"

Si vous aviez pris la peine d'apprendre le "C", vous l'auriez su !

 

Voici ma question

qu'est-ce qui fait passer la fonction de sélection de commande de faux à vrai ?

Je comprends ! equals not

exemples

if not order select ou if order select BUT

par défaut la sélection de la commande est 0 alors qu'est-ce qui fait passer la sélection de la commande de 0 à 1 ?

La documentation indique

"Valeur retournée

Il retourne vrai si la fonction réussit,"

ce n'est pas assez d'informations pour que je comprenne


merci FMIC

 
boopa26:

seulement ce forum

Eddie, tu connais la fonction de sélection des commandes ?

Bien sûr que je m'y connais.

J'ai appris d'autres codeurs et je suis capable de lire les livres et manuels MQL.

Mais le point le plus important est que j'ai appris à utiliser le débogueur. Cela m'a fait gagner beaucoup de temps dans la recherche de MES erreurs d'analyse et de codage.

 
bien fait eddie
 
boopa26: je comprends ! equals not

Si vous comprenez, pourquoi ne pas l'avoir fait correctement dès le départ !

boopa26 : voici ma question

qu'est-ce qui fait passer la fonction de sélection d'ordre de false à true ?

exemples

if not order select ou if order select BUT

par défaut, la fonction order select est 0, alors qu'est-ce qui fait passer la fonction order select de 0 à 1 ?

La documentation indique

"Valeur retournée Elle retourne vrai si la fonction réussit,"

ce n'est pas assez d'information pour que je comprenne

Il n'y a pas de "défaut" et la fonction ne passe pas d'une valeur à une autre ! Soit elle réussit à sélectionner la commande et renvoie "true", soit elle échoue et renvoie "false" et vous devez vérifier le code d'erreur pour savoir pourquoi !

 
  1. boopa26: veut écrire une fonction de sélection d'ordre pour fermer les ordres sans cycles for ou while.
    Puis affiche le code avec les cycles
  2. boopa26: lisant la documentation maintenant https://docs.mql4.com/trading/orderselect
    Poste des questions avant de lire.
  3. boopa26:

    1. n'a pas besoin de connaissances en c. mql4 a des fonctions différentes

    3. déjà lu la documentation

    4. code déjà écrit

    Se contredit ensuite sur la documentation. et devient argumentatif.
  4. Musngi est banni et boopa26 apparaît soudainement. Coïncidence ? Je ne le pense pas.

S'il vous plaît, ne nourrissez pas le troll. Quand vous répondez, vous donnez du pouvoir au troll. Quand vous ignorez le troll, il a faim d'attention et finit par mourir.

 

Bonjour, je peux faire un cycle de sélection d'ordre pour trouver des ordres ouverts mais je ne peux pas faire un cycle de sélection d'ordre pour trouver des profits d'ordres fermés. Par exemple, je veux trouver le dernier profit d'un ordre fermé.

ce code permet de faire un cycle de sélection d'ordre pour trouver les ordres ouverts

static int a;

//cycle order select

if(OrdersTotal()>0&&
   a<OrdersTotal()&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

   a++;

//close open order

if(OrdersTotal()>0&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==1&&
   OrderMagicNumber()==magic_number&&
   OrderType()==OP_BUY&&
// close order signal)
  
   OrderClose(OrderTicket(),lots_2,Bid,3,Blue);

https://docs.mql4.com/trading/orderselect

https://docs.mql4.com/trading/orderprofit

peut-être ceci

if(OrdersHistoryTotal()>0&&
   b<OrdersHistoryTotal()&&
   OrderSelect(b,SELECT_BY_POS,MODE_HISTORY)==0)

   b++;
 
static int a;

//cycle order select

if(OrdersTotal()>0&&
   a<OrdersTotal()&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

   a++;

//close open order

if(OrdersTotal()>0&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==1&&
   OrderMagicNumber()==magic_number&&
   OrderType()==OP_BUY&&
// close order signal)
  

   OrderClose(OrderTicket(),lots_2,Bid,3,Blue);

static int a;

vous n'initialisez pas la variable a et pourquoi est-elle statique ?


OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

On vous a déjà dit que vous deviez utiliser true ou false, et non 1 ou 0.

OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==false)
// OR
!OrderSelect(a,SELECT_BY_POS,MODE_TRADES))


Vous n'effectuez pas de cycle dans les commandes

 
Keith Watford:
static int a;

//cycle order select

if(OrdersTotal()>0&&
   a<OrdersTotal()&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

   a++;

//close open order

if(OrdersTotal()>0&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==1&&
   OrderMagicNumber()==magic_number&&
   OrderType()==OP_BUY&&
// close order signal)
  

   OrderClose(OrderTicket(),lots_2,Bid,3,Blue);

static int a;

vous n'initialisez pas la variable a et pourquoi est-elle statique ?


OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

On vous a déjà dit que vous deviez utiliser true ou false, et non 1 ou 0

OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==false)
// OR
!OrderSelect(a,SELECT_BY_POS,MODE_TRADES))


Vous ne passez pas par les commandes

static int a ; sits ci-dessus start(){ VALEUR GLOBALE

il n'y a pas de différence entre 1 et 0. vrai ou faux

j'augmente la valeur a après que les conditions aient pris effet