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

 
Por favor, añada la funcionalidad requerida.

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

Nueva versión de MetaTrader 5 build 2650: Carga de gráficos en segundo plano y mejoras en el MQL5 Code Profiler

fxsaber, 2020.11.04 16:50

Lamentablemente, no han añadido funciones para minimizar las ventanas de Charts, Terminal, Market Watch, etc. Anteriormente se demostró que minimizar estas ventanas reduce la carga de la CPU.

Y dejar de mostrar los datos en la ventana de Market Watch y otras, cuando la ventana de Terminal no es visible. Por ejemplo, cuando la aplicación actual (por ejemplo, el navegador) está activa y maximizada.


La necesidad de la barba es determinar qué carta está actualmente seleccionada. La gente se ve obligada a utilizar soluciones WinAPI de mala calidad.

Активный график (ID активного графика)
Активный график (ID активного графика)
  • 2014.10.20
  • www.mql5.com
Доброго времени суток! Нужно элементарно определить ID активного графика (того что выбран в данный момент...
 

Sí, MetaTrader VPS tiene órdenes de magnitud menos latencia (emisiones de latencia) y muchas veces más todos los recursos en comparación con VPS regular de los proveedores de alojamiento.

Se ha explicado muchas veces por qué.

La latencia cero garantizada en los hilos de ejecución no puede existir dentro de las arquitecturas de los procesadores actuales (todos). Las historias de los" sistemas operativos en tiempo real" siguen siendo mitos, no hace falta mencionarlos.

 
fxsaber:

Ya veo lo que pasa con las eyecciones simples, gracias por las explicaciones detalladas. Sin embargo, en este momento no estamos hablando de SymbolInfoTick, sino de rezagos de otra naturaleza, que se precipitan en casi todos los ticks.

Se trata únicamente de sus mediciones de emisiones únicas, que ya no se aceptan ni se tienen en cuenta. Todo su análisis se basa únicamente en las emisiones.

Sólo se pueden considerar otras cuestiones si el escenario se describe de forma clara y completa en un comentario, sin "significar realmente otros comentarios" y sin entrar en la medición del mando único.

 
Renat Fatkhullin:

Sólo se pueden considerar otras cuestiones si el escenario se describe de forma clara y completa en un solo comentario, sin "significar realmente otros comentarios" y sin entrar en la medición de un solo comando.

Aquí en los enlaces están los detalles, incluyendo los comentarios en el código fuente.

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

MT5 y Speed en acción

fxsaber, 2020.11.05 07:42

Quién está usando VPS de MQ, por favor comparta los resultados de los siguientes programas allí.

  1. Asesor experto que capta los rezagos de OnTick/OnBook.
  2. Asesor experto que capta las garrapatas con el tiempo.
  3. Unscript que mide el tiempo medio de ejecución de Sleep(1).
 

Hay una plataforma que se llama deltix (para no hacerle publicidad). Cuando hablé con los desarrolladores (hace tiempo quise conectarlo para el arbitraje), me explicaron lo mismo sobre los retrasos simples, que es normal y que hay que mirar la media

Esto es, por cierto, sin ninguna piedra en la brecha de nadie

 

Dado que es inevitable que se produzcan valores atípicos, es lógico que haya funciones regulares que devuelvan una matriz de toda la Vigilancia del Mercado y una matriz de todas las posiciones/órdenes actuales. Similar a MarketBookGet.

Ahora mismo hay que ejecutar ciclos. Esto es MUY caro.

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

MT5 y Speed en acción

fxsaber, 2020.10.07 12:41

La necesidad práctica te hace escribirlo así.

// Возвращает время Обзора рынка в миллисекундах.
long TimeCurrentMsc()
{
  long Res = 0;
  
  MqlTick Tick;
  
  for (int i = SymbolsTotal(true); i >= 0; i--) 
  {
    const string Symb = SymbolName(i, true);
    
    if (SymbolInfoTick(Symb, Tick) && (Tick.time_msc > Res))
      Res = Tick.time_msc;
  }

  return(Res);
}

No estoy seguro de por qué traté de entrar en el EA en MQL5, a pesar de las repetidas solicitudes de hacerlo.

 
Slava:

No habrá aceleración. Presenta tus cálculos, al menos en cifras aproximadas, demostrando la aceleración múltiple.

¿Una carrera por los recursos? ¿Creación incontrolada de nuevos flujos? ¿Conflictos por nada?

¿Quieres ralentizaciones inexplicables?

En el modelo basado en eventos, todos los eventos han ido siempre en formación, de uno en uno. Masticado - masticado.

¿No hay aceleración del procesamiento de eventos, en una arquitectura asíncrona? ¿Hablas en serio?
Procesamiento acelerado de los programas de usuario, concretamente de sus manejadores. A eso me refiero.

Entiendo que se intente minimizar el uso de hilos. Pero una de las alternativas es ejecutar cada manejador en un hilo separado.
No hay creación incontrolada de hilos. En un programa de usuario sólo hay unos pocos manejadores, cada uno de ellos debe iniciarse en su propio hilo al comienzo del programa.
Y sincronizas los eventos entre los manejadores con mutexes o lo que sea.

Pero si los hilos son una molestia para ti, como has mencionado, hay un modelo de eventos que te permite trabajar en un solo hilo.Manejo de eventos, en un bucle de eventos con disparadores de tareas.
El bucle de eventos, aunque se ejecuta secuencialmente, ¡las tareas en ese bucle se manejan en paralelo!
A esto me refiero, todos los manejadores del programa se ejecutan en este bucle de eventos, entonces todos los eventos serán asíncronos y llegarán simultáneamente en tiempo real.
Es decir, los mismos eventos en OnTrade yOnBookcoincidirán.
Pregunte cómo funciona un bucle de eventos en otros idiomas.
Si el bucle de eventos ya existe en el terminal, basta con aplicarlo a los manejadores de los programas. Eso es todo.
 
Roman:
Cada manejador debe ser ejecutado en un hilo separado.

El problema no se resuelve de ninguna manera. Los programas MQL se vuelven mucho más complicados si diferentes hilos leen el acceso a las variables internas, por ejemplo.

 
fxsaber:

El problema no se resuelve de ninguna manera. Los programas MQL se complicarán en un orden de magnitud, si se lee el acceso a las variables internas desde diferentes hilos, por ejemplo.

Los programas MQL no se complicarán más, es sólo un dolor de cabeza de sincronización para los desarrolladores. Que no están dispuestos a resolver, por supuesto.
O una arquitectura inicial del proyecto no diseñada para este modelo.
Y nadie reescribirá el proyecto para un nuevo modelo, por supuesto.
El modelo de bucle de eventos es más adecuado para los manejadores. Esto es lo que intentaba decir.
Y lo más probable es que este modelo ya exista en el terminal desde hace tiempo, sólo que no se ha aplicado a los manipuladores.

 
Roman:

Los programas MQL no serán más complicados...

Sugiero que esto sea el fin de la teorización, que nunca se cruzará con la práctica aquí.

Razón de la queja: