MT5 y la velocidad en acción - página 24

 
Artyom Trishkin:

Lo más probable es que después de la próxima versión de lanzamiento (ahora en beta)

Gracias
 
Artyom Trishkin:

Lo más probable es que después de la próxima versión de lanzamiento (ahora en beta)

¿No habrá una serie de ofertas?

 

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

MT5 y Speed en acción

fxsaber, 2020.08.13 04:36

  1. Vaya a la cuenta demo de MetaQuotes-Demo con un historial de operaciones relativamente largo.
    1. Si su cuenta de demostración tiene poco historial de operaciones, entonces permita las operaciones automáticas y ejecute paralelamente el script OrderSend-Test2.ex5 (en el apéndice, fuente).

Este antiguo script muestra muchos frenos si lo ejecutas en un gráfico de MQ-Demo y añades más símbolos comerciales a Market Watch (yo tenía 100).

Registro de terminales.

2020.09.04 17:51:33.112 Trades  '34510052': cancel order #702851395 buy stop 0.01 EURCAD at 1.55852
2020.09.04 17:51:33.512 Trades  '34510052': accepted cancel order #702851395 buy stop 0.01 EURCAD at 1.55852
2020.09.04 17:51:33.514 Trades  '34510052': cancel #702851395 buy stop 0.01 EURCAD at market done in 401.845 ms

La eliminación de la operación pendiente se produjo en 401 ms. Los desarrolladores tienen acceso a los registros del servidor de operaciones y pueden ver cuánto tiempo duró la ejecución. Por ejemplo.

Todo el mundo puede reproducirlo en su sitio.


Por si acaso, este es el aspecto de una orden comercial con resultados.

2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Alert: EURCAD 702851395 Request executed 401.915 + 0.003 (0) ms.
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.action = TRADE_ACTION_REMOVE (8)
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.magic = 0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.order = 702851395
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.symbol = EURCAD
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.volume = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.price = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.stoplimit = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.sl = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.tp = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.deviation = 0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.type = ORDER_TYPE_BUY (0)
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.type_filling = ORDER_FILLING_FOK (0)
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.type_time = ORDER_TIME_GTC (0)
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.expiration = 1970.01.01 00:00:00
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.comment = 
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.position = 0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.position_by = 0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.retcode = 10009
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.deal = 0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.order = 702851395
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.volume = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.price = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.bid = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.ask = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.comment = Request executed 401.915 + 0.003 (0) ms.
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.request_id = 6133
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.retcode_external = 0


Ping.

2020.09.04 17:51:57.567 AccountInfoString(ACCOUNT_SERVER) = MetaQuotes-Demo
2020.09.04 17:51:57.567 TerminalInfoInteger(TERMINAL_PING_LAST) = 74808


El guión funcionó durante unos 10 minutos.


No me importan estas ralentizaciones. Sólo quiero saber dónde y qué puedo ajustar para mejorar la situación. ¿Es el Terminal o el servidor de comercio? En general, los promotores tienen todas las posibilidades de reproducir y, si lo desean, comprender.

Особенности исполнения торговых приказов MT5
Особенности исполнения торговых приказов MT5
  • 2020.02.06
  • www.mql5.com
Анализировал с владельцем MT5-сервера тормоза торговых приказов. Запускался OrderSend-Test2.mq5 в том же месте, где MT5-сервер стоит. Т.е. нулевой пинг. Демо, все внутри. Изучались логи MT5-сервера (2170) и MT5-клиента (2280). Логи сервера не буду приводить, просто словами опишу. Думаю, результаты буду интерсны всем, т.к. это поможет раскрыть...
 
fxsaber:

Este antiguo script mostrará muchos frenos si lo ejecutas en un solo gráfico MQ-Demo y añades más símbolos comerciales a Market Watch (yo tenía 100).

Recuerdo este caso

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Nueva versión de la plataforma MetaTrader 5 build 1880: Cálculo del historial completo de instrumentos sintéticos

A100, 2018.07.25 21:55

En cualquier caso, hay que tener en cuenta la carga:

Tengo un ordenador lento... y tengo uno muy lento... Así que... Si añado 63 símbolos en Market Watch y pulso F10 después, MetaTrader se cuelga mucho (tiene que reiniciar)... mientras que en todos los demás modos funciona bien

Intenté usar F10 pero se quedó colgado durante al menos un año - aunque estaba en la versión de 32 bits

 
A100:

Recuerdo un caso como este

El número de caracteres en la Revisión del Mercado no es crucial para jugar a los frenos. Es la forma en que lo he hecho en el mío.

Es fácil de reproducir.
2020.09.04 18:25:06.131 Trades  '34510052': buy limit 0.01 USDPLN at 3.77653
2020.09.04 18:25:06.202 Trades  '34510052': accepted buy limit 0.01 USDPLN at 3.77653
2020.09.04 18:25:06.202 Trades  '34510052': order #702911224 buy limit 0.01 / 0.01 USDPLN at 3.77653 done in 70.966 ms
2020.09.04 18:25:06.202 Trades  '34510052': cancel order #702911224 buy limit 0.01 USDPLN at 3.77653
2020.09.04 18:25:06.274 Trades  '34510052': accepted cancel order #702911224 buy limit 0.01 USDPLN at 3.77653
2020.09.04 18:25:06.274 Trades  '34510052': cancel #702911224 buy limit 0.01 USDPLN at market done in 71.859 ms
2020.09.04 18:25:06.274 Trades  '34510052': buy stop 0.01 USDPLN at 3.79653
2020.09.04 18:25:06.481 Trades  '34510052': instant sell 0.1 NZDSGD at 0.91421, close #702903930 buy 0.1 NZDSGD 0.91462
2020.09.04 18:25:06.982 Trades  '34510052': accepted buy stop 0.01 USDPLN at 3.79653
2020.09.04 18:25:07.030 Trades  '34510052': order #702911229 buy stop 0.01 / 0.01 USDPLN at 3.79653 done in 755.302 ms
2020.09.04 18:25:07.030 Trades  '34510052': accepted instant sell 0.1 NZDSGD at 0.91421, close #702903930 buy 0.1 NZDSGD 0.91462
2020.09.04 18:25:07.030 Trades  '34510052': deal #681898561 sell 0.1 NZDSGD at 0.91421 done (based on order #702911234)
2020.09.04 18:25:07.031 Trades  '34510052': cancel order #702911229 buy stop 0.01 USDPLN at 3.79653
2020.09.04 18:25:07.031 Trades  '34510052': order #702911234 sell 0.1 / 0.1 NZDSGD at 0.91421 done in 550.273 ms
2020.09.04 18:25:07.103 Trades  '34510052': accepted cancel order #702911229 buy stop 0.01 USDPLN at 3.79653
2020.09.04 18:25:07.103 Trades  '34510052': cancel #702911229 buy stop 0.01 USDPLN at market done in 72.558 ms
2020.09.04 18:25:07.103 Trades  '34510052': instant buy 0.01 USDHUF at 297.871 (deviation: 100)
2020.09.04 18:25:07.130 Trades  '34510052': instant sell 0.01 GBPCAD at 1.73255, close #702904086 buy 0.01 GBPCAD 1.73271
2020.09.04 18:25:07.174 Trades  '34510052': accepted instant buy 0.01 USDHUF at 297.871 (deviation: 100)
2020.09.04 18:25:07.174 Trades  '34510052': deal #681898572 buy 0.01 USDHUF at 297.871 done (based on order #702911246)
2020.09.04 18:25:07.175 Trades  '34510052': order #702911246 buy 0.01 / 0.01 USDHUF at 297.871 done in 72.051 ms
Sólo hay 1ms entre las dos horas locales rojas, que en realidad deberían ser 550ms (OrderSend consecutivo). Al parecer, las instantáneas de impresión también tienen efecto aquí.
 
