Errores, fallos, preguntas - página 1885

 
Por qué EX5 tal código
void OnStart() {}

¿pesa 5Kb?

 
fxsaber:
Por qué EX5 tal código

¿pesa 5Kb?

¿Protección contra la descompilación?
 
fxsaber:
Localizado el error en Metaquotes-Demo

El guión entra en una profunda reflexión.

Reproducible.

Probablemente porque el gráfico de ticks de esta herramienta está "a la espera de una actualización".

Cuando el script se detiene, pone -1 en el registro, es decir, no se queda colgado, sino que espera a que el terminal responda.

 
fxsaber:
Localizado el error en Metaquotes-Demo

El guión entra en una profunda reflexión.

Todo funciona correctamente (según la documentación):
En los Asesores Expertos y scripts CopyTicks() puede esperar hasta 45 segundos por el resultado: En contraste con el indicador cada experto y script trabaja en su propio hilo, y por lo tanto puede esperar hasta 45 segundos para la sincronización. Si durante este tiempo, los ticks no se sincronizan en el volumen necesario, CopyTicks() devolverá sólo los ticks disponibles por tiempo de espera, y la sincronización continuará.
2017.05.11 14:41:31.154 Scripts script test_bug (EURUSD,M1) cargado con éxito
2017.05.11 14:42:14.742 Scripts script test_bug (EURUSD,M1) eliminado

 

Se arreglará la larga espera de los copyticks - esto aparece en los personajes muertos que no han tenido ticks durante mucho tiempo.

Funcionará al instante

 
Renat Fatkhullin:

Se arreglará la larga espera de los copyticks - esto aparece en los personajes muertos que no han tenido ticks durante mucho tiempo.

Funcionará al instante.

¿Qué costes de tiempo deben considerarse normales?

Comprobado SymbolInfoTick (96 caracteres).

#define _CS(A) ((!IsStopped()) && (A))
#define  TOSTRING(A) #A + " = " + (string)(A)

void OnStart()
{
  ulong MaxInterval = 0;
  MqlTick Tick;
  
  while (_CS(true))
  {
    const ulong StartTime = GetMicrosecondCount();
    
    for (int i = SymbolsTotal(true) - 1; _CS(i >= 0); i--)
      SymbolInfoTick(SymbolName(i, true), Tick);

    const ulong Interval = GetMicrosecondCount() - StartTime;              
    
    if (Interval > MaxInterval)
    {
      MaxInterval = Interval;
      
      Print(TOSTRING(MaxInterval));
    }
  }
}

Tengo

MaxInterval = 7631

¿Normal?

 
fxsaber:

¿Qué costes de tiempo deben considerarse como la norma?

Verificado SymbolInfoTick (96 caracteres)

Lo tengo.

¿Normas?

45 segundos por instrumento muerto.
 
Andrey Khatimlianskii:
45 segundos por instrumento muerto.
Sólo los vivos son de interés. Una por una 100 piezas.
 

¿Es esto normal?

Se devuelve el mismo valor para diferentes situaciones.

Entiendo que tengo que comprobarlo, pero son cosas que pasan...

posiciones

impresión de resultados


Archivos adjuntos:
posi.mq5  2 kb
 
Alexandr Bryzgalov:

¿Es esto normal?

Se devuelve el mismo valor para diferentes situaciones.

Entiendo que tengo que comprobarlo, pero son cosas que pasan...

posiciones

impresión de resultados



¿Y cuál es la pregunta?

¿Dónde puede ver que bajo el número "i" hay una posición con tal o cual billete, para tal o cual símbolo? Por lo general, además de mostrar simplemente el número de serie, se emiten también el ticket y el símbolo.