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

 
FoxUA:


Para evitar más aclaraciones. FoxUA crea su propio hilo con una pregunta en la que desvela todos los entresijos. "Cualquier pregunta de novato..." es un tema para "preguntas y respuestas rápidas".
 
DDFedor:

Para evitar cualquier otra aclaración. FoxUA, crea tu propio hilo con una pregunta, donde desveles todos los detalles. "Cualquier pregunta de novato..." es un tema para "preguntas y respuestas rápidas".

No estoy comprobando actitudes, estoy comentando una declaración que me hice a mí mismo,

No hablo de rapidez, hablo de comentarios sin sentido que no ayudan.

 
FoxUA:

Andrey, te has confundido, he mirado el código, tu variable HaveBuyLimitOrderEnd ocurre sólo en esta construcción:

  if (HaveBuyLimitOrderEnd== true) 
  {DeleteOrder();  // Выбираем            
  }}

Y varios posts más arriba lo escribes en este:

La cuestión es que el primer valor funciona bien, pero este no.

si(HaveBuyLimitOrderEnd== true)
{ModifyBuyStopOrder(PRAskS); // Compruébelo
} }

¿Cómo debería ser?

 
ToLik_SRGV:

Andrei, estás confundido, he mirado el código, tu variable HaveBuyLimitOrderEnd ocurre sólo en esta construcción:

Y varios posts más arriba lo escribes en este:

¿Es así como debería ser?



es, aquí está la parte lógica, para ponerlo cara a cara hay bloques son procically la misma diferencia en términos

if(bs==1&&bl==1)
{OpenBuyLimitOrder(Lot*7,PRAskL); 
  if (HaveBuyStopOrder== true) 
  ModifyBuyStopOrder(PRAskS);  // Выбираем            
      
  }   

if(bt==1&&bl==1) 
{OpenBuyStopOrder(Lot,PRBidS);
   if (HaveBuyLimitOrder== true) 
  ModifyBuyLimitOrder(PRAskL);  // Выбираем            
  } 

if(ss==1&&sl==1)
{OpenSellLimitOrder(Lot*7,PRBidL); 
   if (HaveSellStopOrder== true) 
  ModifySellStopOrder(PRBidS);  // Выбираем            
  } 

if(st==1&&sl==1)
{OpenSellStopOrder(Lot,PRBidS); 
  if (HaveSellLimitOrder== true) 
  ModifySellLimitOrder(PRBidL);  // Выбираем            
  } 

  if(bs==1&&bl==3)
{OpenBuyLimitOrderEnd(Lot*15,PRAskL); 
   if (HaveBuyStopOrder== true) 
  ModifyBuyStopOrder(PRAskS);  // Выбираем            
  } 

if(bt==1&&bl==3) 
{OpenBuyStopOrder(Lot,PRBidS);
OpenBuyLimitOrder(Lot*3,PRAskL);
  if (HaveBuyLimitOrder== true) 
  DeleteOrder();  // Выбираем            
  } 

if(ss==1&&sl==3)
{OpenSellLimitOrderEnd(Lot*15,PRBidL); 
   if (HaveSellStopOrder== true) 
  ModifySellStopOrder(PRBidS);  // Выбираем            
  } 

if(st==1&&sl==3)
{OpenSellStopOrder(Lot,PRBidS);
OpenSellLimitOrder(Lot*3,PRBidL);
   if (HaveSellLimitOrder== true) 
  DeleteOrder();  // Выбираем            
  } 

   if(bs==1&&bl==7)
{
    if (HaveBuyStopOrder== true) 
  ModifyBuyStopOrder(PRAskS);  // Выбираем            
  } 

if(bt==1&&bl==7) 
{OpenBuyStopOrder(Lot,PRBidS);
OpenBuyLimitOrder(Lot*3,PRAskL); 
  if (HaveBuyLimitOrderEnd== true) 
  DeleteOrder();  // Выбираем            
  } 

if(ss==1&&sl==7)
{  if (HaveSellStopOrder== true) 
  ModifySellStopOrder(PRBidS);  // Выбираем            
  } 

if(st==1&&sl==7)
{OpenSellStopOrder(Lot,PRBidS); 
OpenSellLimitOrder(Lot*3,PRBidL); 
  if (HaveSellLimitOrderEnd== true) 
  DeleteOrder();  // Выбираем            
  } 

así que cualquier bloque suena igual "si la primera variable es 1 y la segunda variable es 1,3,7 entonces abre una orden pendiente con el lote ____ y el precio _____" y también si la bandera de la orden pendiente abierta seleccionada es igual a la verdad entonces modifica (elimina) esta orden

 
Hola. La situación es la siguiente: se busca un valor de desplazamiento del indicador desde el búfer mediante la sentencia for, es decir, for(i=0;i<=100;i++), MD1=MD1+i, MD1=iMACD(........, i) y se abre una posición sólo si la última barra (en este caso la 100) cumple los criterios de apertura. Necesito que se abra en la dirección de las barras 0 (si los criterios son correctos) y que no considere las barras posteriores. ¿Hay alguna solución para este problema? Gracias de antemano.
 
probablemente for(i=100;i>=0;i--), ?
 
sergeev:
probablemente for(i=100;i>=0;i--), ?
Entonces, por alguna razón los pedidos no se abren en absoluto (MD1=MD1-i cambiado).
 

Hola a todos, me aconsejaron para simplificar el Soviet, empecé a simplificar, pero tengo un problema, la esencia del problema cuando se abren las órdenes en el diario escribe error 4107 pero se abre fácilmente todas las órdenes, que puede mirar lo que el problema, digo a la vez todo el código se toma de la biblioteca Kim Igor V. aka KimIV,

Archivos adjuntos:
test_21.mq4  15 kb
 
sergeev:
probablemente for(i=100;i>=0;i--), ?
Parece que funciona, sólo i>=2, si es 0 o 1, devuelve -1 y 0 respectivamente. Gracias.
 
FoxUA:

Hola a todos, me aconsejaron para simplificar el Soviet, empecé a simplificar, pero tengo un problema, la esencia del problema cuando se abren las órdenes en el diario escribe error 4107 pero se abre fácilmente todas las órdenes, que puede mirar lo que el problema, digo a la vez todo el código se toma de la biblioteca Kim Igor V. aka KimIV,

Por favor, normalice los precios de parada.
Razón de la queja: