Erreurs, bugs, questions - page 1333

 
Sergey Kucher:

Je me demande ce que cela signifierait ? Très intéressant. Surtout sur un vrai compte. Sans rien vérifier, mon courtier s'est mis à jour, voici le résultat.

Terminal MT4, b. 845 avant la mise à niveau,
Et après la mise à niveau vers B. 851

Et ainsi de suite dans tous les terminaux sur toutes les paires. W XP 32 bit.

Qu'allons-nous faire ? Jusqu'à présent, une joie fabuleuse.

Besoin de plus de détails et d'indicateurs pour reproduire le problème. Écrivez à Servicedesk.

 
Alexander:

Besoin de plus de détails et d'indicateurs pour reproduire le problème. Écrivez à Servicedesk.

Essayez d'installer cet indicateur sur MT4 build 851 et tout deviendra clair.
Dossiers :
OSMA1.mq4  3 kb
 
Sergey Kucher:
Essayez d'installer cet indicateur sur MT4 build 851 et tout deviendra clair.
Vérifiez
 

Chers développeurs !

Il manque à la classe CCanvas une fonctionnalité importante : l'épaisseur du dessin. Cela soulève une question : ajouterez-vous cette fonctionnalité à la classe CCanvas ?

Si vous ne prévoyez pas d'ajouter cette fonctionnalité, veuillez rendre la méthode PixelSet virtuelle, sinon vous devrez réécrire la moitié de la classe en héritage. Et je considère que c'est une mauvaise idée de changer quoi que ce soit dans les classes de la bibliothèque standard et même nuisible, car lorsque vous mettez à jour le terminal ou que vous l'installez, vous devrez tout changer à nouveau, et vous ne pouvez pas vous souvenir de tous les changements après un certain temps.

Voici la classe CCanvasNew comme classe héritée. Pour que la classe fonctionne correctement, vous devez modifier la méthode PixelSet de la classe de base CCanvas, c'est-à-dire la rendre virtuelle.

La ligne :

void              PixelSet(const int x,const int y,const uint clr);

remplacer par :

virtual void      PixelSet(const int x,const int y,const uint clr);
Dossiers :
CanvasNew.mqh  5 kb
 

Erreur lors de la compilation

#property library
class name {};
class A {
public:
        int name() { Print( __FUNCTION__ ); return 0; }
        void f();
};
void A::f()
{
                name(); //1//нормально - вызывается A::name()
        int i = name(); //2//ошибка при компиляции
}
void OnStart()
{
	A a;
	a.f();
}
quelle est la différence entre 1 et 2 ?
 

Explication de la demande #1268334

Bloc-notes

MetaEditor

 

La documentation indique :

"Les variables globales existent dans le terminal du client pendant 4 semaines après le dernier accès, après quoi elles sont automatiquement supprimées. Un accès à une variable globale ne consiste pas seulement à définir une nouvelle valeur, mais aussi à lire la valeur de la variable globale" .

Je fais lire des variables globales tous les jours. Et malgré cela, ils sont toujours détruits. Je dois les recréer chaque mois. J'aimerais vraiment que vous corrigiez cette incohérence dans la documentation de MT4.

 
Igor733:

La documentation indique :

"Les variables globales existent dans le terminal du client pendant 4 semaines après le dernier accès, après quoi elles sont automatiquement supprimées. Un accès à une variable globale ne consiste pas seulement à définir une nouvelle valeur, mais aussi à lire la valeur de la variable globale" .

Je fais lire les variables globales tous les jours. Et malgré cela, ils sont toujours détruits. Je dois les recréer chaque mois. J'aimerais vraiment que vous corrigiez cette incohérence dans la documentation de MT4.

Êtes-vous sûr de ne pas avoir confondu le terme "Variable globale" avec "Variable globale du terminal du client" ?
 

Tapochun:
А Вы точно не перепутали понятие "Глобальная переменная" и "Глобальная переменная клиентского терминала

Je voulais dire les variables terminales. Pas mélangé. GlobalVariableSet("_LastBalance",MathMax(AccountEquity(),GlobalVariableGet("_LastBalance"))) ; Si vous créez une variable à partir du terminal et que vous ne la lisez ensuite que dans l'EA, elle sera toujours supprimée au bout d'un mois.
 

Igor733:

Je voulais dire les variables terminales. Pas mélangé.

GlobalVariableSet("_LastBalance",MathMax(AccountEquity(),GlobalVariableGet("_LastBalance")) ;

Si vous créez une variable à partir du terminal et que vous ne la lisez que dans le conseiller expert, elle sera de toute façon supprimée dans un mois.

Ensuite, faites une demande au Service Desk.
Raison: