[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 503

 

à Sergeev:

Oui, je me suis un peu embrouillé là, merci. Mais aucun ordre avec Take Profit n'est encore sélectionné.


à Roger, abolk:

Oups, j'ai oublié avec les problèmes et je n'ai même pas remarqué. Merci !

 
Solree:

Oui, je me suis un peu embrouillé là, merci. Mais aucun ordre avec un take profit n'est encore sélectionné.

Où est le code de la boucle corrigée ?
 

à Sergeev:

Je pensais qu'il n'y avait qu'un seul correctif, que tu n'as pas besoin d'écrire. Mais si tu dois le faire, voilà :

for (int a = 0; a < OrdersTotal(); a++)
    if (OrderSelect(a, SELECT_BY_POS, MODE_TRADES))
        if (OrderComment() == "Aelit" && OrderType() == OP_SELL)
            OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask, Digits), 0);
 
Solree:

Je pensais qu'il y avait juste une correction qui n'avait pas besoin d'être écrite. Mais si tu dois le faire, voilà :

Tu ne comprends toujours pas. Laisse-moi t'expliquer.

au début de la boucle vous avez a=0 et OrdersTotal()=2

après la première suppression, vous avez a=1 et OrdersTotal()=1

c'esttout. il n'y aura pas de seconde itération. et il ne reste qu'un seul ordre. vous comprenez ?

quelles conclusions pouvez-vous tirer ? c'est-à-dire quelles sont les deux solutions au problème ?
 

Bonjour, aidez-moi s'il vous plaît. J'ai besoin que l'indicateur calcule la somme des volumes. Quelque chose ne fonctionne pas pour moi.

#property indicator_separate_window    
#property indicator_buffers 1       
#property indicator_color1 Blue  
 
double Buf_0[];           
//--------------------------------------------------------------------
int init()                        
  {
//--------------------------------------------------------------------
   SetIndexBuffer(0,Buf_0);       
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);
//--------------------------------------------------------------------
   return;                     
  }
//--------------------------------------------------------------------
int start()                        
  {
   int i,                         
       n,                         
       Counted_bars;              
       double
       Sum;                      

//--------------------------------------------------------------------
   Counted_bars=IndicatorCounted(); 
   i=Bars-Counted_bars-1;           
   while(i>=0)                     
     {
      Sum=0;                 
      for(n=i;n<=i+1;n++) 
        {
         Sum=Sum + Volume[n];    
        }
      Buf_0[i]=Sum;   
      i--;                         
     }
//--------------------------------------------------------------------
   return;                         
  }
//--------------------------------------------------------------------
 

à Sergeev:

Dans OrderSelect, 0 est également une position, c'est-à-dire que s'il y a 2 ordres, leurs positions sont 0 et 1.

 
Solree:

Dans OrderSelect, 0 est également une position, c'est-à-dire que s'il y a 2 ordres, leurs positions sont 0 et 1.

Oui. Il y a deux ordres. Et OrdersTotal retournera 2.

Relisez-le, s'il vous plaît.

Si tu ne me crois pas, alors utilise l'empreinte dans le journal.

 
prom18:

Bonjour, aidez-moi s'il vous plaît. J'ai besoin que l'indicateur calcule la somme des volumes. Quelque chose ne fonctionne pas pour moi.


Oui, ça a l'air de fonctionner.

 
prom18:

Bonjour, aidez-moi s'il vous plaît. J'ai besoin que l'indicateur calcule la somme des volumes. Quelque chose ne fonctionne pas pour moi.


Oui, ça a l'air de fonctionner.

 
Vinin:


Cela semble fonctionner.

Je voulais dire Volume[100]+Volume[99]+...+Volume[1]. Le graphique doit ressembler à une courbe croissante.