Errores, fallos, preguntas - página 2943

 
¿Cómo puedo saber en MQL, sin recurrir a la WinAPI, si el terminal tiene el foco del usuario (es decir, el usuario tiene una ventana activa)? Ahora algunas funciones, como la lectura del estado del teclado (como TerminalInfoInteger(TERMINAL_KEYSTATE_CAPSLOCK)) devuelven diferentes valores dependiendo de la actividad de la ventana con el mismo estado del teclado. Esto es un fastidio.
 
Alexandr Sokolov:

MT5 build 2755

El terminal no cuenta todos los ticks

¿Por qué ha llegado a esa conclusión?

 
Alexandr Sokolov:

MT5 build 2755

El terminal no cuenta todos los ticks



Pruébalo así

datetime st = 0;
int tics = 0;

//------------------------------------------------------------------

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   
   if(prev_calculated == 0)
{
 ArraySetAsSeries(time,true);
 ArraySetAsSeries(tick_volume,true);
 st = time[0];
}   
   else if(time[0] != st)
     {
      tics++;
      Alert("T - ",tics," TV - ",tick_volume[0]);
     };
   
  //-----------------------------------------------------------------
   return(rates_total);
  }
 
Renat Fatkhullin:

¿Por qué ha llegado a esta conclusión?

Porque como he notado OnCalculate se llama cuando cambian los precios Ask y Bid, pero tick_volume[] sólo cuenta los cambios Bid

 

El siguiente problema: tenía un Asesor Experto en una cuenta de red, estaba abriendo y cerrando posiciones, añadí un contrato manualmente a la posición abierta por el robot y después de un tiempo el registro del Asesor Experto mostró errores:

Error al abrir una posición: 4753 - Posición no encontrada

Lo más interesante es que se cierra la posición,se desactiva el auto-trading y se elimina el EA del gráfico, pero siguen apareciendo errores.


 
Alexandr Sokolov:

Porque me he dado cuenta de que OnCalculate se llama a los cambios de precio Ask y Bid, pero tick_volume[] sólo cuenta los cambios Bid

OnTick se llama en cualquier cambio de precio y no sólo (el terminal puede requerir recalcular en muchas ocasiones, como la descarga de datos adicionales o la redistribución de conjuntos de datos históricos).

Elvolumen de los ticks, al igual que el gráfico, se basa en el cambio del precio de compra. En la ejecución de la bolsa, se utiliza un contador de volumen real independiente, en el que se contabilizan todas las operaciones de compra y venta.

 
Sayberix:

El siguiente problema: tenía un Asesor Experto en una cuenta de red, estaba abriendo y cerrando posiciones, añadí un contrato manualmente a la posición abierta por el robot y después de un tiempo el registro del Asesor Experto mostró errores:

Error al abrir una posición: 4753 - Posición no encontrada

Lo más interesante es que se cierra la posición,se desactiva la negociación automática y se eliminael Asesor Experto del gráfico.


Esto depende de la lógica del Asesor Experto.

Puede recordar y pensar sólo en sus propias operaciones y su intervención manual puede estropear la lógica del Asesor Experto.

 
Renat Fatkhullin:

Depende de la lógica del propio EA.

Sólo puede recordar y pensar en sus propias operaciones y su intervención manual puede desordenar la lógica del Asesor Experto.

Lo entiendo, pero ¿por qué se ha quedado este error en el terminal? ¡Te dije que todas las posiciones están cerradas, el auto-trading está desactivado, el Expert Advisor está descargado e incluso el terminal se reinició!

 
El navegador K-meleon no refleja el texto de los mensajes privados(ver captura de pantalla). ¡Pero qué dolor! De alguna manera, sólo en privado. El navegador es el más fácil y rápido, pero no está extendido y a Moz le falta una fuente? Ayuda a quien sabe. El hardware es viejo y los navegadores pesados tiran mal.
Archivos adjuntos:
 
Sayberix:

Lo entiendo, pero ¿por qué se ha quedado este error en el terminal? ¡Ya te dije que todas las posiciones están cerradas, el auto-trading está desactivado, el Expert Advisor está descargado e incluso he reiniciado el terminal!

Los milagros no ocurren. Su Asesor Experto se está ejecutando en uno de los gráficos.