Question sur la fonction OrderSelect - page 4

 
boopa26:

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

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

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


Lorsque vous demandez de l'aide à d'autres personnes, vous devez rendre votre code aussi facile à lire que possible, ce qui inclut l'utilisation de true ou false avec les bools.

L'utilisation de chiffres peut conduire à des erreurs telles que celle-ci


   bool a=1;
   bool b=-1;
   if(a+b==0)
      Print("a+b equals 0");
   else
      Print("a+b does not equal 0");
  


Vous n'augmentez la valeur a que si un OrderSelect échoue, où est-elle réinitialisée ?

Vous n'avez pas de boucle dans votre code, où est-ce qu'il fait le tour des commandes ?

 
Keith Watford:


Lorsque vous demandez de l'aide à d'autres personnes, vous devez rendre votre code aussi facile à lire que possible, ce qui inclut l'utilisation de true ou false avec les bools.

L'utilisation de chiffres peut conduire à des erreurs telles que celle-ci


   bool a=1;
   bool b=-1;
   if(a+b==0)
      Print("a+b equals 0");
   else
      Print("a+b does not equal 0");
  


Vous n'augmentez que le nombre d'unités si un OrderSelect échoue, où est-il réinitialisé ?

Vous n'avez pas de boucle dans votre code, où est-ce qu'il fait le cycle des commandes ?

Vous augmentez seulement a si un OrderSelect échoue, où est-il réinitialisé ?

a n'est pas réinitialisé

Vous n'avez pas de boucle dans votre code, où est-ce qu'il fait le cycle des commandes ?

c'était une erreur d'écrire cycle mais le code n'a pas d'importance les commentaires

 

Eh bien, il est évident que vous savez tout.

Pourquoi demandez-vous de l'aide?

 
Keith Watford:

Eh bien, il est évident que vous savez tout.

Pourquoi demandez-vous de l'aide?

Je peux faire

if(OrdersHistoryTotal()>0&&
   OrderProfit()<0)

cela fonctionne mais je voulais comprendre comment sélectionner le dernier ordre historique puis déterminer si le dernier ordre historique était une perte ou un profit.

 
boopa26:

Je peux le faire

if(OrdersHistoryTotal()>0&&
   OrderProfit()<0)

cela fonctionne mais je voulais comprendre comment sélectionner le dernier ordre historique puis déterminer si c'était une perte ou un profit

Cela ne fonctionne pas car vous n'avez pas sélectionné d'ordre. Je ne vois aucune raison pour que les deux tests soient dans le même if() sans un OrderSelect().
 
Keith Watford:
Cela ne fonctionne pas car vous n'avez pas sélectionné d'ordre. Je ne vois aucune raison pour que les 2 tests soient dans le même if() sans un OrderSelect().

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

   a++;

if(OrdersHistoryTotal()>0&&OrderProfit()<0)

lire maintenant
 

Pourquoi montrez-vous

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

   a++;

en réponse à un commentaire sur

if(OrdersHistoryTotal()>0&&
   OrderProfit()<0)

?

Ils n'ont manifestement rien à voir l'un avec l'autre

 
Keith Watford:

Pourquoi montrez-vous

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

   a++;

en réponse à un commentaire sur

if(OrdersHistoryTotal()>0&&
   OrderProfit()<0)

?

Ils n'ont manifestement rien à voir l'un avec l'autre

alors pourquoi fait-il ce qu'il fait ? il fonctionne dans mon terminal mt4
 
boopa26:
Alors pourquoi fait-il ce qu'il fait ? Il fonctionne dans mon terminal mt4.

Il peut bien faire quelque chose, mais je doute fort qu'il fasse ce que vous attendez.

Sinon, pourquoi posez-vous une question ?

Réécrivez le code de manière logique afin que les blocs individuels fonctionnent les uns avec les autres. Utilisez une boucle pour parcourir les ordres et n'utilisez pas de variable déclarée globalement pour l'indice de l'ordre.

 
Keith Watford:

Il peut bien faire quelque chose, mais je doute fort qu'il fasse ce que vous attendez.

Sinon, pourquoi posez-vous une question ?

Réécrivez le code de manière logique afin que les blocs individuels fonctionnent les uns avec les autres. Utilisez une boucle pour parcourir les commandes et n'utilisez pas de variable déclarée globalement pour l'indice de commande.

ok. merci