Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 540

 
Rustam Bikbulatov:

Merci !!!!!. Maintenant je vais essayer de l'intégrer dans mon code ! Pourquoi sur la première ligne (void) ?

Et pourquoi faut-il préciser le type d'ordre si le nom de la fonction indique qu'elle prend en compte les ordres d'achat ?
 
Artyom Trishkin:
Et pourquoi faut-il préciser le type d'ordre si le nom de la fonction indique qu'elle prend en compte les ordres d'achat ?

Le nom peut être changé en quelques secondes, mais le code lui-même est un problème.

 
Rustam Bikbulatov:

Vous pouvez changer le nom en quelques secondes, mais il y a un problème avec le code lui-même.

Le problème ne vient pas du code, mais de votre compréhension de ce que vous faites :)

//+------------------------------------------------------------------+
int fMarketOrdersOpen(const ENUM_ORDER_TYPE order_type)
  {
   int total=OrdersTotal(), count=0;
   for(int i=total-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS))
        {
         if(OrderType()!=order_type) continue;
         if(OrderMagicNumber()==123 && OrderSymbol()==Symbol())
            count++;
        }
     }
   return count;
  }
//+------------------------------------------------------------------+
 
Rustam Bikbulatov:
Les gars. Mon cerveau est déjà en train de bouillonner((( S'il vous plaît, conseillez-nous sur la façon d'utiliser cette définition de la quantité de commandes.

faire la quantité de volume en lots ? Qu'est-ce qui doit être modifié ou ajusté ?

double fMarketOrdersOpenB(int type){
   double c=0,aBuyCount=0;
   for(int i=0;i<OrdersTotal();i++){
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==123){
            switch(OrderType()){
               case OP_BUY:aBuyCount+=OrderLots();break;
              }}}else{return(-1);}}
   if(type==OP_BUY)c=aBuyCount;return(c);}

Si vous ne parvenez pas à sélectionner au moins une commande, la fonction renvoie -1.

Si le type correspond à OP_BUY - vous obtiendrez le volume des lots d'achat.

Si la valeur du type est différente, la fonction renvoie 0.

Si j'ai bien compris la tâche, changez le nombre d'unités en nombre de lots de commande d'achat.
 
Kirill Belousov:

Si au moins une commande n'est pas sélectionnée correctement, la fonction renvoie -1.

Si le type correspond à OP_BUY - vous obtiendrez le volume des lots d'achat.

Si la valeur du type est différente, cette fonction renvoie 0.

Si j'ai bien compris la tâche, il s'agit de remplacer le nombre de pièces par le nombre de lots de la commande BUY.

Oui, exactement. Je n'arrive pas à comprendre.

 
Artyom Trishkin:

Le problème ne vient pas du code, mais de votre compréhension de ce que vous faites :)

je suis d'accord que je ne comprends pas complètement la programmation. enfin, ce n'est pas mon truc((((

 
Initialement, ce code
int fMarketOrdersOpenB(int type){
   int c=0,aBuyCount=0;
   for(int i=0;i<OrdersTotal();i++){
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==123){
            switch(OrderType()){
               case OP_BUY:aBuyCount++;break;
              }}}else{return(-1);}}
   if(type==OP_BUY)c=aBuyCount;return(c);}

J'ai besoin d'insérer

     .........
double lts=fMarketOrdersOpenB(OP_BUY);
   if(lts>0){
         int irv2=OrderSend(Symbol(),OP_BUY,lts,Ask,3,0,0,NULL,123,0,CLR_NONE);}

Mon code imprime le nombre d'ordres mais j'ai besoin du volume de lot de tous les ordres d'achat.

 
Rustam Bikbulatov:
Ce code est à l'origine

J'ai besoin d'insérer

Mon code imprime le nombre d'ordres et j'ai besoin du volume de lot de tous les ordres d'achat.

Le plus important est de poser la bonne question.

Découvrez par vous-même ce dont vous avez besoin

Только "Полезные функции от KimIV".
Только "Полезные функции от KimIV".
  • 2011.02.18
  • www.mql5.com
Все функции взяты из этой ветки - http://forum.mql4...
 
Vitaly Muzichenko:

Le plus important est de poser la bonne question.

Cherchez ce dont vous avez besoin

J'ai vu et essayé. Cela m'a déjà beaucoup aidé, mais il y a une limite à ma compréhension.

 
Rustam Bikbulatov:
Les gars. Mon cerveau est déjà en ébullition((( Pouvez-vous me dire comment faire le nombre de commandes à partir de cette définition ?

faire la quantité de volume en lots ? Qu'est-ce qui doit être modifié ou ajusté ?

double fMarketOrdersOpenB(const ENUM_ORDER_TYPE type)
{
     double lots=0;
     for(int i=0;i<OrdersTotal();i++)
     {
          if( !OrderSelect(i,SELECT_BY_POS,MODE_TRADES) )   continue;
          if( OrderSymbol()!=Symbol() )                     continue;
          if( OrderMagicNumber()!=123 )                     continue;
          if( OrderType() != type )                         continue;
          lots += OrderLots();
     }
     return(lots);
}