Bibliotecas: MT4Orders - página 50

 

Mi cuenta de lag está fuera de los gráficos, así que hago esto.

sinput int inMT4OrdersMinTimeAlert = 0; // Umbral de alerta en milisegundos
  
#define  MT4ORDERS_BENCHMARK_MINTIME inMT4OrdersMinTimeAlert // Tiempo Mínimo de Alerta-Productividad Spratabyte.

Filtro las alertas de pequeños retrasos.

 
fxsaber:

Filtrado de la activación del alertador por pequeños desfases.

El resultado es similar cuando se emiten retardos > 30 ms.

2020.08.18 05:12:20.760 Alert: Time[MT4Orders.mqh 1746: ::PositionGetTicket(Index)] = 45 ms.
2020.08.18 06:08:07.116 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 38 ms.
2020.08.18 06:44:57.080 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 59 ms.
2020.08.18 07:01:37.171 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 33 ms.
2020.08.18 07:04:19.996 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 34 ms.
2020.08.18 07:04:55.020 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 43 ms.
2020.08.18 07:30:07.414 Alert: Time[MT4Orders.mqh 1746: ::PositionGetTicket(Index)] = 37 ms.
2020.08.18 07:38:31.913 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 40 ms.
2020.08.18 07:44:08.415 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 36 ms.
2020.08.18 07:45:22.918 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 38 ms.
2020.08.18 08:00:37.016 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 40 ms.
2020.08.18 08:01:36.007 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 33 ms.
2020.08.18 08:08:26.948 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 34 ms.
2020.08.18 08:18:41.664 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 33 ms.
2020.08.18 08:48:51.114 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 32 ms.
2020.08.18 09:12:33.762 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 49 ms.
2020.08.18 09:28:42.364 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 47 ms.
2020.08.18 09:28:42.364 Alert: Time[MT4Orders.mqh 1808: ::PositionSelectByTicket(Ticket)] = 38 ms.
2020.08.18 09:30:30.665 Alert: Time[MT4Orders.mqh 1746: ::PositionGetTicket(Index)] = 40 ms.
2020.08.18 09:33:50.114 Alert: Time[MT4Orders.mqh 1746: ::PositionGetTicket(Index)] = 44 ms.
2020.08.18 09:38:41.204 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 77 ms.
 

Para quienes trabajan con operaciones asíncronas será útil conocer la configuración del número máximo posible de operaciones asíncronas no procesadas en su cuenta.

No es difícil averiguarlo.

Alert: 60 - Too many trade requests


Tenga cuidado, puede llegar a un límite.


Una posible variante de obtener dicha información.

// En caso de true, Amount contiene la cantidad máxima posible
// peticiones asíncronas no procesadas para toda la Terminal.
bool GetMaxAsync( const TICKET_TYPE TicketPending, int &Amount )
{
  const bool Res = OrderSelect(TicketPending);
  
  if (Res)
    for (Amount = 0; !IsStopped() && OrderDeleteAsync(TicketPending); Amount++)
      ;
      
  return(Res);
}

void OnStart()
{
  for (int i = OrdersTotal() - 1; i >= 0; i--)
    if (OrderSelect(i, SELECT_BY_POS) && (OrderType() > OP_SELL))
    {
      int Amount = 0;
      
      if (GetMaxAsync(OrderTicket(), Amount))
        Alert((string)Amount + " - " + MT4ORDERS::LastTradeResult.comment);
                
      break;
    }
}
 
// Lista de cambios:
// 20.08.2020
// Fix: Contabilización de las peculiaridades detectadas en la ejecución de órdenes parciales.

No era algo sencillo. Sólo una de las características.

ZY Han pasado más de cuatro años desde que se publicó la biblioteca. Y todavía se está forzando su finalización. No es una simple MT5.

Особенности языка mql5, тонкости и приёмы работы
Особенности языка mql5, тонкости и приёмы работы
  • 2020.08.02
  • www.mql5.com
В данной теме будут обсуждаться недокументированные приёмы работы с языком mql5, примеры решения тех, или иных задач...
 

Una variante interesante de la popularización de MT5 en los foros.

Se publica un Asesor Experto multidivisa mq4, se pone en demo y se monitoriza. Se mantiene un hilo. La gente discute.

