Errores, fallos, preguntas - página 1933

 
fxsaber:
La diferencia es de más de 1e-15. Además, num != Norm. Son números diferentes, no los mismos.

Mi MT4 da salida a true, true y diferencia 0. ;-)

 
Stanislav Korotky:

Mi MT4 da salida a true, true y diferencia 0. ;-)

Se ha formado una forma no documentada de distinguir MT4/5. Y el bitrate de MT5 no tiene nada que ver.

 
fxsaber:

Se ha formado una forma no documentada de distinguir MT4/5. Y el bitness de MT5 no tiene nada que ver.

Además de que en mql4 funciona y en mql5 ni siquiera el prefijo de operación documentado incremento(++i) y decremento (--k)

Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
  • www.mql5.com
Основы языка / Операции и выражения / Арифметические операции - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

Excepto que en mql4 funciona, mientras que en mql5 ni siquiera el prefijo de operación documentado incrementa(++i) y decrementa (--k)

No vi ningún problema

void OnStart()
{
  int i = 0;
  
  Print(i++ == 0); // true
  Print(++i == 2); // true
}
 
fxsaber:

Se ha formado una forma no documentada de distinguir MT4/5. Y el bitness de MT5 no tiene nada que ver.

Ni siquiera es la diferencia de MT4/5, es si la #propiedad estricta está activada.

Si se habilita, serán diferentes, si no, no.

¡Hay diferentes implementaciones de NormalizeDouble!
 

¿En qué casos se puede pasar reason=0 a OnDeinit en los indicadores?

 
fxsaber:
La diferencia es de más de 1e-15. Además, Num != Norm. Son números diferentes, no los mismos.

¿Y el grado cero? Los grados de 0 a -14 tienen un total de 15 dígitos. Un grado de -15 es el grado 16. Creo que sí.

 
Stanislav Korotky:

¿Y el grado cero? Los grados de 0 a -14 tienen un total de 15 dígitos. Un grado de -15 es el grado 16. Creo que sí.

Vea cuántos dígitos difieren de cero en elDBL_MIN.

 

La versión de lanzamiento del script es casi 3 veces más lenta que la versión de depuración.

string  PositionGetString2( const ENUM_POSITION_PROPERTY_STRING  Property_id )
{
  return(PositionGetString(Property_id));
}

#define  TOSTRING(A) #A + " = " + (string)(A)

void OnStart()
{
  if (PositionSelect(_Symbol))
  {
    const ulong StartTime = GetMicrosecondCount();
    
    for (int i = 0; i < 1 e7; i++)
    {
      PositionGetString2(POSITION_SYMBOL);
      PositionGetString2(POSITION_COMMENT);
    }
    
    Print(TOSTRING(GetMicrosecondCount() - StartTime));
  }
}

Pasos para jugar

  1. Seleccione EURUSD para la depuración y abra su gráfico en el terminal.
  2. Abra una posición en EURUSD.
  3. Inicie la versión de depuración en ME pulsando F5 y vea el resultado en el registro.
  4. Recompilar a ME usando F7 - esto es muy importante, de lo contrario EX5 será depurado.
  5. Ejecute la secuencia de comandos de liberación desde el terminal y vea los resultados registrados.
Resultado de la versión de depuración

GetMicrosecondCount()-StartTime = 638537


Resultado de la versión de lanzamiento

GetMicrosecondCount()-StartTime = 1746492
 

Al importar ticks en un símbolo tkc personalizado, los archivos tkc no son legibles.

Razón de la queja: