Bibliotecas: MT4Orders - página 44

 
Andrey Khatimlianskii:

Así de real es:

Gracias por la información. Esta larga ejecución se debe probablemente a las pasarelas de terceros. Me pregunto cómo están los intercambios.

 
En MT4 escribí una Alerta para esta situación. Necesitaba comprobar lo caro que sería una comprobación de este tipo, así que escribí una variante difícil de medir.
#include <MT4Orders.mqh>
#include <Debug.mqh>

// Obtener todas las entradas del historial.
void GetTickets( TICKET_TYPE &Tickets[] )
{
  for (int i = ArrayResize(Tickets, OrdersHistoryTotal()) - 1; i >= 0; i--)
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
      Tickets[i] = OrderTicket();
}

// Seleccionar todos los tickets del historial.
int CheckTickets( const TICKET_TYPE &Tickets[] )
{
  int Count = 0;
  
  for (int i = ArraySize(Tickets) - 1; i >= 0; i--)
    if (OrderSelect(Tickets[i], SELECT_BY_TICKET))
      Count++;
      
  return(Count);
}

void OnStart()
{
  TICKET_TYPE Tickets[];
  
  GetTickets(Tickets); // Tengo las entradas.
  
  ArraySort(Tickets);
  
  BENCH(CheckTickets(Tickets)); // Comprobadas las entradas.
  
  _P2(CheckTickets(Tickets));
}


Este es el resultado en MT4.

Time[CheckTickets(Tickets)] = 9667
CheckTickets(Tickets) = 20240

20K entradas en 10 ms.


En MT5.

Time[CheckTickets(Tickets)] = 5262
CheckTickets(Tickets) = 833

5K entradas MT4 en 0.8ms.


Time[CheckTickets(Tickets)] = 700707
СheckTickets(Tickets) = 170458

170K MT4-tickets en 700 ms.


MT5 es más rápido que MT4 con un historial de operaciones relativamente pequeño. Con un gran historial (cientos de miles de registros) MT5 se ralentiza mucho.

 

Un caso interesante de MT5.

La toma fue parcialmente ejecutada, después de lo cual fue borrada. En este caso tenemos la situación de que DEAL_ORDER tiene el estado ORDER_STATE_CANCELED, no FILLED/PARTIAL.

En este caso DEAL_TIME_MSC no es igual a ORDER_TIME_DONE_MSC.

 
fxsaber:

DEAL_TIME_MSC no es igual a ORDER_TIME_DONE_MSC.

Esto ocurre con la ejecución parcial de los limitadores.


 

Rechazo de empate.

Esta situación puede darse con frecuencia:

  1. El precio ha alcanzado el take profit de una posición abierta.
  2. MT5 ha generado una orden de mercado. La orden límite correspondiente se ha enviado al proveedor de liquidez.
  3. Se vuelve a registrar la orden limitada. Entonces se borra la orden MT5 que corresponde al Take.
  4. Cambiando al punto 1.
Buena implementación, ya que en el historial se pueden ver los rechazos de los proveedores. Bien, y forzada la implementación interna de tiers como limitadores.
 
fxsaber:
  1. El precio ha alcanzado el take profit de la posición abierta.
  2. MT5 ha generado una orden de mercado. La orden limitada correspondiente se envió al proveedor de liquidez.
  3. La orden Límite se vuelve a registrar. Entonces se elimina la orden MT5 que corresponde a la Toma.
  4. Cambie al punto 1.
Buena implementación, ya que en el historial se pueden ver los rechazos de los proveedores. Bien, y forzada la implementación interna de tiers como limitadores.

¿Dónde están los limitadores?

¿Cómo es esta implementación mejor que enviar una toma como limitador inmediatamente en el momento de su establecimiento? ¿Seleccionar el LP con el mejor precio?

 
Andrey Khatimlianskii:

¿Dónde están los limitadores en esto?

MT5 siempre muestra las tomas en forma de rebajas.

¿Cómo es esta implementación mejor que enviar una toma como un límite inmediatamente en el momento de su establecimiento? ¿Seleccionando el LP con el mejor precio?

Sí, porque no es una bolsa, es una agregación.

 
fxsaber:

MT5 siempre muestra las tomas como rebajas.

¿A quién se lo muestra?

¿No hay ningún plugin de servidor para mostrar TPs como límites?


fxsaber:

Sí, porque no es un intercambio, sino una agregación.

Yo pondría a prueba esa afirmación.

La entrada no se hace más rentable con un mercado porque sea una agregación, ¿no?

 
Andrey Khatimlianskii:

¿Mostrar a quién?

Al cliente.

¿No hay un plugin del lado del servidor para mostrar los TP como límites?

A terceros.

Yo pondría a prueba esta afirmación.

La entrada no se vuelve más rentable con un mercado porque sea una agregación, ¿verdad?

Así es como se envía una entrada de límites con un vencimiento muy corto.

 
fxsaber:

Tienes que pensar cada frase.


Estaba preguntando dónde está la implementación de take-outs como límites, si el texto de arriba dice "El precio alcanzó el take-out de la posición abierta. MT5 formó una orden de mercado".

En respuesta he recibido:

fxsaber:

MT5 siempre muestra a los tomadores [cliente] en forma de órdenes de mercado.

¿Cómo comparar esto?


fxsaber:

Terceros.

Entonces. ¿Por qué no conectarlo?


fxsaber:

Así que el limitador se envía con un vencimiento muy corto.

¿Qué tiene esto que ver con mi pregunta?

¿En qué se diferencia la entrada de la salida? ¿Por qué un mercado es más favorable para la salida y un límite para la entrada?