La variante mq5 se publica a través de la conexión de bibliotecas de conversión. La gente se ve obligada (multidivisa) a ejecutar MT5-Tester en ticks reales y se atascan. Al mismo tiempo se dan cuenta de que es tan fácil escribir para MT5 como para 4.

 
fxsaber:

Interesante opción para popularizar MT5 en los foros.

Se postea un Expert Advisor multidivisa mq4, se pone en demo y se monitoriza. Se mantiene un hilo. La gente lo discute.

El mq5-variante se publica a través de la conexión de las bibliotecas de conversión. La gente se ve obligada (multidivisa) a ejecutar MT5-Tester en ticks reales y se atascan. Al mismo tiempo se dan cuenta de que es tan fácil escribir para MT5 como para 4.

Sí, y mt5 tester es varias decenas de veces más informativo y mejor en términos de calidad de las pruebas.

¡Gracias por la biblioteca!

 
fxsaber:

El Asesor Experto multidivisa mq4 se publica, se pone en demo y se monitoriza. Hay una rama. La gente discute.

por desgracia, se trata de una falta de educación de los comerciantes, es un error muy común que las pruebas en el probador de la estrategia difiere de la prueba en la cuenta de demostración para un par de semanas, Asesor de Expertos multicurrency no tienen nada que ver con ello.

fxsaber:

La gente se ve obligada (multidivisa) a ejecutar MT5-Tester en ticks reales y se atascan. Al mismo tiempo darse cuenta de que es tan fácil escribir en MT5 como en 4.

MK orgullo no le permite tomar una decisión adecuada, que en uno hizo un trabajo que le permite escribir estrategias de negociación en MT5 sin tener que gastar tiempo en el estudio de MT5 sistema de órdenes, pero por desgracia " sacudiendo habilidades de semi-programadores" en este foro tiene una prioridad más alta que el desarrollo y prueba de estrategias de negociación, imho.

 
Igor Makanu:

por desgracia, esto es una falta de educación de los comerciantes, es una idea errónea muy común que las pruebas en un probador de estrategia difiere de la prueba en una cuenta demo durante un par de semanas, el comercio multidivisa no tiene nada que ver con esto.

MK orgullo no permite tomar una decisión adecuada, usted ha hecho un trabajo que le permite escribir estrategias de negociación en MT5 sin tener que gastar tiempo en el estudio de MT5 sistema de órdenes, pero por desgracia "sacudiendo las habilidades de los semi-programadores" en este foro tiene una prioridad más alta que el desarrollo y pruebas de estrategias de negociación, imho.

¿Cuál es la conexión?

 
Vitaly Muzichenko:

¿Cuál es la conexión?

en la brevedad y sencillez del sistema de órdenes de 4 - le permite escribir estrategias "sobre la marcha" sin distraerse con la solución de acciones elementales con órdenes.

si quieres, puedes practicar en el sistema de ordenes de MT5 para realizar acciones simples con ordenes:


Igor Makanu:

cómo utilizar una entrada memorizada

descúbrelo:

1. si la posición está cerrada

2. ¿qué tipo de transacción fue la posición cerrada?

3. es necesario trabajar simultáneamente con 9 órdenes

Hice esta pregunta en el tema "preguntas de los principiantes MT5", las respuestas fueron del estilo de "¿por qué lo necesita?", la solución en el sistema de órdenes MT5 sólo podría ser escrito por una persona - el autor de este tema ;)

 
Igor Makanu:

en la brevedad y sencillez del sistema de órdenes del 4 - permite escribir estrategias "sobre la marcha" sin distraerse resolviendo acciones elementales con órdenes

Si lo desea, puede practicar en el sistema de órdenes de MT5 para realizar acciones sencillas con órdenes:


Hice esta pregunta en el tema "preguntas de principiantes MT5", las respuestas fueron "¿para qué lo necesitas?", la solución en el sistema de órdenes MT5 sólo podría escribirla una persona - el autor de este tema ;)

Si usted tiene un espacio en blanco en mql5 puro, entonces no hay diferencia en lo que escribir, sólo sustituir las señales para diferentes TS en un par de líneas de código.

Otra cuestión es que no es un código multiplataforma y toda la escritura no tiene sentido.