[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 52

 
FAQ:

Completamente independiente de eso. Tal vez dependa de otra cosa, pero no de las garrapatas - lo he comprobado. En general, la nueva construcción ha cambiado por completo el funcionamiento de la terminal con respecto al flujo de EA. Ahora el EA en bucle cumple claramente con todas las iteraciones del bucle independientemente de la operación del terminal, en las versiones antiguas, había retrasos en la carga del hilo principal. Por cierto, la cantidad de recursos de la CPU consumidos por el EA en bucle se ha reducido drásticamente.
También me pasó algo similar con el terminal - no había cosas en bucle - parecía que el terminal estaba ocupado procesando algo... Cuando intenté repetidamente llamar a la ventana de Propiedades con el ratón - después de 5-8 intentos - se abrió con éxito...
 
Roman.:
También tuve un problema similar con el terminal - no había nada de bucle - parecía que el terminal estaba ocupado procesando algo... cuando intenté repetidamente llamar a la ventana de Propiedades con el ratón - después de 5-8 intentos - se abrió con éxito...

Posiblemente, pero no tiene nada que ver con las garrapatas.
 
FAQ:

Tal vez, pero no tiene nada que ver con las tics.

Ya veo.
 

Espero estar en el tema correcto ; )

Es una pregunta más bien nubia, pero hace tiempo que estoy atascado en ella.

int total=Total de pedidos();

int Q,W;
si (total == Q + W)

y luego abro varios pedidos diferentes. Algunos están bajo la Q, otros bajo la W. Cómo cambiar una orden (por ejemplo, si se cierra) a Q, volverá a abrirse Q... Si los dos están cerrados - Q y W, se reabrirán sólo si los dos están cerrados.

 
Keda:

Espero estar en el tema correcto ; )

Es una pregunta más bien nubia, pero hace tiempo que estoy atascado en ella.

int total=Total de pedidos();

int Q,W;
si (total == Q + W)

y luego abro varios pedidos diferentes. Algunos están bajo la Q, otros bajo la W. Cómo cambiar una orden (por ejemplo, si se cierra) a Q, volverá a abrirse Q... En caso contrario, sólo se reabren si Q y W están cerrados.


Por lo que se ve, las variables Q y W son números enteros.

A continuación, se abren los órdenes de algunos enteros (¿a qué te refieres?) y preguntas cómo hacer esto, si un orden (de algún entero) está cerrado, para volver a abrir algún otro entero. Ahora se abren si se cierran dos enteros (¿cuáles qué?).

La pregunta es súper. Has dicho correctamente: "La cuestión es bastante núbil". Exactamente: un nudo de preguntas. No seas un noubet a la hora de hacer preguntas, entrénate para hacerlas de forma que te entiendan.

Mientras tanto, deberías ir aquí.

 

Por la pregunta me doy cuenta de que la persona que lo pregunta es completamente nueva en mql4. Gracias por la respuesta, ahora entiendo cuál es el problema.

Traté de entenderlo y me confundí aún más. Estoy usando sólo 2 lotes. Se están abriendo 2 lotes diferentes. Deberían trabajar juntos. Cuando uno de ellos se cierra, ¿cómo puedo hacer que el cerrado se abra de nuevo? Cuando un lote está cerrado, el otro funciona conjuntamente. Sólo cuando ambos lotes están cerrados, se abren 2 lotes. Les agradecería que me aconsejaran.

 
yosuf:
El internet se cae a menudo, ¿no hay forma de automatizarlo programáticamente para que vuelva a funcionar? ¿O qué se sabe en este sentido? ¿Hay alguna forma de alimentar dos o más ISP al mismo tiempo, es decir, en paralelo? Gracias de antemano.
Es más fácil y más seguro para su dinero utilizar el servicio VPS.
 
Keda:

Por la pregunta me doy cuenta de que la persona que lo pregunta es completamente nueva en mql4. Gracias por la respuesta, ahora entiendo cuál es el problema.

Traté de entenderlo y me confundí aún más. Estoy usando sólo 2 lotes. Se están abriendo 2 lotes diferentes. Deberían trabajar juntos. Cuando uno de ellos se cierra, ¿cómo puedo hacer que el cerrado se abra de nuevo? Cuando un lote está cerrado, el otro funciona conjuntamente. Sólo cuando ambos lotes están cerrados, se abren 2 lotes. Les agradecería que me aconsejaran.


Ahora lo entiendo. He aquí una estimación aproximada:

int    Magic=123;

double Lot_Q=0.01;
double Lot_W=0.05;

bool   Flag_Q=False;
bool   Flag_W=False;


//Просматриваем все открытые ордера

for(int i = OrdersTotal() - 1; i >= 0; i--) 
  {
   OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
   if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)//Если это ордер данного символа и магика (т.е. открыт данным советником)
     {
      if(OrderLots()==Lot_Q) Flag_Q=True;//Если ордер с объемом Q есть среди открытых, присваиваем флагу Q истину.
      if(OrderLots()==Lot_W) Flag_W=True;//Если ордер с объемом W есть среди открытых, присваиваем флагу W истину.
     }
   }


//Проверяем условия нужности открытия - индикаторы, другие сигналы, и что там у Вас еще. И если есть сигнал

if(Flag_Q==False)//Только если ордер Q не открыт в настоящий момент
  {
   //Открытие ордера Q
  }

if(Flag_W==False)//Только если ордер W не открыт в настоящий момент
  {
   //Открытие ордера W
  }
 
Oh, genial, esto es todo. Gracias
 

Hola de nuevo) ¡Hola! ¿Puedes decirme cómo escribir esto de forma más compacta?

        for (i=4; i<7; i++){
        sum+=GetPrcD1(symb[i]);
        Content[5][1]=DoubleToStr(sum/3,3);
        }
        
        for (i=7; i<10; i++){
        sum+=GetPrcD1(symb[i]);
        Content[6][1]=DoubleToStr(sum/3,3);
        }

        for (i=10; i<13; i++){
        sum+=GetPrcD1(symb[i]);
        Content[7][1]=DoubleToStr(sum/3,3);
        }

        for (i=13; i<16; i++){
        sum+=GetPrcD1(symb[i]);
        Content[8][1]=DoubleToStr(sum/3,3);
        }

        for (i=16; i<19; i++){
        sum+=GetPrcD1(symb[i]);
        Content[9][1]=DoubleToStr(sum/3,3);
        }