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

 
Tigerfreerun:
Si (OP_BUY==0)

¿Por qué te engañas? O no te conoces, entonces por favor mantén tu ignorancia fuera de un hilo de AYUDA o estás bromeando pero olvidaste que estás en un hilo serio de ayuda para principiantes.

SanNneK:
aquí está la condición si todos los pedidos son ceroif(OrdersTotal()==0). pero ¿qué condición debo escribir si hay cero bahías?

Tenemos que recorrer todos los pedidos y calcular el número de pedidos con OrderType()==ORDER_TYPE_BUY

 
Artyom Trishkin:

¿Por qué te engañas? O no sabes, entonces por favor mantén tu ignorancia fuera de un hilo de AYUDA, o estás bromeando, pero olvidaste que estás en un hilo de ayuda para principiantes serio.

Necesito hacer un bucle a través de todos los pedidos y calcular el número de pedidos con OrderType()==ORDER_TYPE_BUY.

Oiga, oiga. Les agradecería que me ayudaran con la función que mencioné en la página anterior. Yo mismo utilizo esta función para contar los pedidos:

int Count(int type,string sy)
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {if(sy==OrderSymbol() && OrderMagicNumber()==Magic && (type==-1 || OrderType()==type)) count++;}
     }
   return(count);
  }
 
Tigerfreerun:

Oiga, oiga. Te agradecería que me ayudaras con la función que escribí en la última página. Yo mismo utilizo esta función para contar los pedidos:

¿Qué tipo de ayuda necesita? Es una función bastante factible en el estilo de Kim.
 
Alexey Viktorov:
¿Qué ayuda necesita? Es una función de trabajo al estilo de Kim.

En la última página escribí una función con un error de posición de inicio 0 incorrecta para lafunción ArraySort.Y una solicitud de explicación de la función. Estoy duplicando

void MaxMinProfit()
{
int i, N, MaxTic, MinTic;
double   MinProf=0, MaxProf=0, OP, g, a[][2];
string MinSym, MaxSym;
ArrayResize(a, 0);
 
for (i=OrdersTotal()-1; i>=0; i--) 
  {    
   if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) 
    { 
     if (OrderType()==OP_SELL ||  OrderType()==OP_BUY )
      {
       OP = NormalizeDouble(OrderProfit()+OrderSwap()+OrderCommission(),2);
       
      if (MinProf>OP) 
      {
       
          MinProf=OP;
          MinTic=OrderTicket();
          MinSym=OrderSymbol();
          
         }
         
      if (OP>0) 
      {
       
          N++;
            ArrayResize(a, N);
            a[N-1][0]=OP;
            a[N-1][1]=OrderTicket();
          
         }
         
         }
         }
         
         }
         
      ArraySort(a, WHOLE_ARRAY, 0, MODE_DESCEND);//MODE_ASCEND);
      
      for (i=0; i<Level; i++) 
       {
     
     g+=a[i][0];
     //int ti=a[i-2][1];
     }
         
         
     
     if(MinProf <0 && (g+MinProf)>=ProcMax)
      {
       for (i=0; i<Level; i++) 
       {
       if (OrderSelect(a[i][1], SELECT_BY_TICKET, MODE_TRADES))
        {
        //Alert(a[i][1]);
         if (OrderType()== OP_BUY)
         {
          OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_BID), Slip, CLR_NONE);
          }
          if (OrderType()== OP_SELL)
           {
           OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_ASK), Slip, CLR_NONE);
           }
          }
         }
          
          
          
          if (OrderSelect(MinTic, SELECT_BY_TICKET, MODE_TRADES))
        {
         if (OrderType()== OP_BUY)
         {
          OrderClose(MinTic, OrderLots(), MarketInfo(OrderSymbol(),MODE_BID), Slip, CLR_NONE);
          }
          if (OrderType()== OP_SELL)
           {
          OrderClose(MinTic, OrderLots(), MarketInfo(OrderSymbol(),MODE_ASK), Slip, CLR_NONE);
           }
          }}       
return;
}
 

¿Cuál es la mejor manera de pasar parámetros entre elementos de clase, que a su vez son también elementos de clase?

Dada:

class element{
public:
int a;
        void fnc(){
        a++;            
        }
};

class elementBase{
public:
	 int b;
        element one;
        element two;
};

¿Hay alguna forma de cambiar el valor de dos.a desde la función a.fnc()?


En mi problema, las variables de la clase dos deben recalcularse cuando se modifican los elementos de la clase uno. (¿Puedes decirme cómo hacerlo bien?)

¿Hay alguna forma de obtener el valor de b desde la claseelementBase?

 
Tigerfreerun:

En la última página escribí una función con un error de posición de inicio 0 incorrecta para lafunción ArraySort.Y una solicitud de explicación de la función. Duplicado

La dirección a pensar: Si el beneficio es menor que cero... ¿cuál será el tamaño de la matriz durante la clasificación?

¿Cuál será el tamaño de la matriz si no hay ningún pedido?
 
Alexey Viktorov:

Dirección para pensar: Si el beneficio es menor que cero... ¿qué tamaño tendrá el array durante la ordenación?

¿Y qué tamaño tendrá la matriz si no hay ningún pedido?
No entiendo muy bien qué hace exactamente esta función. Pero, como mencionó el autor, mi tarea es solapar las órdenes perdedoras con las rentables entre los símbolos. Me gustaría que me ayudaran a corregir y entender esta función.
 
Tigerfreerun:
No entiendo muy bien qué hace exactamente esta función. Pero como ha dicho el autor, su tarea es solapar las órdenes perdedoras con las rentables entre los símbolos. Me gustaría que me ayudaran a corregir y entender la función

¿Cuáles son sus errores de compilación? Muestra una captura de pantalla.

No hay errores en el código, pero hay algunos fallos menores que no afectan a la funcionalidad

 
Vitaly Muzichenko:

¿Cuáles son sus errores de compilación? Muestra una captura de pantalla.

No hay errores en el código, pero hay algunos fallos menores que no afectan al rendimiento

Cuando se ejecuta el robot "posición de inicio 0 incorrecta para lafunciónArraySort", ¿podría explicar esta función, tal vez entenderé lo que está mal?
Archivos adjuntos:
yOXZsAXZ-X4.jpg  479 kb
Pe3JLH8tgCc.jpg  556 kb
 
Tigerfreerun:
Cuando mi robot se inicia "posición de inicio 0 incorrecta para lafunciónArraySort", ¿podría explicar esta función, tal vez voy a entender lo que está mal...

Bueno, usted ha mostrado los errores no críticos.

Cómo funciona la función, tú mismo lo has contestado:

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

Cualquier pregunta que los novatos tengan sobre MQL4, ayuda y discusión sobre algoritmos y códigos

Tigerfreerun, 2018.09.06 21:53

No entiendo muy bien qué hace exactamente esta función. Pero, como dijo el autor, la tarea consiste en solapar las órdenes perdedoras con las rentables entre los símbolos. Me gustaría que me ayudaran a corregir y entender esta función

Razón de la queja: