Erreurs, bugs, questions - page 2345

 
Erreur lors de la compilation
class A {
    static int i;
} a; //Error: unresolved static variable 'A::i'
int A::i;
Autrement :
class A {
    static A i;
} a;
A A::i;
C'est bon. Quelle différence cela fait-il ?
 

J'ai cherché sur tout le forum, je ne l'ai pas trouvé (((.

Voici ma classe :

class Myclass
  {
public:
                     Myclass();
                    ~Myclass();
   void              OnInit();
   void              OnDeinit();
   void              OnTick();
   void              OnTester();
   void              OnTimer();
  };

Je veux appeler les gestionnaires d'événements de la classe avec les fonctions standard de gestion des événements.

Comment faire une macro-substitution ? (ou un modèle de fonction... qui définira automatiquement des gestionnaires pour les instances de classe)

 
Igor Makanu:

J'ai cherché sur tout le forum, je ne l'ai pas trouvé (((.

Voici ma classe :

Je veux appeler les gestionnaires d'événements de la classe avec les fonctions standard de gestion des événements.

Comment faire une macro-substitution ? (ou un modèle de fonction..., quelque chose qui affectera automatiquement des gestionnaires aux instances de classe)

Vous pouvez voir un exemple ici.

Init_Sync
Init_Sync
  • www.mql5.com
Если в MT изменить таймфрейм или имя символа чарта, то все индикаторы на чарте выгрузятся с чарта и загрузятся на него снова. При этом, в отличие от MT4, в MT5 последовательность выгрузиться/загрузиться не определена из-за особенности внутренней архитектуры. Данное обстоятельство иногда вызывает не сразу очевидные проблемы, связанные с тем, что...
 
fxsaber:

Vous pouvez voir un exemple ici.

hélas, j'ai étudié tous vos exemples depuis une heure, je ne peux pas être un maître des définitions ;))

voici votre réponse, que j'ai faite moi-même par analogie, elle compile, tout fonctionne, mais je peux "envelopper" une instance de la classe dans une macro de substitution

class Myclass
  {
public:
                     Myclass(){};
                    ~Myclass(){};
   void              OnInit(){Print(__FUNCSIG__," выполнен");};
   void              OnDeinit();
   void              OnTick();
   void              OnTester();
   void              OnTimer(){Print(__FUNCSIG__," выполнен");};
  } m_class;
//+------------------------------------------------------------------+
#define  CHECK_INIT_TIMER m_class.OnTimer();
void OnTimer( void )
{
  CHECK_INIT_TIMER;
  ::OldOnTimer();
}
#define OnTimer OldOnTimer
//+------------------------------------------------------------------+

#define  CHECK_INIT_INIT m_class.OnInit();
void OnInit( void )
{
  CHECK_INIT_INIT;
  ::OldOnInit();
}
#define OnInit OldOnInit

mais si j'ai 3-5 instances d'une classe, comment puis-je l'envelopper dans des substitutions de macro ?

 
fxsaber:

Apportez un journal de l'heure de fermeture et des ticks réels (CTRL+U) autour de cet événement.

J'ai regardé - aucun tic, deux terminaux ont raccroché en essayant de demander - demandé pour un seul jour... mais d'après le trafic, on dirait qu'il a été téléchargé pendant tout ce temps (je télécharge les futurs, pas la colle).

Donc, s'il n'y a pas de ticks sous condition, alors quoi ?

 
Aleksey Vyazmikin:

Donc, s'il n'y a pas de tiques conventionnelles, alors quoi ?

N'importe quoi. Sur les ailerons ou l'asc aurait pu se fermer. L'étalement sur la barre peut être n'importe quoi, etc. C'est un jeu de devinettes, vraiment.

 
Igor Makanu:

Et si j'ai 3 à 5 instances de la classe, comment puis-je les intégrer dans des substitutions de macro ?

Je ne comprends pas encore la tâche.

 
fxsaber:

Je ne comprends pas encore la tâche.

Je veux écrire uniquement #include <fileclass.mqh> dans le code expert.

et ensuite déclarer 3 instances de la classe dans le code de l'Expert Advisor : Myclass m_class1, m_class2, m_class3

et que vous voulez obtenir des substitutions de macro dans les fonctions standard de traitement des événements

SZY : pour une instance du cours, vous avez aidé, conseillé où chercher - tout fonctionne, mais pour 3 instances du comment faire je ne comprends pas ((((

 
fxsaber:

N'importe quoi. Sur les nageoires ou l'asc aurait pu se fermer. L'étalement sur la barre aurait pu être n'importe quoi, etc. Un jeu de devinettes, en général.

Dans la documentation.

La différence entre le cours acheteur et le cours vendeur est appelée le spread. Lors des tests, l'écart n'est pas modélisé, mais extrait des données historiques. Si l'écart est inférieur ou égal à zéro dans les données historiques, on utilise le dernier écart connu au moment de la génération.

Comme il n'y a pas de tiques, l'écart est le même pendant tout l'intervalle de test, et il est faible.
 
Igor Makanu:

Et si j'ai 3 à 5 instances d'une classe, comment puis-je les intégrer dans une macro-substitution ?

faire un seul gestionnaire de wrapper pour la substitution de macro et ajouter des classes au gestionnaire. évidemment.