Errores, fallos, preguntas - página 575

 
Karlson:
Si nos sentamos a hablar de demagogia )), esperaremos las consecuencias de Eurochif... y la-la...

¿Qué pasa con las consecuencias de Eurochif?

papaklass:
"Dame la lista completa, por favor".
+1
 
Mi propuesta es estar al día, escribir algo que sea realista a estas alturas, es decir, estoy en contra de la frase "No debes escribir un multithreading, porque no hay multithreading".Lo único que tiene que hacer cuando opera con un potencial de 1-3 spreads (hasta 10-20 puntos de spread de 4 dígitos), y si no le gusta - un tick es suficiente para un par rápido o incluso una barra de un minuto para una encuesta.
 
Interesting:

¿Qué pasa con las secuelas de EUROCHIFA?

El dólar-jefe... No tiene sentido negociarlo si el Eurobucks ya cotiza... Luego está la posibilidad de una crisis... Son posibles muchas cosas, hasta la regulación de otras monedas...
 
papaklass:
Sí, hasta que los manejadores de eventos OnTick() y OnTrade() y el multithreading en los EAs se vuelvan paramétricos, el multithreading normal será sólo un sueño. Todo esto - OnChartEvent() etc. es una tontería. Es un intento de sustituir la parametrización de los manejadores de eventos principales. Y mientras MQ haga estas tonterías, en vez de resolver el tema cardinalmente (parámetros de los manejadores de eventos y multithreading) MT5 seguirá en el mismo nivel donde está ahora. Y no hay perspectivas especiales para esta plataforma en su forma actual. (No visible para los comerciantes).

Simplemente no te das cuenta del nivel de problemas para las diferentes clases de usuarios, los procesos internos de la implementación del multithreading para MQL5 y las implicaciones globales para la plataforma.

Piensa en ello durante una semana, encuentra cinco condiciones mortales, y luego puedes publicar los detalles.

Nos dedicamos a este análisis muchas veces y durante mucho tiempo, gracias a la cuarta generación de la lengua.

 
papaklass:
El terminal permite abrir 99 gráficos. ¿Y esperar al siguiente par para ver qué pasa ahí? Y si analiza en barras de minutos en tales condiciones, tendrá acceso a los instrumentos una hora y media después del último sondeo. ¿Y cómo se las arregla la gente para analizar cientos de gráficos (para la bolsa)? Y MT5 se posiciona como un terminal de acciones también. Así que hay pasteles de este tipo. Así que sin el multithreading y la parametrización de los manejadores de eventos no hay nada. O bien operar en 1 - 12 pares.

Se equivoca fundamentalmente al no saberlo:

  • cada EA/script se ejecuta en su propio hilo independientemente de los demás
  • cada gráfico tiene su propia cola independiente
  • cada símbolo tiene su propio hilo de ejecución cuando trabaja en los gráficos; todos los indicadores de este símbolo se calculan en este hilo, sin afectar a los procesos de los indicadores de otros símbolos
  • el terminal tiene muchos hilos del sistema que hacen su trabajo independientemente de los demás y deshacen los cuellos de botella

Desgraciadamente, las declaraciones "dame multithreading y basta" no significan que realmente entiendas los procesos existentes. Hemos trabajado muy bien en los procesos internos de la terminal y hemos implantado un sistema muy productivo y coherente.

 
Loky:

No hay nada claro en esta aplicación. Interesante articular correctamente el problema en el post anterior.

" El propio lenguaje (el concepto de MQL en sí) no permite organizar el procesamiento de múltiples hilos dentro de un programa"

¡Una vez que se ejecuta la función OnChartEvent() y mientras se ejecuta el código para procesar el evento de llegada de un nuevo tick de uno de los pares, todos los demás pares con sus eventos onTick tendrán un descanso!

¿Realmente necesita la negociación de alta frecuencia por encima de 1 segundo?

Creo que no, entonces en OnChartEvent() abrir sólo las banderas de estado, y no habrá ningún retraso, y mover los cálculos mismos a OnTimer() y procesar sólo las banderas que están abiertas.

 
Urain:

¿Realmente necesita la negociación de alta frecuencia por encima de 1 segundo?

Creo que no, a continuación, en OnChartEvent() abrir sólo las banderas de estado, y no habrá ningún retraso de la corriente, y los propios cálculos se mueven a OnTimer(), y el proceso sólo las banderas, que están abiertos.

1. ¿y cómo funcionará este diseño en el probador?

2. Necesito una operación con una frecuencia no inferior a la llegada de una nueva cotización en un par. Puedo estar analizando el tiempo entre las cotizaciones y su cantidad en un determinado intervalo.

Me gustaría tener "Cálculos" para dos pares diferentes al mismo tiempo.

3. Me gustaría tener un concepto totalmente diferente de caja de herramientas. La vinculación al gráfico del EA es muy molesta. Me gustaría que estuviera al nivel de la visualización de los objetos, sus propiedades y eventos en la ventana del terminal.

Por ejemplo

- seleccionar un símbolo en la ventana de citas, hacer clic en el botón izquierdo del ratón -> propiedades ->

luego observe la lista de eventos -> seleccione ontick dos veces con el botón izquierdo del ratón -> se abre una ventana para introducir el código mql5

Del mismo modo, para otros objetos terminales - gráficos, indicadores, etc.





 
Loky:

1. ¿cómo funcionará este diseño en el probador?

2. Necesito operar con una frecuencia no inferior a la llegada de una nueva cotización para un par. Es posible que analice el tiempo entre citas y su número en un determinado intervalo.

Me gustaría que los "Cálculos" se realizaran para dos pares diferentes al mismo tiempo.

Dado que los cálculos tendrán lugar en OnTimer() no habrá procesamiento simultáneo, sino secuencial.

En este caso, la cola de eventos no se acumulará. Los eventos de los ticks de diferentes pares que llegan durante el cálculo de OnTimer() serán omitidos.

 
papaklass:
.....

Creo que estás asumiendo demasiado. Como mínimo, deberías haber sido más educado.

Si tiene problemas con el terminal o la ejecución de los programas MQL5, póngase en contacto con el lugar adecuado: servicedesk. Será mucho más útil.

 
papaklass:

1. ¿Por qué todos los gráficos abiertos con indicadores en el terminal en línea se ejecutan en un solo núcleo? Tengo 4 núcleos en mi ordenador y tres están en reposo. ¿Puede ser que la nube sea la culpable de este rendimiento?

Gonewo. Pruf - por favor, veamos.

2. ¿Por qué el Asesor Experto multidivisa procesa los ticks de cada gráfico secuencialmente, y no de varios símbolos a la vez?

¿Es necesario? ¿Y cuál es el problema de pasar los eventos necesarios de los índices de espionaje? Bueno, no las garrapatas, por supuesto, sino las señales, por supuesto. Y el EA tiene un hilo y no necesita más.

No necesitamos más dolor y trampas con la sincronización y los deadlocks. Al menos domina la POO y luego pide el multithreading.

Tal vez, he organizado el EA incorrectamente y hay funciones en MT5 que permiten utilizar todos los núcleos? Si es así, explique cuáles son estas funciones y cómo utilizarlas.

¿Por qué el Asesor Experto tiene que utilizar todos los núcleos?

Ni siquiera tienes que preocuparte por el multihilo. El Asesor Experto es un espía y sincronizador de Asesores Expertos. La mayor parte de la funcionalidad es realizada por los espías y el sincronizador es responsable del correcto intercambio de datos dependientes entre los espías.