Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 612
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Escribí un código que cuando cualquier orden cierra todas las demás órdenes pendientes, pero el problema es que escribí 4 órdenes 2, 3, 4, 5. Por lo tanto, cuando se abran las siguientes órdenes pendientes 6, 7, 8, etc., no deben cerrarse. Los números de las órdenes resaltadas en rojo deben ser cambiados por las órdenes que se cerrarán todas las órdenes pendientes.
void start(){
//----
doble Toma1 = Pregunta+20 *Punto;
doble Toma2 = Pregunta+0 *Punto;
double Take3 = Ask-20 *Point;
double Take4 = Ask-40 *Point;
double Take5 = Ask-60 *Point;
double Stop = Bid-StopLoss *Punto;
if(PedidosTotal()==0){
OrderSend(Symbol(),0,0.01,Ask,30,Stop,Take1,",0,0,CLR_NONE);
OrderSend(Symbol(),2,0.02,Ask-20*Point,30,Stop,Take2,"",0,0,CLR_NONE);
OrderSend(Symbol(),2,0.04,Ask-40*Point,30,Stop,Take3,",0,0,CLR_NONE);
OrderSend(Symbol(),2,0.08,Ask-60*Point,30,Stop,Take4,",0,0,CLR_NONE);
OrderSend(Symbol(),2,0.16,Ask-80*Point,30,Stop,Take5,"",0,0,CLR_NONE);
}
if(OrdersTotal()==4)
{
OrderDelete(2);
}
if(OrdersTotal()==3)
{
OrderDelete(3);
}
if(OrdersTotal()==2)
{
OrderDelete(4);
}
if(PedidosTotal()==1)
{
OrderDelete(5);
return(0);
}
Escribí un código que cuando cualquier orden cierra todas las demás órdenes pendientes, pero el problema es que escribí 4 órdenes 2, 3, 4, 5. Por lo tanto, cuando se abran las siguientes órdenes pendientes 6, 7, 8, etc., no deben cerrarse. Los números de orden resaltados en rojo deben ser cambiados por los que se cerrarán todas las órdenes pendientes.
En primer lugar, comprobamos en el bucle si la posición se ha cerrado recientemente o no, para lo que necesitaremos OrdersHistoryTotal. Donde comprobamos la hora de cierre de la posición OrderCloseTime, si es mayor que la última en la variable, entonces hacemos un bucle a través de todos los OrdersTotal abiertos. Y cerrarlos.
P.D. Inserte el código usando Alt+S o el botón
Por ejemplo, este
aquí está la condición if(OrdersTotal()==0). pero ¿qué debemos escribir la condición si hay cero bahías?
Si (OP_BUY==0)
Si (OP_BUY==0)