[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 503

 

a sergeev:

Sí, me he confundido un poco, gracias. Pero todavía no se selecciona ninguna orden con take profit.


a Roger, abolk:

Uy, se me olvidó con los problemas y no me di cuenta. Gracias.

 
Solree:

Sí, me he confundido un poco, gracias. Pero todavía no se selecciona ninguna orden con un take profit.

¿Dónde está el código del bucle corregido?
 

a sergeev:

Pensé que sólo había un arreglo, que no es necesario escribir. Pero si tienes que hacerlo, ahí tienes:

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:

Pensé que sólo había una corrección que no era necesario escribir. Pero si tienes que hacerlo, ahí tienes:

Sigues sin entenderlo. Deja que te lo explique.

al principio del bucle tienes a=0 y OrdersTotal()=2

después de la primera eliminación, tienes a=1 y OrdersTotal()=1

Ya está. No habrá una segunda iteración. y sólo queda un pedido. ¿entendido?

¿qué conclusiones puede sacar? es decir, ¿cuáles son las dos soluciones al problema?
 

¡Hola! Por favor, ayúdenme. Necesito que el indicador calcule la suma de los volúmenes. Algo no me funciona.

#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;                         
  }
//--------------------------------------------------------------------
 

a sergeev:

En OrderSelect 0 también es una posición, es decir, si hay 2 órdenes, sus posiciones son 0 y 1.

 
Solree:

En OrderSelect 0 también es una posición, es decir, si hay 2 órdenes, sus posiciones son 0 y 1.

Sí. Hay dos órdenes. Y OrdersTotal devolverá 2.

Por favor, léalo de nuevo.

Si no me creen, entonces usen la impresión en el diario

 
prom18:

¡Hola! Por favor, ayúdenme. Necesito que el indicador calcule la suma de los volúmenes. Algo no me funciona.


Sí, parece que funciona.

 
prom18:

¡Hola! Por favor, ayúdenme. Necesito que el indicador calcule la suma de los volúmenes. Algo no me funciona.


Sí, parece que funciona.

 
Vinin:


Parece que funciona.

Quería decir Volumen[100]+Volumen[99]+...+Volumen[1]. El gráfico debe parecer una curva creciente.