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

 
MakarFX #:

Pouvez-vous me dire comment le faire correctement

de ne pas entrer tous les éléments que je veux additionner, mais juste spécifier 5 éléments

#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
int Label1Buffer[];
int Label2Buffer[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   int i=0,
       f=0,
       limit=9;
   ArrayResize(Label1Buffer,limit);
   ArrayResize(Label2Buffer,limit);
   for(i=limit-1; i>=0; i--)
     {
Label1Buffer[i]= 3;
 if(i<=4) f+=Label1Buffer[i];
Label2Buffer[i]= f;
      Print(Label2Buffer[i]);
     }
Print("   !  ",Label2Buffer[0]);
  }
//+------------------------------------------------------------------+
 
Galim_V #:

Non, ce n'est pas ça. Jusqu'à présent, j'ai fait ceci

   for(i=limit;i>=0;i--)
     {
      Label1Buffer[i] = MathRand();
      tmp = 0.0; 
      for(int a=Input1; a>0; a--)
        {
         tmp +=  Label1Buffer[i+a];
        } 
      Label2Buffer[i] = tmp;
     }
 
iHigh(NULL,PERIOD_H1,i) et double H=iHigh(NULL,PERIOD_H1,i) ; ne sont pas la même chose ?

Pour une raison quelconque, ils donnent des résultats différents après la boucle while.

Je voulais l'optimiser pour ne pas écrire constamment une longue ligne iHigh(NULL,PERIOD_H1,i) mais la stocker dans une variable. En le changeant en une variable dans la boucle, le résultat est différent.
 
Ivan Butko iHigh(NULL,PERIOD_H1,i) et double H=iHigh(NULL,PERIOD_H1,i) ; ne sont pas la même chose ?

Pour une raison quelconque, ils donnent des résultats différents après la boucle while.

Je voulais l'optimiser pour ne pas écrire constamment la longue chaîne iHigh(NULL,PERIOD_H1,i) mais la stocker dans une variable. En le changeant en une variable dans la boucle, le résultat est différent.

dépend du contexte à considérer...

Si votre boucle while joue avec i, alorsiHigh(NULL,PERIOD_H1,i) et H seront différents... Parce que H stocke les données des autres i

 
Nikolay Ivanov iHigh(NULL,PERIOD_H1,i) et H seront différents... Parce que H stocke les données d'un autre i

Oui, vous avez raison, ça joue avec i. Je veux dire, merci.

 
Y a-t-il un moyen de couper l'histoire ? Quand vous le téléchargez, il a 20 ans, mais vous en avez besoin depuis 2 ou 3 ans...
 
Ivan Butko #:
Y a-t-il un moyen de couper l'histoire ? Quand vous le téléchargez, il a 20 ans, mais vous en avez besoin depuis 2 ou 3 ans...

Utilisez la touche "Shift" pour sélectionner les données que vous ne voulez pas et les supprimer.

 
MakarFX #:

Utilisez la touche "Shift" pour sélectionner les données que vous ne voulez pas et les supprimer.

Merci.

 
Bon après-midi.
void CloseAll()
{
   for (int i=OrdersTotal()-1; i>=0; i--)
   {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
         {
            if (OrderType() == OP_BUY)
            {
               if (!OrderClose(OrderTicket(),OrderLots(), Bid, Slippage))
               Print (" Не удалось закрыть ордер на покупку!");
            }
            if (OrderType() == OP_SELL) 
            {
               if (!OrderClose(OrderTicket(),OrderLots(), Ask, Slippage))
               Print (" Не удалось закрыть ордер на продажу!");
            }
         }
      }
   }
}
J'utilise ce code pour fermer toutes les commandes. Mais j'ai remarqué que s'il y en a beaucoup, elles ne sont pas toutes fermées. Que puis-je ajouter pour les fermer tous, même si ce n'est pas la première fois. Si possible, veuillez nous donner un exemple.
 

Bonjour, encore une fois)

Deuxième question :
Je veux fermer partiellement des ordres. Mais il y a un problème, lors de la fermeture partielle des ordres, si je comprends bien, le ticket d'ordre change, et de ce fait le dernier devient le premier, et l'essentiel pour moi est de garder l'ordre d'ouverture. Pour que les derniers restent les derniers. Comment nous pouvons suivre la commande précédente. Le prix d'ouverture change-t-il ? Si possible, avec des exemples)
Merci d'avance

Raison: