Caractéristiques du langage mql5, subtilités et techniques - page 129

 
fxsaber:

ME dispose d'une combinaison ALT+V où vous pouvez voir les valeurs précédentes du presse-papiers du système. Même si vous avez copié quelque chose depuis le navigateur et que ME travaillait en arrière-plan, ME le verra et s'en souviendra.

En gros, ME voit une grande partie de ce que vous faites sur l'ordinateur. Par exemple, si vous collez le mot de passe d'un compte via la mémoire tampon, il entre dans l'historique de ME.

Je copie beaucoup dans ce mégabuffer, je dois redémarrer ME pour effacer ce tampon, mais quand ME démarre, il récupère toujours les données actuelles du tampon, c'est ennuyeux, j'ai suggéré d'ajouter un bouton d'effacement du tampon en bas et de numéroter les positions, quand on colle, il est plus facile de naviguer par les numéros de position et non par le contenu.

 
Vitaly Muzichenko:

Wow, je suis en train de copier les mots de passe des crypto-monnaies. En quoi est-ce préjudiciable pour moi ?

Par exemple, si vous donnez accès à votre ordinateur depuis l'extérieur (TeamViewer, etc.), il est conseillé de se déconnecter de tous les ME et de nettoyer le tampon (y copier les déchets) avant de le faire.

 
fxsaber:

ME dispose d'une combinaison ALT+V où vous pouvez voir les valeurs précédentes du presse-papiers du système. Même si vous avez copié quelque chose depuis le navigateur et que ME travaillait en arrière-plan, ME le verra et s'en souviendra.

En gros, ME voit une grande partie de ce que vous faites sur l'ordinateur.

Merci. Intéressant. Il convient d'ajouter que ce n'est pas seulement ce qui a été copié dans ME qui est sauvegardé, mais tout ce qui se trouve dans toutes les applications. Il faut spécifiquement vérifier à quelle profondeur est sauvegardée, je viens de vérifier maintenant, j'ai vu trois textes copiés, deux de ME et un du texte dans le post sur ce forum.

ps ; Même deux du texte du forum


 
Et au cas où, assurez-vous que rien n'est recherché ou remplacé. Dans metaeditor.ini, ceci
FindWhatX=text
ReplaceWithX=text
 
fxsaber:

ME dispose d'une combinaison ALT+V où vous pouvez voir les valeurs précédentes du presse-papiers du système. Même si vous avez copié quelque chose depuis le navigateur et que ME travaillait en arrière-plan, ME le verra et s'en souviendra.

En gros, ME voit une grande partie de ce que vous faites sur l'ordinateur. Par exemple, si vous collez un mot de passe pour un compte ou un compte personnel à partir d'une autre ressource via le tampon, il sera placé dans l'historique de la session ME actuelle.

Il s'agit d'une fonctionnalité intéressante. Heureusement que le tampon est stocké en mémoire et non dans un fichier.

 

Voici une autre subtilité.

Le compilateur ne se plaint pas des fonctions du même nom avec des paramètres d'entrée différents, même si elles n'appartiennent pas à une classe.

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

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

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

Résultat de l'exécution

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
 

Le multi-buffer permet d'accélérer l'éditeur et est sûr.

Il n'écrit rien sur le disque et ne conserve que les données en mémoire.

 
Alexey Viktorov:

Voici une autre subtilité.

Le compilateur ne se plaint pas des fonctions du même nom avec des paramètres d'entrée différents, même si elles n'appartiennent pas à une classe.

Résultat de l'exécution

Il s'agit d'une surcharge normale de la fonction. Tout est standard.

 
Artyom Trishkin:

C'est une surcharge de fonctions normales. Tout est standard.

Pour une raison quelconque, je pensais que la surcharge ne fonctionnait que dans les classes. J'aime à penser que je ne suis pas le seul. Peut-être que cela aidera quelqu'un. ))))

 
Le cache de l'optimiseur peut être désactivé par la technique suivante
// Способ выключить кеш оптимизатора
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);
}


Bien sûr, une meilleure solution serait que les développeurs donnentOptimizationCacheOff().

Notez que le paramètre d'entrée bool est en fait un long. Ainsi, bool inCache = 1 et bool inCache = 2 sont des paramètres d'entrée différents, bien qu'ils soient vrais dans les deux cas.

Raison: