Erreurs, bugs, questions - page 2445

 
fxsaber:

Non, c'est le hash de ex5 qui va dans opt. C'est la raison pour laquelle la recompilation réinitialise le cache du testeur.

Pas exactement.

Toutes les recompilations d'Expert Advisor ne réinitialisent pas le cache du testeur.

Si le conseiller expert a des composants dépendants : bibliothèques, indicateurs personnalisés, et/ou dll, les hashs de ces composants sont mélangés avec le hash du conseiller expert.

La façon dont le hachage de l'EA est calculé et où il est stocké dans l'EA est l'un des secrets technologiques.

C'est pourquoi je vous ai dit tout de suite : "Non".

 
fxsaber:

en effet :

  1. nous mettons le fichier mql dans un tableau uchar
  2. supprimer les commentaires //... и /* ... */
  3. supprimez tous les espaces, tabulations, retours à la ligne, et même toutes les parenthèses et les guillemets.
  4. à partir de ce qui reste lire le hachage

La première approximation fonctionnera très bien.

Bien sûr, si vous changez le nom de la variable (fonction) ou ajoutez une nouvelle variable inutilisée, changez l'ordre, etc., le hachage changera, mais pas la logique. Contrôler ces choses est déjà méga compliqué. C'est comme si vous écriviez votre propre linker.

 
Slava:

La façon dont le hachage de l'EA est pris en compte, où il est stocké dans l'EA, est l'un des secrets technologiques.

C'est pourquoi je vous ai dit tout de suite : "Non".

Le fait est qu'il n'y a pas eu de demande pour donner un hash MD5. Vous avez besoin d'un hachage du code natif. Par exemple, la somme de tous les trois octets.

Si cette somme est différente, alors avec une grande probabilité, le conseiller expert (logique - code natif) a changé.


C'est-à-dire, tout simplement ! Malheureusement, un tel mécanisme n'existe pas pour le moment.

 
Nikolai Semko:

Contrôler ces choses est déjà méga compliqué. C'est comme si vous écriviez votre propre linker.

C'est pourquoi je parle d'une solution simple.

 

Les développeurs ont-ils quelque chose à dire à ce sujet ?

https://smart-lab.ru/blog/535490.php

Черный вторник для одного трейдера в Открытии
Черный вторник для одного трейдера в Открытии
  • smart-lab.ru
Привет коллегам по цеху. Поднимите пожалуйста пост в топ, если не затруднит. Случилась одна неожиданная история, как говорится прилетело откуда не ждал. Сегодня ночью на NLMK-9.19 некто, пожелавший остаться неизвестным (на данный момент), слил или перелил 420000 рублей по четырем маркет сделкам 100,35,20,10 контрактов на счете в Открытии...
 
fxsaber:

C'est pourquoi je parle d'une solution simple.

Eh bien, vous avez besoin d'un argument compétent pour MQ.
A quoi ça sert ? Comment et dans quels cas peut-il améliorer les capacités de mql ? Et pas seulement pour satisfaire un caprice personnel.
Pour l'instant, je ne vois pas très bien pourquoi le programme doit savoir qu'il a été modifié. Dans quelles tâches peut-il être utile ? S'il est même nécessaire pour quelque chose, alors obtenir le hachage à partir du code mql après avoir supprimé le "superflu" est suffisant. Et cela ne prend pas plus de 20 lignes de code.

De plus, même si MQ accepte de donner un tel hash pour l'usage public, il continue à changer un tel hash ne garantira pas que la logique a été modifiée. Par exemple, lorsqu'on change la séquence de quelque chose.

 

Mise à jour accidentelle - elle ne fonctionne plus - erreur de compilation :

#define  MACRO1
#define  MACRO2(x, y)    y
#define  MACRO3          MACRO2(&, MACRO1)
class A {};
void f( A* ) { Print( 1 ); }
void f( A& ) { Print( 2 ); }
void OnStart()
{
        A a;
        f( MACRO3 a ); //Error: '&' - operand expected
}

C'était bien avant (construction 1961)

 

Ici aussi - maintenant (build 2025) il y a une erreur :

#define  MACRO1( x )
#define  MACRO2          MACRO1( y ) void
#import "any.dll"
        MACRO2 f(); //Error: '(' - expressions are not allowed on a global scope
#import

Et avant (construction 1961) c'était bien

 

Aidez-moi à résoudre ce problème. Comment faire pour que des caractères normaux soient transmis à la place des caractères actuels ?


 

Bonjour à tous !

Veuillez m'aider à résoudre un problème.

Je me suis connecté aux signaux et j'ai connecté le VPS à partir de MQL5. Je suis toujours incapable de copier les signaux et je reçois des erreurs, bien qu'il y ait une icône montrant que le VPS fonctionne et que le signal est connecté.

Je n'ai aucun retour de l'assistance MQL5, mon contrat de location est en cours et je perds de l'argent.

Quelqu'un sait-il ce qu'est cette erreur et comment la réparer ?

Merci !