Erreurs, bugs, questions - page 2672

 
Igor Makanu:

est-il possible d'obtenir le numéro de passe de l'agent de test ?


HH : ou besoin d'un identifiant unique de chaque passage pendant le test pour le nom du fichier - je veux enregistrer les paramètres de l'intérêt EA pendant le test dans le fichier, mais j'ai besoin de quelque chose d'unique pour former un nom de fichier avec les paramètres.

Le numéro de passe peut être de 1024 bits.

Pourquoi avez-vous besoin d'un numéro de passe lorsque vous avez déjà un ensemble de paramètres sur cette ligne ?

 
Igor Makanu:

Je ne veux pas lire du testeur à partir du fichier, je pense que j'ai déjà fait ce que je voulais - nom de fichier unique - MD5 des paramètres d'entrée, à ce sujet :

les fichiers sont écrits et en une seule passe je vois le nom du fichier : fname = 04a19580d36f0a749143211b57efbebc

Le code est un peu répétitif, mais afin de ne pas remplir la structure de l'optimiseur avec des paramètres d'entrée si le test est infructueux ..... mais je vais probablement le réécrire, ce n'est pas un beau code, je ne comprendrai pas pourquoi je l'ai fait de cette façon ;)))

Le MD5 des paramètres d'entrée a déjà été calculé et se trouve dans l'entrée pass du fichier opt.

 
Slava:

Pourquoi avez-vous besoin d'un numéro de passe si vous avez déjà un ensemble de paramètres dans cette ligne ?

Je veux réinitialiser les passes réussies de l'optimiseur immédiatement dans le fichier de paramètres de l'EA et charger automatiquement un fichier .bin au lieu de .set au démarrage de l'EA - c'est nécessaire pour le fonctionnement simultané de plusieurs CTs.

Slava:

Le MD5 des paramètres d'entrée a déjà été calculé et se trouve dans l'enregistrement de la passe dans le fichier opt.

J'ai lutté pendant presque 3 mois pour la vitesse d'optimisation, je pense l'avoir atteint, donc une contre question :

ce qui est plus rapide :

1. de l'optimiseur pour lire le fichier opt avec MD5 ?

2. ou calculer avec mon code MD5


Je soupçonne qu'il est plus rapide à calculer, d'autant plus que tous les paramètres d'entrée sont utilisés dans le code comme un tableau de structures (j'optimise environ 40 paramètres).

 
Igor Makanu:

Je veux réinitialiser les passes réussies de l'optimiseur immédiatement dans le fichier de paramètres de l'EA et charger automatiquement un fichier .bin au lieu de .set au démarrage de l'EA - c'est nécessaire pour le fonctionnement simultané de plusieurs CTs.

J'ai lutté pendant presque 3 mois pour la vitesse d'optimisation, je pense l'avoir atteint, donc une contre question :

ce qui est plus rapide :

1. de l'optimiseur pour lire le fichier opt avec MD5 ?

2. ou calculer avec mon code MD5


Je soupçonne qu'il est plus rapide à calculer, d'autant plus que tous les paramètres d'entrée sont utilisés dans le code comme un tableau de structures (j'optimise environ 40 paramètres).

Le MD5 est plus rapide à calculer.

Si vous n'avez pas l'intention d'utiliser le fichier opt dans le futur, calculez MD5

Si vous l'utilisez, il est préférable d'utiliser un MD5 déjà calculé, car votre calcul peut ne pas correspondre (et ne correspondra probablement pas) au nôtre.

 
Slava:

Le MD5 est plus rapide à lire.

Si vous n'avez pas l'intention d'utiliser le fichier opt dans le futur, lisez MD5

Si vous utilisez le MD5, il est préférable d'utiliser un MD5 déjà calculé, car votre calcul peut ne pas correspondre (et ne correspondra probablement pas) au nôtre.

Merci !

ne va pas utiliser un fichier d'option

SZS : il y a quelques semaines, je cherchais à initialiser MathSrand() à partir d'un testeurhttps://www.mql5.com/ru/forum/1111/page2657#comment_15165819.

il ne serait pas mauvais de récupérer uchar[] avec MD5 (bien ou chaîne) dans l'agent du testeur - c'est une valeur unique, vous pouvez initialiser MathSrand() et ici je veux un nom de fichier unique, donnez votre MD5 dans TesterStatistics()

 
Sergey Dzyublik:
Bug MT5(build 2323), le même objet template B<int> peut être créé après un objet de classe B<void*>, mais si cela est fait avant, une erreur de compilation se produit.
La raison en est probablement le travail du cache du générateur de classes de modèles.

Merci pour le post, corrigé

 

Comment utilisez-vous les macros ?

L'horreur. Une erreur de compilation.

Petite écriture :

void OnStart()
  {
   #define  m 1000;
   ulong n_yes=3*m;  //Тут всё хорошо
   ulong n_no=(3*m); //Тут ошибка: ';' - unexpected token	test2.mq5	27	18
  }
Build 2361, le plus récent pour le moment.
 
Aliaksandr Hryshyn:

Comment utilisez-vous les macros ?

c'est ainsi que nous utilisons
#define  m 1000;
 
Igor Makanu:
c'est ainsi que nous utilisons

La différence ici est la présence de parenthèses.

 
Sergey Dzyublik:
Bug MT5(build 2323),
À l'intérieur d'une fonction modèle, un pointeur passé dans une conversion de type explicite se comporte comme une classe, ce qui provoque une erreur de compilation :

Merci pour le post, corrigé