Question sur la fonction OrderSelect - page 2

 
//+------------------------------------------------------------------+
//| Check for close order conditions                                 |
//+------------------------------------------------------------------+
void CheckForClose()
  {
   double ma;
//--- go trading only for first tiks of new bar
   if(Volume[0]>1) return;
//--- get Moving Average 
   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
      //--- check order type 
      if(OrderType()==OP_BUY)
        {
         if(Open[1]>ma && Close[1]<ma)
           {
            if(!OrderClose(OrderTicket(),OrderLots(),Bid,3,White))
               Print("OrderClose error ",GetLastError());
           }
         break;
        }
      if(OrderType()==OP_SELL)
        {
         if(Open[1]<ma && Close[1]>ma)
           {
            if(!OrderClose(OrderTicket(),OrderLots(),Ask,3,White))
               Print("OrderClose error ",GetLastError());
           }
         break;
        }
     }
//---
  }
for(int i=0;i<OrdersTotal();i++)
 

Un nouveau type d'art.

La satire commerciale.

Je l'adore.

 
boopa26:

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

boopa26 ne fait pas perdre de temps aux gens

  1. Vous pensez que vous pouvez écrire du code sans savoir comment écrire du code. Les fonctions ne sont pas pertinentes.
    boopa26 : veut écrire une fonction de sélection d'ordre pour fermer les ordres sans cycles for ou while.
    Alors pourquoi avez-vous posté un code qui utilise des boucles ? Vous nous faites perdre notre temps.
  2. En présence d'ordres multiples (un EA, plusieurs graphiques, plusieurs EA, trading manuel)
 
for(last_index_inside_trade_pool=OrdersTotal()-1;last_index_inside_trade_pool>=0;last_index_inside_trade_pool--)

   {if(OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES)==1&&
       OrderMagicNumber()==magic_number&&
       OrderType()==OP_SELL)

       OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Red);


    if(OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES)==0)

       Print("OrderSelectError: ",GetLastError());}

Perte de temps, hein ? le code ci-dessus donne-t-il l'impression que je vous fais perdre votre temps ? euh... probablement pas WHRoeder

ce n'était pas une tâche facile mais le code ci-dessus ferme les ordres. je ne le comprends pas cependant. ce serait bien si le codeur expliquait plus de détails.

ce que pense boopa26

static int last_index_inside_trade_pool = OrdersTotal()-1

while last_index_inside_trade_pool >=0 do code ci-dessous. do last_index_inside_trade_pool--

le code ci-dessous trouve la commande. vérifie la commande. ferme la commande. fait GetLastError()

ne comprend pas cependant

if(OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES)==1&&
 
boopa26: Perdre du temps, hein ? Le code ci-dessus donne-t-il l'impression que je vous fais perdre votre temps ?
Oui. J'ai posé deux questions et vous les avez totalement ignorées.
 

Alors pourquoi avez-vous posté un code qui utilise des boucles ?

le code des cycles peut être écrit différemment pour faire la même chose sans les cycles. exemple

static int last_index_inside_trade_pool;
//below start()
last_index_inside_trade_pool=OrdersTotal()-1;

  if(OrdersTotal()>0&&
     iMA(NULL,0,1,0,MODE_SMMA,PRICE_CLOSE,1)>iMA(NULL,0,10,0,MODE_SMMA,PRICE_CLOSE,1)&&
     OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES)==1&&
     OrderMagicNumber()==99999&&
     OrderType()==OP_SELL)

    {last_index_inside_trade_pool--;
     OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Red);}

pas de boucles mais même résultat. boopa26 préfère les conditions if à for cycles while cycles

Vous pensez que vous pouvez écrire du code sans savoir comment écrire du code. Les fonctions ne sont pas pertinentes.

je sais comment faire des conditions if while cycles for cycles des maths de base. c'est un bon début WHRoeder. la programmation c est la programmation c. mql4 est mql4. POURQUOI ? à cause des FONCTIONS. mql4 fait de la programmation c exemple * () == etc mais pas pareil à cause des fonctions.

 

Quels sont les commutateurs qui permettent de sélectionner la fonction de 0 à 1 ?

if(OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES))==1

La fonction de sélection des commandes passe-t-elle de 0 à 1 lorsque le total des commandes est supérieur à zéro ?


documentation

" Valeur retournée

Cette fonction renvoie true si la fonction réussit, sinon falses. Pour obtenir les informations sur les erreurs, il faut appeler la fonction GetLastError()."

il retourne 1 si la fonction réussit ?

 

J'adore ce type :-)

Ecrivez-vous uniquement sur ce forum ou avez-vous d'autres liens ?

Si vous faites cela sur une scène, où puis-je obtenir des billets ?

 

seulement ce forum

eddie, savez-vous quelque chose sur la fonction de sélection des commandes ?

 
boopa26:

Alors pourquoi avez-vous posté un code qui utilise des boucles ?

le code des cycles peut être écrit différemment pour faire les mêmes fonctions sans les cycles. exemple

pas de boucles mais même résultat. boopa26 préfère les conditions if à for cycles while cycles

Vous pensez que vous pouvez écrire du code sans savoir comment écrire du code. Les fonctions ne sont pas pertinentes.

je sais comment faire des conditions if while cycles for cycles des maths de base. c'est un bon début WHRoeder. la programmation c est la programmation c. mql4 est mql4. POURQUOI ? à cause des FONCTIONS

Et vous vous demandez pourquoi votre code ne fonctionne toujours pas ? Parce que vous ne connaissez toujours pas les "bases", qui si vous aviez suivi "l'étape 1" et appris à coder correctement en "C", vous auriez été beaucoup plus habile à coder en MQL (parce qu'il est similaire à C et C++) !

Vous n'arrivez même pas à comprendre les "fonctions" (étape 3) ! Depuis quand"OrderSelect()" renvoie un entier, alors que la documentation indique clairement qu'il renvoie un booléen ? Vous ne vérifiez même pas le résultat de "OrderClose()" ou si une erreur d'exécution s'est produite dans une partie de votre code !

Votre résultat : Vous vous êtes retrouvé avec du "charbon brûlé" et puisque vous refusez de suivre nos conseils, vous nous faites également perdre notre temps !