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

 
trader781:

1) el compilador se quejará si no se pone la segunda dimensión, "especificar tipo de clase, parámetros desconocidos" aparecerá inmediatamente

2) entonces el bot morirá inmediatamente en el arranque con "error crítico array out of range".

3) establecerint count1=-1; luego pasar por el bucle. ¿Qué pasa aquí?

Revisa las respuestas de vez en cuando: 1 y 2 y 3 y ...

Llevas más de una semana haciendo lo mismo y cada vez va a peor, aunque ya te han respondido y señalado el error. En el primer código, el compilador no se quejó de que la segunda dimensión no está presente, pero en los siguientes empieza a quejarse? ¿Se ha estropeado el compilador? También puedes abrir cualquier código con arrays y ver cómo se crean y hacer lo mismo.

 
Artyom Trishkin:

No existe tal cosa. Las MAs han sido ya tan recorridas, por tanta gente, que sólo hay que esperar las nuevas ideas de un comerciante ambicioso recién acuñado. Es una broma.

La verdad es que estoy cansado de hurgar con una botella de MA durante tantos años. Se quedan atrás. Probablemente deberían utilizarse en otro ámbito, pero no para captar flujos de tendencia.

Hay todo tipo de mashkas.

En general, sólo hay empujadores en todas partes.

 
Victor Nikolaev:

Hay todo tipo de mash-ups.

En general, todos los hongos se utilizan en todas partes

Entonces, ¿qué estoy diciendo? Eso es lo que estoy diciendo - en una forma diferente, no de frente.
 
Vitaly Muzichenko:


Todavía no está hecho. No habría escrito aquí si hubiera encontrado uno similar con otros. Creo que tú mismo entiendes que una secuencia numérica y una lista de estructuras no son lo mismo, de lo contrario habría otra ecuación con un número infinito de incógnitas.

Artyom Trishkin:

¿Qué te parece esto?



#property strict




struct myorder
{
int    Ticket;
double orderopenprice;
int   ordertype;
double profit;
double stoploss;
double  lot;
};
myorder orders[];




int    i;  
int    Magic=444;    



//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
  
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
CalcOrders();
  
  }
//+------------------------------------------------------------------+
void CalcOrders()
{
int count1=0;

for(i=OrdersTotal()-1; i>=0; i--)
     {
      if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
         && (OrderMagicNumber()==Magic) && (OrderType()<2))
         {
         count1++;
         ArrayResize(orders,count1);
         orders[count1-1].Ticket=OrderTicket();
         orders[count1-1].lot=OrderLots();
         orders[count1-1].orderopenprice=OrderOpenPrice();
         orders[count1-1].ordertype=OrderType();
         orders[count1-1].profit=OrderProfit();
         orders[count1-1].stoploss=OrderStopLoss();
         }    
     }
     ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
    
}
  
Y en cuanto a lanzar el código aquí - me molesta cuando alguien va a publicar y luego tener que desplazarse a través de las páginas. Así es más compacto.
 
trader781:
hasta que lo haga. No estaría escribiendo aquí si hubiera encontrado uno similar con otros.
Por favor, pegue el código no como un archivo sino en un mensaje. ¿Así es como se ve desde un teléfono móvil?
 
trader781:
hasta que lo haga. No habría escrito aquí si hubiera encontrado lo mismo con otros. Creo que tú mismo entiendes que las series de números y la lista de estructuras no son lo mismo, de lo contrario obtendrías otra ecuación con un número infinito de incógnitas.
#property strict




struct myorder
{
int    Ticket;
double orderopenprice;
int   ordertype;
double profit;
double stoploss;
double  lot;
};
myorder orders[];




int    i;  
int    Magic=444;    



//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
  
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
CalcOrders();
  
  }
//+------------------------------------------------------------------+
void CalcOrders()
{
int count1=-1;

for(i=OrdersTotal()-1; i>=0; i--)
     {
      if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
         && (OrderMagicNumber()==Magic) && (OrderType()<2))
         {
         count1++;
         ArrayResize(orders,count1,10);
         orders[count1].Ticket=OrderTicket();
         orders[count1].lot=OrderLots();
         orders[count1].orderopenprice=OrderOpenPrice();
         orders[count1].ordertype=OrderType();
         orders[count1].profit=OrderProfit();
         orders[count1].stoploss=OrderStopLoss();
         }    
     }
     ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
    
}
  
Y en cuanto a lanzar el código aquí - me molesta cuando alguien va a publicar y luego tener que desplazarse a través de las páginas. Así es más compacto.

No es así. Traza desde tu código qué tamaño tendrá tu array.

Hay que pensar, al menos un poco. No tienes que adivinar. Piensa. Cada paso del programa. ¿O espera que alguien lo escriba por usted? Se trata de un servicio autónomo: a veces te encargan la redacción de funciones.

 
Artyom Trishkin:

No es así. Traza desde tu código qué tamaño tendrá tu array.

Deberías pensarlo al menos un poco. No hay que tratar de adivinar. Piénsalo. Cada paso del programa. ¿O espera que alguien lo escriba por usted? Se trata de un servicio autónomo: a veces te encargan la redacción de funciones.

Tal y como yo lo veo

1) sumar a cero si se encuentra el orden

2) cambiar el tamaño a 0, reservar 10

3) Escribe 0 como número de primer orden, 1 como segundo, etc.

En cuanto a los autónomos, no discuto que escriban cualquier cosa, pero igual tienes que reescribirlo tú. No tienes que ir allí sin parar.
 
trader781:
hasta que lo haga. No habría escrito aquí si hubiera encontrado lo mismo con otros. Creo que tú mismo entiendes que la secuencia numérica y la lista de estructuras no es lo mismo, si no sería otra ecuación con un número infinito de incógnitas.
int count1=-1;

for(i=OrdersTotal()-1; i>=0; i--)
     {
      if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
         && (OrderMagicNumber()==Magic) && (OrderType()<2))
         {
         count1++;
         ArrayResize(orders,count1,10);
         orders[count1].Ticket=OrderTicket();
         }    
     }
     ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
    
}
  
Y en cuanto a lanzar el código aquí - me molesta cuando alguien va a publicar y luego tener que desplazarse a través de las páginas. La razón es que la codificación no afecta a la calidad del programa.

No escribí demasiado, sólo grabé una pequeña respuesta en vídeo.

Artem ciertamente ayuda todo lo que puede, pero no me da un pez, sólo una caña)

trader781, mira a veces la documentación, ahora está llena a cada paso.
 
trader781:

como yo lo veo

1) sumar a cero si se encuentra un pedido

2) cambiar el tamaño a 0, reservar 10

3) Escribe 0 como número de primer orden, 1 como número de segundo orden, etc.

En cuanto a la agencia de autónomos, no discuto que escriban cualquier cosa, pero igual tienes que reescribirlo tú. No vayas allí sin parar.

¿Y cómo quieres escribir algo en un array de tamaño cero?

Poner dinero en una cartera que no tienes...

 
Artyom Trishkin:

¿Y cómo quieres escribir algo en un array de tamaño cero?

Poner dinero en una cartera que no existe ...

revisado el post 844, para no tener que escribir código aquí de nuevo.

En cuanto a la matriz de tamaño cero - 0 puede ser un entero, puede ser el equivalente a un falso booleano, puede ser un vacío, y puede ser un punto de partida.

Razón de la queja: