[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 72

 

Por favor, sugiera un curso de acción :))

si (...)

{

si(...)

{

si (...) false ->

}

si no {...}

}

============================================

¿dónde va la ejecución después de FALSE -a else o incluso más allá de los paréntesis del primer if?

 
lottamer:

Por favor, dígame cómo proceder :))

si (...)

{

si(...)

{

si (...) false ->

}

si no {...}

}

============================================

¿dónde va la ejecución después de FALSE -a else o incluso más allá de los paréntesis del primer if?

Si entiendo bien tus llaves, entonces:

if (1<2) {
   if(2<3) {
      if (3>4) { 
         false ->
         }
      } 
   else  { иначе, если два больше три}
   }   
 
Hola, Podrían aconsejarnos cómo establecer el número de órdenes(con control del símbolo, la operación y el mago), necesitamos que el experto abra una orden sin prestar atención a las órdenes ya abiertas
 
dimarik0000:
Hola, Me pueden aconsejar cuántas órdenes (con comprobación del símbolo, operación y magik), necesito para que un experto abra una orden sin prestar atención a las órdenes ya abiertas


Esta función devuelve el número de posiciones abiertas actualmente

 
Si no es difícil, por favor muestre un ejemplo de su uso en el código del Asesor Experto
 

He escrito una función que debería determinar si la posición existe basándose en la etiqueta y el comentario introducidos. Si no es así, debería devolver el permiso para abrirlo.

Cuando utilizo una señal comercial en el Asesor Experto, todo funciona bien: abre una posición sólo cuando no hay otra con las mismas condiciones. Pero cuando el Asesor Experto trabaja con varios tipos de señales que etiqueto con un comentario diferente, abre múltiples posiciones. ¿Cuál es el problema?

bool TwoOrders(int magic, string comment)
 {
  int to;
  for(to=0; to<=OrdersTotal(); to++)
   {
    if(OrderSelect(to,SELECT_BY_POS)==true)
     {
      if(OrderMagicNumber()==magic)
       {
        if(OrderComment()==comment)
         {
          return(false);
         }
        else return(true);
       }
      else return(true); 
     }
    else return(true);
   }
 } 

   Type1=TwoOrders(ExpertID,"type1");
   Type2=TwoOrders(ExpertID,"type2");
     if(Type1==true)
      {
       Ans=OrderSend(Symb,OP_BUYSTOP,Lts,OpnPrice,30,SL,TP,"type1",ExpertID,0);
       if(Ans==false)
        {
         Alert("Ошибка при открытии BUY-STOP ордера: ", GetLastError());
        }
      }
     if(Type2==true)
      {
       Ans=OrderSend(Symb,OP_BUYLIMIT,Lts,OpnPrice,30,SL,TP,"type2",ExpertID,0);
       if(Ans==false)
        {
         Alert("Ошибка при открытии BUY-STOP ордера: ", GetLastError());
        }
      }
 
silhouette:

He escrito una función que debería determinar si la posición existe basándose en la etiqueta y el comentario introducidos. Si no es así, debería devolver el permiso para abrirlo.

Cuando utilizo una señal comercial en el Asesor Experto, todo funciona bien: abre una posición sólo cuando no hay otra con las mismas condiciones. Pero cuando el Asesor Experto trabaja con varios tipos de señales que etiqueto con un comentario diferente, abre múltiples posiciones. ¿Cuál es el problema?

¿Estás seguro de que en el comentario de la orden el DC no añadirá algo propio? Hay que buscar una subcadena en el comentario de la orden. O, mejor aún, no pase por esta molestia. La posición se puede encontrar utilizando otros criterios más fiables.

 
artmedia70:

¿Estás seguro de que el DC no añadirá algo propio al comentario de la orden? Hay que buscar una subcadena en el comentario de la orden. Mejor aún, no pase por esta molestia. La posición se puede encontrar utilizando otros criterios más fiables.



¿Por diferentes magos, por ejemplo?

Pero en cualquier caso, el error está en alguna parte del código, en teoría. De todos modos, me pregunto dónde.

 
dimarik0000:
¿tiene usted una función de este tipo? si puede mostrar un ejemplo de su uso en el código del experto


//вызываем
NumberOfPositions(NULL,OP_BUY,1234); //текущий график, OP_BUY, 1234 магик 

NumberOfPositions(NULL,OP_SELL,1234); //текущий график, OP_SELL, 1234 магик 

NumberOfPositions();//общее кол.

саму функцию, за пределами функции start()
 
r772ra:



Por fin he descubierto cómo y dónde poner qué! Muchas gracias