Renat Fatkhullin:

Por el bien de su posición, ¿hay que disparar por sí mismo?

// Демонстрация тормозов HistorySelect.
#include <fxsaber\Benchmark.mqh> // https://c.mql5.com/3/321/Benchmark.mqh

input int inAlertTime = 1; // Нижний порог в миллисекундах

#define _B2(A) _B(A, inAlertTime)

const bool Init = EventSetTimer(1);

void OnTimer()
{
  static MqlTradeRequest Request = {0};
  static MqlTradeResult Result = {0};

  if (Request.tp) // Если позиция выставлена - меняем тейк.
  {
    static bool Flag = false;

    Request.action = TRADE_ACTION_SLTP;
    Request.tp += (1 - ((Flag = !Flag) << 1)) * _Point;
        
    if (Result.order)
      Request.position = Result.order;
  }
  else // Иначе выставляем позицию.
  {
    Request.action = TRADE_ACTION_DEAL;
    Request.symbol = _Symbol;
    Request.volume = 0.1;
    Request.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
    Request.tp = Request.price + 1000 * _Point;         
  }

  if (OrderSend(Request, Result))
    _B2(HistorySelect(0, INT_MAX)); // В каком месте самострел?
}


Resultado en b2592 MQ-Demo.

2020.09.04 23:30:32.661 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:33.681 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:34.655 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:35.674 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:36.657 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:37.668 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:38.661 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:39.666 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.

Hay un retraso en cada llamada.

 
También sobre los retrasos

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Bichos, errores, preguntas

A100, 2020.08.31 15:55

Tengo un timeframe muy bueno, especialmente para el EURUSD, el crosshair se mueve muy lentamente siguiendo el cursor, basta con mover el cursor suavemente en diagonal para reproducirlo. Está bien en otros plazos. No hubo tal retraso antes

Y todo el trazado manual (tendencia, Fibonacci, etc.) también es lento

Todos los ajustes son por defecto:

  • Servidor: MetaQuotes-Demo
  • Historia: disponible desde el 01.01.1971
  • Plazo preciso: ninguno
  • Máximo de barras en la ventana: 100000
  • Tipo de gráfico: velas
  • Reducción del gráfico: Máximo

Símbolo, punto bares latencia
EURUSD, Mounthly 597 ir a
EURUSD, Semanal
2590 Comprueba
EURUSD, Diario

12797

no

Una especie de dependencia inversa: cuanto menos barras, más lento

En los gráficos mensuales y semanales, por ejemplo, del EURGBP (donde no hay un historial tan profundo), no hay retrasos

 
A100:

Una especie de relación inversa: cuanto más bajas son las barras, más lentas

Más bien es directo: cuanto más alta sea la TF, mayor será el retraso.

Aparentemente, esto se debe al cálculo preciso de las coordenadas por parte de la TF inferior. En algún sitio se ha hecho un lío con la inclusión de los índices de las barras en la barra semanal/mensual que buscamos.

ps: todo me funciona, el mismo número de barras

 
Andrey Khatimlianskii:

Es más bien una línea recta: cuanto más alta sea la TF, mayor será el retraso.

Aparentemente, debido al cálculo preciso de las coordenadas en la TF inferior. En algún lugar se equivocaron al incluir los índices de los bares en la barra semanal/mensual requerida.

ps: todo me funciona, el mismo número de barras

Por supuesto, no se ejecuta ningún EA/indicador/script - sólo la creación manual. La latencia mostrada es reproducible en cualquier tableta moderna media de 64 bits. Si tienes un ordenador i7, supongo que no te has encontrado con este retraso
 
A100:
Naturalmente, no se ejecuta ningún experto/indicador/script, sólo se construye manualmente. La latencia indicada es reproducible en cualquier tableta moderna media de 64 bits. Si tienes un ordenador i7, supongo que no te has encontrado con este retraso

Probablemente debería haber especificado que se estaba utilizando una tableta.

Tengo un i5

Razón de la queja: