Programación asíncrona y multihilo en MQL - página 30

 
fxsaber:

Estamos hablando de un cinco.

¿Tenías que result.order==0 && result.deal==0?

 
Andrey Barinov:

...

Por cierto, toda la información anterior no anula mi consejo de que dejes de usar EventChartCustom() y te pases completamente a los recursos. Créame, esta forma es mejor y más universal. Y el patrón se puede aplicar a un gráfico normal, estableciendo CHART_SHOW 0 (para que no reciba eventos innecesarios).

 
Andrey Barinov:

¿Tenías que result.order==0 && result.deal==0?

&& no. Pero Result.deal == 0 - eso no es suficiente. Además, es peligroso hacer algo cuando el historial de operaciones aún no ha tenido tiempo de sincronizarse.

 
Por supuesto, esta opción de multihilo es costosa, pero si no hay otra, resolverá el problema. Apenas).
 
fxsaber:

&& - no. Pero Result.deal == 0 - eso no es suficiente. Además, es peligroso hacer algo cuando el historial de operaciones aún no ha tenido tiempo de sincronizarse.

Dame un ejemplo de un problema. Hasta ahora siempre me ha bastado con saber que el pedido ha sido enviado.

 
Andrey Barinov:

Dame un ejemplo de un problema. Hasta ahora siempre he estado satisfecho con la información que se ha enviado el pedido.

Hay muchos matices, no puedo recordarlos todos a la vez. De un vistazo

  • Una orden de mercado es colocada con éxito. Se hizo realidad y 10009. Pero aún no se ha ejecutado.
  • La posición está cerrada, pero no se menciona en el historial de operaciones.
  • La orden se ejecuta y la posición se abre. Pero la orden aún no ha sido borrada del terminal. Así, la orden y la posición existen en el terminal simultáneamente. Sus etiquetas son las mismas.
 
fxsaber:

Hay muchos matices, no puedo recordarlos todos a la vez. De un vistazo

  • La orden de mercado se coloca con éxito. Tenemos el verdadero y el 10009. Pero aún no se ha ejecutado.
  • La posición está cerrada, pero no se menciona en el historial de operaciones.
  • La orden se ejecuta y la posición se abre. Pero la orden aún no ha sido borrada del terminal. Así, la orden y la posición existen en el terminal simultáneamente. Sus etiquetas son las mismas.

En efecto, hay muchos matices. Usted mismo resolvió muchos de estos problemas en MTOrders.

Construyo mi lógica de negociación de tal manera que la información de result.order es suficiente para mí. Durante varios años, no hubo tareas (problemas) irresolubles.

P.D. Ya es offtopic.

 
Andrey Barinov:

Peter, no lo entiendes.

Hay UN asesor. También se ejecuta adicionalmente en un gráfico invisible, sólo en modo agente. NO hay eventos en ejecución en el agente. Significa que el recurso no puede ser sondeado de ninguna manera, el temporizador no se inicia, los ticks no llegan.

El Asesor Experto puede multiplicar tantos de estos agentes como quiera. Cada uno se convierte en un hilo independiente.

¿Puede aclarar esta afirmación una vez más? Si se aplica una plantilla a un gráfico normal y se lanza una copia del EA, normalmente llegarán todos los eventos. ¿No es así?

Y si la plantilla se aplica a _OBJ_CHART, ¿cómo puede el EA trabajar en él si ni siquiera los ticks vienen?

 
Andrey Barinov:

Realmente hay muchos matices. Usted mismo ha resuelto muchos de estos problemas en MTOrders.

Allí he resuelto todo.

Construyo mi lógica de negociación de tal manera que tengo suficiente información de resultados.órdenes. Durante varios años, no hubo tareas (problemas) irresolubles.

Hay que tomar ciertos servidores.

P.D. Ya es offtopic.

Sí, terminemos.

 
Реter Konow:

¿Puede explicar de nuevo esta afirmación? Al fin y al cabo, si se aplica una plantilla a un gráfico normal y se ejecuta una copia del EA, todos los eventos entrarán con normalidad. ¿No es así?

Y si se aplica una plantilla a _OBJ_CHART, ¿cómo puede funcionar allí en su totalidad si ni siquiera vienen las tildes?

El gráfico normal tiene todos los eventos. El OBJ_CHART sólo tiene OnChartEvent donde el EA principal envía OnTick y OnTimer si es necesario.