Erreurs, bugs, questions - page 1435

 

Qu'est-il arrivé à MT5 ?

Je me suis levé ce matin et aucun EA du testeur de stratégie ne fonctionne... aucun poste ouvert...

Hier soir, ils ont tous fonctionné... aujourd'hui, plus de 10 EA ont cessé de fonctionner.

anciens et nouveaux

 

Erreur de compilation : erreur de génération de code

class A { public:
        void g() {}
};
struct B {
/**/    virtual void f() { g(); }
        virtual void g() {}
};
A *f() export { return new A(); }
void OnStart()
{
        f().g();
}
Par exemple, si vous supprimez export ou commentez la ligne /**/, l'erreur disparaîtra, ce qui signifie que le compilateur doit être amélioré.
 

Quelle est l'habitude des créatifs web ici de changer les noms de fichiers dans les pièces jointes ?

J'envoie un indicateur compilé avec le nom requis IndicatorCAF.ex4. En pièce jointe, "site intelligent" réécrit le nom comme il le souhaite : Indicateur0AF_01.ex4.

Dites-moi pourquoi ? Quel est le sens pratique de tout cela ? Quelle est la vérité ? Bon, okay ne comprend pas les noms russes et les renomme comme bon lui semble - il y a quand même du compréhensible. Mais pourquoi changer le nom d'un fichier écrit en anglais en quelque chose d'autre ? C'est un nom, pas un numéro...

Je sélectionne IndicateurCAF.mq4


Le nom attaché à ce message est correct : IndicatorCAF.mq4


J'envoie un message et voilà.

Pour une raison quelconque, j'ai ajouté _01 à mon fichier ex4 précédent (c'est pourquoi j'ai des questions)...

Ok, j'ai déjà joint un tel fichier avec tel nom - c'est compréhensible, mais c'est le premier fichier. Je n'ai pas encore trouvé de tels noms dans notre correspondance.


Et autre chose de drôle - le fichier ex4 compilé dans mon MetaEditor Version : 5.00 build 1214 12 Nov 2015 n'affiche pas les objets graphiques dans le terminal de la personne à qui je donne ce fichier. Il a également un terminal MT4, build 910 et MetaEditor Version : 5.00 build 1214 12 Nov 2015.

Le fichier source de l'indicateur qu'il a compilé crée normalement un exécutable qui fonctionne correctement dans son terminal.

Quelles sont ces erreurs ?

Et alors la question évidente se pose : comment les programmes compilés dans mon éditeur se comporteront-ils pour le marché ? La version du terminal est 910, mais elle est incompatible avec les versions antérieures à cause du nouveau compilateur. Les programmes compilés dans mon éditeur fonctionneront-ils sur la place de marché ?

 

Pourquoi la qualité de l'icône de ce terminal.exe est-elle si mauvaise ? Il est utilisé pour afficher tous les .ex5s dans le système de fichiers.

(3ème du terminal.exe, si la numérotation est à partir de 1)

Les autres icônes sont de qualité normale, par ex.

(1er) et(dernier)

 

Erreur de compilation : erreur d'optimisation de l'arbre

#property library
class A {};
A *f() export { return new A; }
void g() {}
int h( int a, int b ) { return b; }
class B {
       virtual int function() { return h( int(g()), 1 ); }
};

Mais si vous enlevez le mot clé virtuel

class B {
              int function() { return h( int(g()), 1 ); }
};
alors c'est bon. Quel effet cela a-t-il eu ?
 
A100:

Erreur de compilation : erreur d'optimisation de l'arbre

Et si vous enlevez le mot clé virtuel

alors c'est bon. Quel effet cela a-t-il eu ?
Les méthodes peuvent-elles aussi être exportées maintenant ? Les cours sont-ils également disponibles à l'exportation ?
 
coderex:
? ?? Est-ce que j'ai raté quelque chose ? Les méthodes peuvent-elles aussi être exportées maintenant ? Et des cours pour l'exportation sont également disponibles ?

Quelle ligne indique que la méthode a été exportée ? Le pointeur peut toujours être renvoyé. f() n'est pas une méthode de classe - c'est une fonction en soi.

Par ailleurs, nous entendons l'erreur abstraite d'optimisation de l'arbre, qui n'est pas liée à une chaîne de caractères particulière, ce qui constitue une erreur en soi. En outre, s'il peut être résolu par un simple "réarrangement des chaînes" (en supprimant le mot clé "virtuel"), il s'agit d'une double erreur.

 
A100:

Quelle ligne indique que la méthode a été exportée ? Le pointeur peut toujours être renvoyé. f() n'est pas une méthode de classe - c'est une fonction en soi.

Par ailleurs, nous entendons l'erreur abstraite d'optimisation de l'arbre, qui n'est pas liée à une chaîne de caractères particulière, ce qui constitue une erreur en soi. En outre, s'il peut être résolu par un simple "réarrangement des chaînes" (en supprimant le mot clé "virtuel"), il s'agit d'une double erreur.

J'ai fait une erreur, à propos de la méthode, je voulais écrire un objet de classe (c'est la nuit après tout :) ).

A *f() export { return new A; }

et je ne conteste pas ce que vous avez écrit, je suis juste surpris, parce que dans l'aide il est dit que l'exportation ne concerne que les fonctions, et il s'avère que vous pouvez exporter des objets aussi.

 
BaTTLeBLooM:

Qu'est-il arrivé à MT5 ?

Je me suis levé ce matin et aucun EA du testeur de stratégie ne fonctionne... aucun poste ouvert...

Hier soir, ils ont tous fonctionné... aujourd'hui, plus de 10 EA ont cessé de fonctionner.

anciens et nouveaux

Décrivez le problème de manière plus détaillée. Quelle construction, quel système d'exploitation, quel débit binaire ? Qu'y a-t-il dans les journaux des testeurs ?
 
Artyom Trishkin:

Ce qui est amusant c'est que le fichier ex4 compilé dans mon MetaEditor Version : 5.00 build 1214 12 Nov 2015 n'affiche pas les objets graphiques dans le terminal de la personne à qui je donne ce fichier. Il a également un terminal MT4, build 910 et MetaEditor Version : 5.00 build 1214 12 Nov 2015.

Le fichier source de l'indicateur qu'il a compilé crée normalement un exécutable qui fonctionne correctement dans son terminal.

Quelles sont ces erreurs ?

Ecrivez à servicedesk (joignez le code source), nous essaierons de le reproduire.