Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1748

 
MakarFX #:

¿Me pueden decir cómo hacerlo correctamente?

no introducir todos los elementos que quiero sumar, sino sólo especificar 5 elementos

#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 #:

No, no es eso. Hasta ahora he hecho esto

   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) y double H=iHigh(NULL,PERIOD_H1,i); no son lo mismo?

Por alguna razón dan resultados diferentes después del bucle while.

Quería optimizarlo para que no escribiera constantemente la cadena larga iHigh(NULL,PERIOD_H1,i) sino que la almacenara en una variable. Cambiado a una variable en el bucle, el resultado es diferente.
 
Ivan Butko iHigh(NULL,PERIOD_H1,i) y double H=iHigh(NULL,PERIOD_H1,i); no son lo mismo?

Por alguna razón dan resultados diferentes después del bucle while.

Quería optimizarlo para que no escribiera constantemente una línea larga iHigh(NULL,PERIOD_H1,i) sino que la almacenara en una variable. Cambiado a una variable en el bucle, el resultado es diferente.

depende del contexto que se considere...

Si tu bucle while juega con i, entoncesiHigh(NULL,PERIOD_H1,i) y H serán diferentes... Como H almacena los datos de los otros i

 
Nikolay Ivanov iHigh(NULL,PERIOD_H1,i) y H serán diferentes... Porque H almacena datos de otro i

Sí, tienes razón, juega con la i. Quiero decir, gracias.

 
¿Hay alguna manera de cortar la historia? Cuando lo descargas, tiene 20 años, pero lo necesitas hace 2-3 años...
 
Ivan Butko #:
¿Hay alguna manera de cortar la historia? Cuando lo descargas, tiene 20 años, pero lo necesitas hace 2-3 años...

Utiliza la tecla "Shift" para seleccionar los datos que no quieres y borrarlos

 
MakarFX #:

Utiliza la tecla "Shift" para seleccionar los datos que no quieres y borrarlos.

Gracias

 
Buenas tardes.
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 (" Не удалось закрыть ордер на продажу!");
            }
         }
      }
   }
}
Utilizo este código para cerrar todos los pedidos. Pero me he dado cuenta de que si hay muchos, no todos están cerrados. Qué puedo añadir para cerrar todas, aunque no sea la primera vez. Si es posible, danos un ejemplo.
 

Buenas tardes, de nuevo)

Segunda pregunta:
Quiero cerrar las órdenes parcialmente. Pero hay un problema, al cerrar parcialmente las órdenes, según tengo entendido, el ticket de la orden cambia, y de esta la última pasa a ser la primera, y lo principal para mí es mantener el orden de apertura. Para que los últimos sean los últimos. Cómo podemos rastrear el pedido anterior. ¿Cambia el precio de apertura? Si es posible, con ejemplos)
Gracias de antemano

Razón de la queja: