Erreurs, bugs, questions - page 1876

 

1. Quand y aura-t-il une description du syndicat dans la documentation ?

2) Peut-il remplacer les structures simples?

3. la conversion du type d'union sera-t-elle prise en charge comme décrit pour les structures dans la documentation ?

 

Voici comment utiliser l'union pour copier une structure dans un tableau de caractères :

struct DATA
  {
   int      var1;
   uint     var2;
   float    var3;
   double   var4;
  };

union NAME_BIT
  {
   char  buff[20];
   DATA  data;
   NAME_BIT() {
      ArrayInitialize(buff, 0);
   }
  };

int OnInit() {
   NAME_BIT _space, _un_space;
   _space.data.var1 = 100;
   _space.data.var2 = 78;
   _space.data.var3 = 1.999 f;
   _space.data.var4 = .0357;
   
   ArrayCopy(_un_space.buff, _space.buff);
   
//---
   return INIT_SUCCEEDED;
}

donc vous pouvez essayer de résoudre le problème ici. En fait, tout ce qui était dans_space a été copié dans_un_space, la principale chose à propos de l'alignement des structures n'est pas d'oublier la taille du tampon du tableau, bien que j'ai changé l'emplacement des champs dans la structure et les données sont toujours copiées correctement, mais il est préférable de s'en tenir à l'alignement des structures. C'est une béquille, mais au moins c'est comme ça :))

 
Alexey Viktorov:

Pourquoi le tableau est-il mis à zéro deux fois ?

)) j'ai oublié de supprimer, juste initialiser et c'est tout, déjà corrigé ;))
 
MetaEditor se bloque sur F7
union UNION
{
  uchar Bytes[sizeof(MqlTick)];
  MqlTick Tick;
};

void OnStart()
{
  UNION a, b;
   
  a = b;
}
 
Konstantin:

probablement parce que la taille du tableau doit être déclarée comme une constante, d'autant plus que la taille de MqlTick ne changera évidemment pas ;))
Un tableau est déclaré comme une constante. Crash de l'éditeur.
 
fxsaber:
MetaEditor se bloque sur F7

même chanson, très probablement due à la copie a = b ; sans elle, tout va bien
 
fxsaber:
Array et est déclaré comme une constante. Crash de l'éditeur.

je n'ai pas eu le temps d'effacer))
 
Pouvez-vous me dire s'il est prévu d'ajouter l'utilisation d'un modèle au syndicat, afin que vous puissiez le faire :
template<typename T>
union structToBytes
{
  uchar bytes[sizeof(T)];
  T data;
};
 

Quel est le délai pour vider le cache de l'agent de test dans MT5 ?

Mais dans mon cas, cela se passe ainsi - j'ai optimisé, puis j'ai exécuté le test sur des ticks réels et dans ce cas, le cache pour 6 Go est créé. Lorsque je change la date du test, le cache est libéré.

Mais ici, j'ai un cache est écrasé en 5 minutes - est-il normal ? Si vous ne redémarrez pas le test, c'est-à-dire, s'est éloigné de l'ordinateur, est revenu, et il écrit à nouveau à vous ici et là 6GB, pas de disque dur n'est pas suffisant, sera effacé.

N'est-il pas plus logique de vider le cache lorsque vous modifiez la date du test, le conseiller ou lorsque vous déchargez le terminal ?

 
kaus_bonus:

Quel est le délai pour vider le cache de l'agent de test dans MT5 ?



vous avez demandé et vous avez répondu))

J'obtiens que le temps d'effacement du cache est de 6 min. Après ce temps, le dossier temporaire de l'agent de test est effacé, puis la préparation des données reprend.

C'est ridicule.

Raison: