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

 
Amon1953:
Gracias por los consejos. No soy un programador muy experimentado. y uso un estilo que me resulta cómodo, aún no he aprendido a llevarlo a un estilo común en este sitio. - Todavía no he aprendido a hacerlo.

Pero puedes insertar código en tu post (Alt+S), incluso con tu estilo. Sin embargo, siempre puede utilizar el estilizador en el editor (Ctrl+,) para llevar el estilo al adoptado en el sitio. Aunque no es conveniente para todos, es mejor que algo ilegible.

 
Artyom Trishkin:

Pero puedes insertar el código en tu post (Alt+S), aunque con tu estilo. Sin embargo, siempre puede utilizar la herramienta de estilo en el editor (Ctrl+,) para llevar el estilo al del sitio. Aunque no es conveniente para todos, es mejor que algo ilegible.

 
 if((cnt_OO > 1))
  {
   for(int h = OrdersTotal()-1; h >= 0; h--)
    {
     if(OrderSelect(h, SELECT_BY_POS))
      {
       if((OrderMagicNumber() == Magic))
        {
         Nextstep  = NextStep;
         BaseNext  = OrderOpenPrice();
         LotsNext  = NormalizeDouble(OrderLots()*K,lotDigit);
         if(NewPB > 0)
          {
           PBcloseON = true;
          } 
         Alert ("Pospedny Order NEXT  ",OrderTicket());
         Alert ("Otkritih orderov  ",cnt_OO);
         break;
    }}} }
       if((cnt_OO == 1))
        {
         LotsNext    = NormalizeDouble(Lots*Prikup,lotDigit); 
         Alert ("Otkritih orderov NEXT net ");
         Alert ("Otkritih orderov  ",cnt_OO);
        }
Bueno, tengo algo. Sólo que en esencia no entendí dónde estaba mi error
 
Amon1953:
Bueno, tengo algo. Sólo que en esencia no entendí dónde está mi error

¿Qué es lo que quiere conseguir?

Por lo que has mostrado es imposible de entender - no hay datos sobre los valores de las variables utilizadas.

 
Artyom Trishkin:

¿Qué es lo que quiere conseguir?

Por lo que has mostrado es imposible de entender - no hay datos sobre los valores de las variables utilizadas.

La segunda sentencia if es opcional, pero no funciona sin ella
 
Amon1953:
La segunda sentencia if es opcional, pero no funciona sin ella

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Cualquier pregunta para los novatos en MQL4, ayuda y discusión sobre algoritmos y códigos

Artyom Trishkin, 2018.08.21 22:14

¿Qué es lo que quiere conseguir?

Por lo que has mostrado es imposible de entender - no hay datos sobre los valores de las variables utilizadas.


 
Artyom Trishkin:

Ya he mostrado uno de los resultados de esta unidad

RESULTADO: Otkritih ordena NEXT net

Otkritih ordersov 5

 
Amon1953:

Ya he mostrado uno de los resultados de esta unidad

RESULTADO: Otkritih ordena NEXT net

Otkritih ordersov 5

Ya veo - flujo de conciencia. Me retiré de la discusión...

Siga leyendo.

 

Anton1953 Si te refieres al trabajo del bloque que fue el primero sin if, hay un error. Te voy a dar una pista - intenta ejecutar ese trozo de código con órdenes con otros majiks, hay un montón de órdenes, pero no pasan la condición de majik. ¿Necesita más consejos o quiere resolverlo por su cuenta?

Por cierto, la codificación correcta ayuda mucho a la hora de buscar este tipo de errores porque los marcas con tu estilo habitual y el error se hace evidente.

 
Vitaly Gorbunov:

Anton1953 Si te refieres al trabajo del bloque que fue el primero sin if, hay un error. Te voy a dar una pista - intenta ejecutar ese trozo de código con órdenes con otros majiks, hay un montón de órdenes, pero no pasan la condición de majik. ¿Necesita más consejos o quiere resolverlo por su cuenta?

Por cierto, la codificación correcta ayuda mucho a la hora de buscar este tipo de errores, ya que el error es muy obvio cuando se marca con el estilo habitual.

Hay varios Asesores Expertos que trabajan con distintas especialidades. cnt_OO - es el número de órdenes abiertas con un modo determinado. El bloque está diseñado así: si hay más de una orden cnt_OO>1, seleccionamos de todas las órdenes abiertasOrdersTotal() la que tenga el modo necesarioif((OrderMagicNumber() == Magic)) y hacemos las acciones necesarias.

En caso contrario, realizamos otras acciones. Pero "otherwise" no funciona, hay que introducirif((cnt_OO == 1)) sin él, no funciona


	          
 
Amon1953:

Se están ejecutando varios EAs, con diferentes especialidades. cnt_OO - definido anteriormente - es el número de órdenes abiertas con un modo determinado. El bloque está diseñado así: si hay más de una orden cnt_OO>1, seleccionamos de todas las órdenes abiertasOrdersTotal() la que tiene el modo necesarioif((OrderMagicNumber() == Magic)) y hacemos las acciones necesarias.

En caso contrario, realizamos otras acciones. Pero "otherwise" no se realiza, hay que introducirif((cnt_OO == 1)) sin ello no funciona

El hecho de que haya definido en algún lugar el número de órdenes necesarias es bueno, pero en este bloque, ¡vuelve a recorrer todas las órdenes y a comprobarlas!

Desglosa bien el código y verás enseguida.

Razón de la queja: