Características del lenguaje mql5, sutilezas y técnicas - página 129

 
fxsaber:

ME tiene una combinación ALT+V donde se pueden ver los valores anteriores del portapapeles del sistema. Incluso si has copiado algo del navegador y ME estaba trabajando en segundo plano, ME lo verá y lo recordará.

A grandes rasgos, ME ve mucho de lo que haces en el ordenador. Por ejemplo, si pones la contraseña de una cuenta a través del buffer, ésta pasa al historial de ME.

Copio mucho en este megabuffer, tengo que reiniciar ME para borrar este buffer, pero cuando ME arranca sigue recogiendo los datos actuales del buffer, es molesto, sugerí añadir un botón de borrar el buffer en la parte inferior y numerar las posiciones, al pegar es más fácil navegar por números de posición y no por contenido

 
Vitaly Muzichenko:

Vaya, copio las contraseñas de las criptomonedas. ¿Cómo de perjudicial es eso para mí?

Por ejemplo, si das acceso a tu ordenador desde el exterior (TeamViewer, etc.), es aconsejable cerrar la sesión de todos los ME y limpiar el búfer (copiar la basura allí) antes de hacerlo.

 
fxsaber:

ME tiene una combinación ALT+V donde se pueden ver los valores anteriores del portapapeles del sistema. Incluso si has copiado algo del navegador y ME estaba trabajando en segundo plano, ME lo verá y lo recordará.

A grandes rasgos, ME ve mucho de lo que haces en el ordenador.

Gracias. Interesante. Cabe añadir que no sólo se guarda lo que se ha copiado en ME, sino todo lo que hay en todas las aplicaciones. Concretamente hay que comprobar a qué profundidad se está guardando, yo estuve comprobando ahora y vi tres textos copiados, dos de ME y uno del texto del post de este foro.

ps; Incluso dos del texto del foro


 
Y por si acaso, asegúrese de que no se busca ni se sustituye nada. En metaeditor.ini esto
FindWhatX=text
ReplaceWithX=text
 
fxsaber:

ME tiene una combinación ALT+V donde se pueden ver los valores anteriores del portapapeles del sistema. Incluso si has copiado algo del navegador y ME estaba trabajando en segundo plano, ME lo verá y lo recordará.

A grandes rasgos, ME ve mucho de lo que haces en el ordenador. Por ejemplo, si se pega una contraseña de una cuenta o cuenta personal desde otro recurso a través del buffer, pasará al historial de la sesión actual de ME.

Esta es una característica interesante. Menos mal que el buffer se almacena en la memoria y no en un archivo.

 

Aquí hay otra sutileza.

El compilador no se queja de las funciones del mismo nombre con diferentes parámetros de entrada, incluso si no pertenecen a una clase.

void OnStart()
{
 f1("28-70 ОГО");
 f1(1.01);
}

void f1(string s)
{
 Print(__FUNCSIG__, " ", s);
}

void f1(double s)
{
 Print(__FUNCSIG__, " ", s);
}

Resultado del tiempo de ejecución

2019.03.10 10:34:45.566 !00 (EURUSD,H4) void f1(string) 28-70 ОГО
2019.03.10 10:34:45.566 !00 (EURUSD,H4) void f1(double) 1.01
 

El multi-buffer es genial para acelerar el editor y es seguro.

No escribe nada en el disco y sólo mantiene los datos en la memoria.

 
Alexey Viktorov:

Aquí hay otra sutileza.

El compilador no se queja de las funciones del mismo nombre con diferentes parámetros de entrada, incluso si no pertenecen a una clase.

Resultado del tiempo de ejecución

Se trata de una sobrecarga normal de la función. Todo es estándar.

 
Artyom Trishkin:

Es una sobrecarga de funciones normal. Todo es estándar.

Por alguna razón, pensé que la sobrecarga sólo funcionaba en las clases. Me gustaría pensar que no soy el único. Tal vez esto ayude a alguien. ))))

 
La caché del optimizador se puede desactivar mediante la siguiente técnica
// Способ выключить кеш оптимизатора
sinput bool inCache = true; // Выключить кеш оптимизатора

input int Range = 0; // 0..10

void OnTesterInit( void )
{  
  if (inCache)
  {
    MathSrand((int)TimeLocal());
    
    ParameterSetRange("inCache", false, MathRand(), 0, 0, 0);    
  }
}

void OnTesterDeinit( void ) {}

void OnTesterPass( void )
{
  static int i = 0;
  
  Print(i++); // Признак того, что кеш выключен.
}

double OnTester( void )
{
  if (MQLInfoInteger(MQL_OPTIMIZATION))
  {
    uchar Data[];

    FrameAdd(NULL, 0, 0, Data);
  }

  return(0);
}


Por supuesto, una mejor solución sería que los desarrolladores dieranOptimizationCacheOff().

Tenga en cuenta que el parámetro de entrada bool es en realidad un long. Así que bool inCache = 1 y bool inCache = 2 son parámetros de entrada diferentes, aunque son verdaderos en ambos casos.

Razón de la queja: