Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 712

 
artmedia70:
La respuesta debería darse por sí misma. Ordenar las posiciones abiertas por la hora de su apertura. Y luego cerrarlos por la lista del array ordenado.

Complicado para mí, pensará) hay un códigopara cerrar las órdenes en el orden en que fueron abiertas.

//+------------------------------------------------------------------+
//|                 Закрыть все ордера                               |
//+------------------------------------------------------------------+


double ClossAllOrders ()

{
  for(int i=0; i<OrdersTotal(); )
  {
    if ( !OrderSelect(i, SELECT_BY_POS) )
      break;
    
    int type   = OrderType();

    bool result = false;
    
    switch(type)
    {
      //Close opened long positions
      case OP_BUY       : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 3, Lime );
                          break;
      
      //Close opened short positions
      case OP_SELL      : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 3, Lime );
                          break;

      //Close pending orders
      case OP_BUYLIMIT  :
      case OP_BUYSTOP   :
      case OP_SELLLIMIT :
      case OP_SELLSTOP  : result = OrderDelete( OrderTicket() );
    }
    
    if(result == false)
    {
      Print("Order " , OrderTicket() , " failed to close. Error:" , GetLastError() );
      i++;
      Sleep(500);
    }  
  }
}

// End

Aquí según entiendo la ordenación va a expensasde OrderTicket

cómo ponerlo en el código)

 
_new-rena:

138 - "El precio solicitado no está actualizado, o la oferta y la demanda están mezcladas.

El precio de apertura/cierre no se puede recalcular, porque está ahí, pero hay un problema aquí(hay que consultar el precio y darle un valor usando MarketInfo, y reasignar éste a otra variable):

Gracias por el consejo) Pero resultó que mi problema está en el propio EA y no en esta función.
 
Cómo recordar un determinado nivel. Digamos que es el máximo de una vela. Pero la asignación de este valor a una variable fue a través de si. y en otra situación, esta variable es cero. es decir, necesito recordar un determinado precio de alguna manera.
 
305:
Cómo memorizar un determinado nivel. Supongamos que es el máximo de una vela. Pero la asignación de este valor a una variable fue a través de if. y en otra situación, esta variable es cero. es decir, necesito recordar un determinado precio de alguna manera.
Tal vezhttps://book.mql4.com/ru/variables/arrays pueda ayudar. Creo que hay algo que necesitas a continuación.

Matrices de series temporales

 
Eso no funciona. Voy a probar la línea horizontal
 
305:
Esto no funciona. Voy a probar la línea horizontal.

kim tiene muchas funciones diferentes para memorizar cualquier cosa, tarda unos 3 minutos en recorrer los nombres, tal vez pueda encontrarhttps://www.mql5.com/ru/forum/131859

 
7Konstantin7:

Complicado para mí, pensará) hay un códigopara cerrar las órdenes en el orden en que fueron abiertas.

Aquí según entiendo la ordenación va a expensasde OrderTicket

Me gustaría ponerlo en el código)

Por favor, dígame cuál es el secreto de cerrar las órdenes en un orden determinado y no en una fila? ¿Cómo cambiarían un par de segundos la vida de la cuenta?

Gracias.

 
Roger:

Dígame, ¿cuál es el secreto para cerrar las órdenes en un orden determinado y no en una fila? ¿Cómo podrían un par de segundos marcar la diferencia en la vida de una cuenta?

Gracias.

Tomemos ese arrastre que nunca logré reescribir la función(, que cierra las órdenes en el orden en que fueron abiertas: barajar

Esta función cierra primero todas las órdenes rentables y luego todas las perdedoras, lo que resulta en un gráfico de balance feo en la pila, además de datos erróneos: reducción máxima, serie máxima de órdenes perdedoras, beneficio máximo y serie máxima de órdenes rentables.

Si cerrara las órdenes en modo mixto , entonces no habría valores tan grandes.

Si utiliza las órdenes de cierre en el orden en que se han abierto, el gráfico de balance será más uniforme, la información de los datos en el extracto será más adecuada.

Supongamos que operamos con muchos pares, si los cubrimos todos uno por uno, el precio puede desaparecer para algún par antes de que lleguemos a él,

Si cubrimos en el orden de apertura cerraremos en un par, luego en otro y así sucesivamente, por lo que está más diversificado.

Creo que MT4 puede enviar hasta 8 órdenes simultáneamente, pero no estoy seguro, en este caso podemos cerrar aún más rápido.

 
7Konstantin7:

Tomemos ese arrastre en el que no pude cambiar la función( para que cierre las órdenes en el orden en que fueron abiertas: Barajar

en esta función se cierran primero todas las órdenes rentables y luego todas las perdedoras, lo que da lugar a un gráfico de balance feo en la pila, además de datos erróneos: reducción máxima, serie máxima de órdenes perdedoras, beneficio máximo y serie máxima de órdenes rentables.

Entonces resulta una montaña rusa estúpida y decente, por ejemplo, subió 500 $ y luego bajó 400 $. Si tuviéramos que cerrar las órdenes en modo mixto , entonces no existirían valores tan grandes.

Si utilizamos las órdenes de cierre en el orden en que se han abierto, el gráfico de balance será más suave y la información de los datos en el extracto será más adecuada.

Supongamos que operamos con muchos pares y si cerramos todos uno por uno, el precio puede desaparecer para algún par antes de que lleguemos a él,

Si cubrimos en el orden de apertura cerraremos en un par, luego en otro y así sucesivamente, por lo que está más diversificado.

Creo que MT4 puede enviar hasta 8 órdenes simultáneamente, pero no estoy seguro, en este caso podemos cerrar aún más rápido.

Ciclo inverso. Buscar la posición abierta más temprana, cerrarla, ir al principio del ciclo. Continúe hasta que se le acaben las posiciones a cerrar.
 
artmedia70:
Ciclo inverso. Busque la posición abierta más temprana, ciérrela y vaya al principio del ciclo. Continúe así hasta que se agoten todas las posiciones a cerrar.

Gracias, no puedo hacerlo, sólo pensé que tal vez alguien podría garabatear unas líneas en esa función o podría soltar un búho, la versión final. No creo que sea difícil, pero es poco probable que alguien te ayude.

Hay 4 créditos en mql5 podría dar) si es posible transferir entre los miembros.