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

 
Rustam Bikbulatov:

Gracias!!!!! ¡Ahora intentaré meterlo en mi código! ¿Por qué en la primera línea (void)?

¿Y por qué hay que especificar el tipo de orden si el nombre de la función dice que considera las órdenes de compra?
 
Artyom Trishkin:
¿Y por qué hay que especificar el tipo de orden si el nombre de la función dice que considera las órdenes de compra?

El nombre se puede cambiar en segundos, pero el código en sí es un problema

 
Rustam Bikbulatov:

Puedes cambiar el nombre en segundos, pero hay un problema con el propio código

El problema no está en el código, sino en tu comprensión de lo que estás haciendo :)

//+------------------------------------------------------------------+
int fMarketOrdersOpen(const ENUM_ORDER_TYPE order_type)
  {
   int total=OrdersTotal(), count=0;
   for(int i=total-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS))
        {
         if(OrderType()!=order_type) continue;
         if(OrderMagicNumber()==123 && OrderSymbol()==Symbol())
            count++;
        }
     }
   return count;
  }
//+------------------------------------------------------------------+
 
Rustam Bikbulatov:
Chicos. Mi cerebro ya está burbujeando((( Por favor, aconsejen cómo utilizar esta definición de la cantidad de pedidos

¿la cantidad de volumen en lotes? ¿Qué hay que cambiar o ajustar?

double fMarketOrdersOpenB(int type){
   double c=0,aBuyCount=0;
   for(int i=0;i<OrdersTotal();i++){
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==123){
            switch(OrderType()){
               case OP_BUY:aBuyCount+=OrderLots();break;
              }}}else{return(-1);}}
   if(type==OP_BUY)c=aBuyCount;return(c);}

Si no consigue seleccionar al menos un pedido, esta función devolverá -1.

Si el tipo corresponde a OP_BUY - obtendrá el volumen de lotes de COMPRA

Si el valor del tipo es diferente, la función devolverá 0.

Si he entendido bien la tarea, cambie el recuento de unidades por el recuento de lotes de pedido BUY
 
Kirill Belousov:

Si al menos un pedido no se selecciona correctamente, la función devolverá -1

Si el tipo corresponde a OP_BUY - obtendrá el volumen de lotes de COMPRA

Si el valor del tipo es diferente, esta función devolverá 0.

Si he entendido bien la tarea, se trata de cambiar el recuento de piezas por el recuento de lotes del pedido BUY

Sí, exactamente. No puedo entenderlo

 
Artyom Trishkin:

El problema no está en el código, sino en tu comprensión de lo que estás haciendo :)

estoy de acuerdo en que no entiendo del todo la programación. bueno, no es lo mío((((

 
Inicialmente este código
int fMarketOrdersOpenB(int type){
   int c=0,aBuyCount=0;
   for(int i=0;i<OrdersTotal();i++){
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==123){
            switch(OrderType()){
               case OP_BUY:aBuyCount++;break;
              }}}else{return(-1);}}
   if(type==OP_BUY)c=aBuyCount;return(c);}

Necesito insertar

     .........
double lts=fMarketOrdersOpenB(OP_BUY);
   if(lts>0){
         int irv2=OrderSend(Symbol(),OP_BUY,lts,Ask,3,0,0,NULL,123,0,CLR_NONE);}

Mi código imprime el número de órdenes pero necesito el volumen del lote de todas las órdenes de compra

 
Rustam Bikbulatov:
Este código es originalmente

Necesito insertar

Mi código imprime el número de órdenes y necesito el volumen del lote de todas las órdenes de compra

Lo más importante es hacer la pregunta correcta.

Descubre por ti mismo lo que necesitas

Только "Полезные функции от KimIV".
Только "Полезные функции от KimIV".
  • 2011.02.18
  • www.mql5.com
Все функции взяты из этой ветки - http://forum.mql4...
 
Vitaly Muzichenko:

Lo más importante es hacer la pregunta correcta.

Busque lo que necesita

Visto y probado. Ya ha ayudado mucho pero hay un límite a mi comprensión

 
Rustam Bikbulatov:
Chicos. Ya me hierve el cerebro((( ¿Pueden decirme cómo hacer el número de pedidos a partir de esta definición?

¿la cantidad de volumen en lotes? ¿Qué hay que cambiar o ajustar?

double fMarketOrdersOpenB(const ENUM_ORDER_TYPE type)
{
     double lots=0;
     for(int i=0;i<OrdersTotal();i++)
     {
          if( !OrderSelect(i,SELECT_BY_POS,MODE_TRADES) )   continue;
          if( OrderSymbol()!=Symbol() )                     continue;
          if( OrderMagicNumber()!=123 )                     continue;
          if( OrderType() != type )                         continue;
          lots += OrderLots();
     }
     return(lots);
}
Razón de la queja: