[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 4

 
splxgf:

¿Cómo se determina cuál de los dos es?

https://book.mql4.com/ru/trading/orderclose

Y filtrar por símbolo si es necesario, ejemplo de funcionamiento completo

https://book.mql4.com/ru/trading/ordermodify


Estoy utilizando el siguiente ejemplo para determinar, pero sólo cierra la última orden pendiente en lugar de la primera, aunque todas las condiciones se cumplen para la primera orden pendiente. ¡¡¡¡¡¡¡¡¡¡¡¡¡Ayúdame a encontrar un error!!!!!!!!!!!!!

 if (Bid>=Openup-0.0005)
 {
 for(int count = OrdersTotal()-1; count >= 0; count--)
  {  
     OrderSelect(count, SELECT_BY_POS, MODE_TRADES);
     if (OrderType() == OP_BUYLIMIT)
       {  
        OrderDelete(ticket,CLR_NONE);
       }
  }
 }
 
Andreev:


Estoy utilizando el siguiente ejemplo para determinar, pero sólo cierra la última orden pendiente en lugar de la primera, aunque todas las condiciones se cumplen para la primera orden pendiente. ¡¡¡¡¡¡¡¡¡¡¡¡¡Ayúdame a encontrar un error!!!!!!!!!!!!!


La forma más fácil de determinar qué orden de los dos cerrar es por el número mágico. Asigne números diferentes cuando los configure. El ejemplo que has mostrado arriba carece de esta comprobación. También escriba OrderTicket() en lugar de ticket.
 
tol64:

La forma más fácil de determinar qué orden de los dos cerrar es por el número mágico. Asigne números diferentes cuando los configure. El ejemplo que has mostrado arriba carece de esta comprobación. También escriba OrderTicket() en lugar de ticket.

Gracias por la respuesta. Ya me han aconsejado un número mágico, pero dónde ponerlo al definir una orden pendiente y cómo vincularlo a un ticket, no lo entiendo.
 
Andreev:

Gracias por la respuesta. Ya me han aconsejado utilizar el número mágico, pero no entiendo dónde colocarlo al definir una orden pendiente y cómo relacionarlo con un ticket.


la magia se debe establecer al abrir una orden, pero debemos asegurarnos de que el número de órdenes diferentes es diferente, de lo contrario no tiene sentido, a continuación es un enlace a una descripción completa de la función OrderSend donde todas las variables que se pueden establecer al abrir una orden, es USTED que debe estar interesado en la variable de la magia, pero para que funcione correctamente, todas las variables antes de que debe ser llenado, todas las variables después - como mejor le parezca

https://docs.mql4.com/ru/trading/OrderSend

 
LazarevDenis:


la magia debe establecerse al abrir una orden, pero asegúrese de que el número de órdenes diferentes es diferente, de lo contrario no tiene sentido, a continuación es un enlace a una descripción completa de la función OrderSend donde todas las variables que se pueden establecer al abrir una orden, USTED debe estar interesado en la variable de la magia, pero para que funcione correctamente todas las variables antes de que debe ser llenado, todas las variables después - como mejor le parezca

https://docs.mql4.com/ru/trading/OrderSend


¿Por qué las distintas órdenes necesitan una magia diferente?
 

Por favor, dame el código correcto. Escribí un EA y genera sólo dos errores durante la compilación - no sé cómo deshacerse de ellos.

estos errores 1) 'SL' - variable ya definida C:\N-Archivos de Programa\N-MetaTrader Finam\N-experts\$.mq4 (43, 11)

y 2) 'TP' - variable ya definida C:³ Files\MetaTrader Finam\experts\$.mq4 (45, 11)

El código del Asesor Experto a continuación:

 
extern int  

            Diapazon=1200,
            Slipege=500,
            TP=1500,
            SL=15000;   
            
double pa, pb, pt;
int    ls, dg;                  

  int start()                                // Спец. функция start()
  {  
   
   pa=MarketInfo(Symbol(),MODE_ASK);
   pb=MarketInfo(Symbol(),MODE_BID);
   pt=MarketInfo(Symbol(),MODE_POINT);
   dg=MarketInfo(Symbol(),MODE_DIGITS);
   ls=MarketInfo(Symbol(),MODE_STOPLEVEL);
   
   //---------------------------------------+
    
   if
   
   {
   
   double variable1 = NormalizeDouble(pa+ls*pt,dg); 
  
   double variable2 = NormalizeDouble(pb-ls*pt,dg);
   
   //---------------------------------------------+ 
  
   double pa = NormalizeDouble(Ask+Diapazon*Point,Digits);
   
   double SL = NormalizeDouble(Bid+(Diapazon-SL)*Point,Digits);
  
   double TP = NormalizeDouble(Ask+(Diapazon+TP)*Point,Digits);

 
  
   double pb = NormalizeDouble((Bid+Diapazon*Point,Digits);
  
   double SL = NormalizeDouble(Bid+(Diapazon+SL)*Point,Digits);
  
   double TP = NormalizeDouble(Bid+(Diapazon-TP)*Point,Digits);
   
   }
  
                                       // Открытие BUY
                                         
   OrderSend(Symbol(),OP_BUYSTOP, 0.05,Ask+Diapazon*Point,3,Bid+(Diapazon-SL)*Point,Ask+(Diapazon+TP)*Point);
   
                                     // Открытие SELL
   
   OrderSend(Symbol(),OP_SELLSTOP,0.05,Bid+Diapazon*Point,3,Bid+(Diapazon+SL)*Point,Bid+(Diapazon-TP)*Point);  

   return;                                   // Выход из start()
  }
  
 
Vinin:

¿Y por qué las diferentes órdenes necesitan diferentes magik?

Por lo visto, para eso - unos cuantos puestos más arriba :-))) - "La forma más fácil de determinar qué orden de los dos cerrar es por el número mágico. Asigne números diferentes cuando los configure. El ejemplo que has mostrado arriba carece de esta comprobación. También escriba OrderTicket() en lugar de ticket".
 
tol64:

La forma más fácil de determinar qué orden de los dos cerrar es por el número mágico. Asigne números diferentes cuando los configure. El ejemplo que has mostrado arriba carece de esta comprobación. Además, escriba OrderTicket() en lugar de ticket.

Recuerde la hora de establecer las órdenes, luego compare la hora en el bucle y elimine la más antigua.
 
Andreev:


Estoy utilizando el siguiente ejemplo para determinar, pero sólo cierra la última orden pendiente en lugar de la primera, aunque todas las condiciones se cumplen para la primera orden pendiente. ¡¡¡¡¡¡¡¡¡¡¡¡¡Ayúdame a encontrar un error!!!!!!!!!!!!!


¿No se excluye la variante de transformación de la primera orden en una orden de mercado, y, como consecuencia, la imposibilidad de su retirada por este ciclo en las órdenes limitadas?