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

 
trader781:
p. ej.: ¿Cómo puedo esperar a que se cierre una operación?
Alexey Viktorov:
1. Cuando se abre una orden, se escribe el ticket en la variable de nivel global o estático, y luego se monitorea esta orden hasta que sea de color azul, oops, hasta que se cierre por comparación OrderCloseTime() > 0. Si la hora de cierre es mayor que cero, la orden está cerrada.

2. La sustitución del operador GOTO es mucho más eficiente. Lea la documentación sobre las funciones.

¿Hay alguna forma de mostrarme un ejemplo? ¿Cómo puedo esperar a que se cierre la operación anterior?

double Lot = 0.1;      

double loss = 100;  



int start()

  {

  int order;

    if(OrdersTotal()==0)                            

    {                  

      order = OrderSend(Symbol(),OP_BUY,Lot,Ask,1*Point,Ask-loss*Point,Ask+loss*Point);   // Вверх

      order = OrderSend(Symbol(),OP_SELL,Lot,Bid,1*Point,Bid+loss*Point,Bid-loss*Point);    // Вниз

    }



   return(0);

  }

//+------------------------------------------------------------------+

 
DenZell:

¿Hay alguna forma de mostrarme un ejemplo? ¿Cómo puedo esperar a que se cierre la operación anterior?

double Lot = 0.1;      

double loss = 100;  



int start()

  {

  int order;

    if(OrdersTotal()==0)                            

    {                  

      order = OrderSend(Symbol(),OP_BUY,Lot,Ask,1*Point,Ask-loss*Point,Ask+loss*Point);   // Вверх

      order = OrderSend(Symbol(),OP_SELL,Lot,Bid,1*Point,Bid+loss*Point,Bid-loss*Point);    // Вниз

    }



   return(0);

  }

//+------------------------------------------------------------------+

Hay varias opciones.

La más sencilla es la secuencia de acciones. Primero, intentamos hacer algo con una orden ya abierta, y luego, si no hay ninguna orden abierta, intentaremos fijarla.

Dividimos la gestión de la posición y la apertura de una nueva orden en dos funciones distintas definidas por el usuario. A continuación, en la función OnTick() comprueba la presencia de órdenes abiertas y llama a una u otra función según el resultado obtenido.

Se ve así en palabras:

void OnTick()
{
if(OrdersTotal() > 0)
  открытие();
else
  сопровождение();
}

bool открытие()
{
// здесь код открытия
}

bool сопровождение()
{
// здесь код сопровождения
}
Y es aún más difícil comprobar un orden específico si OrderCloseTime() > 0.

Este es el caso si la cuenta proporciona, pero más a menudo es el caso de trabajo de otros Asesores Expertos o la apertura de órdenes manualmente.
 
¿es posible seleccionar mediante programación la fecha de inicio del historial de la cuenta en el terminal?
 
Money_Maker:
¿Puedo seleccionar mediante programación la fecha de inicio del historial de la cuenta en el terminal?
Puedes hacerlo. Este será el primer pedido de la historia con el tipo 6 - operación de equilibrio. La hora de apertura de esta orden será el inicio del historial de la cuenta.
 
Artyom Trishkin:
Puedes hacerlo. Este será el primer pedido de la historia con el tipo 6 - operación de equilibrio.
No necesito el primer pedido del historial... el historial se abre al máximo... necesito el historial a partir de una fecha determinada... que estableceré programáticamente (aparentemente, la pregunta se agilizó debido a los detalles)
 
Money_Maker:
No necesito el primer pedido del historial... el historial se abre al máximo Necesito el historial a partir de una fecha determinada... que estableceré programáticamente (al parecer, la pregunta se racionalizó a expensas de los detalles)
La respuesta también es posible.

Pero la pregunta sigue siendo "racionalizada", por lo que diré que debemos omitir las órdenes cuya hora de apertura sea anterior a esa "fecha concreta".
 
Artyom Trishkin:
La respuesta también es que se puede.

Pero la cuestión sigue siendo "racionalizada", por lo que yo diría que habría que omitir los pedidos cuyo momento de apertura sea anterior a esa "fecha determinada"... claro que no se me ocurrió... pero 7 años es un número muy grande de pedidos...
Realmente no he pensado en filtrar por fecha ... pero 7 años son muchos de pedidos .
la pregunta está subrayada en rojo en la captura de pantalla... ¿entonces la pregunta no está racionalizada?
 
Money_Maker:
Claro que no se me ocurrió filtrar por fecha ... pero en 7 años hay muchos pedidos .
En la captura de pantalla, la pregunta está subrayada en rojo y hay que poner una fecha determinada... ¿entonces la pregunta no está racionalizada?
No entiendo su pregunta :(

¿Qué quiere hacer exactamente por medio de la programación?
 
Artyom Trishkin:
No entiendo su pregunta :(

¿Qué quiere hacer exactamente por medio de la programación?
Donde está subrayado en rojo, introduzca la fecha y esencialmente haga clic en ok... determina la profundidad del historial en el informe
 
Money_Maker:
donde está subrayado en rojo, introduzca la fecha y esencialmente haga clic en ok... determina la profundidad del historial en el informe
No se puede hacer de forma programada en un mql puro. Tienes que buscar esta ventana y la fecha a través de WinAPI, creo.
Razón de la queja: