Erreurs, bugs, questions - page 2969

 
Stanislav Korotky:
Existe-t-il un moyen de savoir que le programme MQL a été lancé à la suite du démarrage du terminal (c'est-à-dire automatiquement au début de la session) et non de manière interactive par l'utilisateur ?

Vous pouvez écrire dans le fichier de raison à OnDeinit et le charger au démarrage. Si laraison du chargement étaitREASON_CLOSE, alors le programme a été chargé à la suite du démarrage du terminal(car il a été terminé à la suite de sa fermeture). Si elle n'est pas là ou une autre, différente...

Документация по MQL5: Обработка событий / OnDeinit
Документация по MQL5: Обработка событий / OnDeinit
  • www.mql5.com
OnDeinit - Обработка событий - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Stanislav Korotky:

Essayez la version corrigée de la bibliothèque de fenêtres et de contrôles ControlsPlus de cet article. Là, la caoutchoutage a été soutenu automatiquement.

Merci, mais ce n'est pas du tout ça. Besoin de modifier le code qui fonctionne sur SB

 

Bug de l'éditeur avec espace supplémentaire

https://photos.app.goo.gl/CK2KSZaKVRKMCz1S8

voici comment le bug disparaît

https://photos.app.goo.gl/bSPtMDL4MKSKpbFP6

copie de uncompilable, comme dans l'exemple


même problème dans mt5

Dossiers :
err.mq4  2 kb
err.mq5  2 kb
 
Vitaly Muzichenko:

Merci, mais ce n'est pas du tout ça. Nous devons modifier le code qui fonctionne sur le SB.

Comment ça, ce n'est pas du tout la même chose ? J'ai proposé de prendre la version SB patchée, ce qui a résolu le problème ci-dessus. Eh bien, vous êtes le patron.

 
Stanislav Korotky:
Quelqu'un peut-il partager un gestionnaire de fenêtres/chartes pratique ? Nécessité d'un tri alphabétique de la liste, d'une recherche contextuelle, d'un affichage hiérarchique de tous les EA, scripts et indicateurs chargés ; commutation rapide.

Peut-être que F2 dans le terminal d'une nouvelle construction aidera en partie.

 
Stanislav Korotky:

Comment ça, ce n'est pas du tout la même chose ? J'ai suggéré de prendre la version corrigée du SB, ce qui a résolu le problème. Eh bien, le patron est le patron.

Vous devez le porter partout, et le SB est toujours là. C'est la clé du "mal".

Ce dont vous avez besoin, c'est d'une variante du montage avec un SB.

 
Andrey Sokolov:

Bug de l'éditeur avec un espace supplémentaire

***

voici comment ce bug disparaît.

***

copie de uncompilable, comme dans l'exemple


même problème dans mt5

Les photos sont insérées à l'aide de la touche Image ou attachées à l'aide de la touche Joindre le fichier ru.

 

Malgré ce que dit la documentation, GlobalVariableCheck () ne modifie pas le temps d'accès.

Возвращаемое значение

Renvoie l'heure du dernier accès à la variable globale spécifiée. L'accès à la variable pour une valeur, par exemple en utilisant GlobalVariableGet() et GlobalVariableCheck(), modifie également le dernier temps d'accès. Pour obtenir les informations sur les erreurs, appelez GetLastError().

Corriger soit la documentation, soit le comportement de la fonction.

Документация по MQL5: Глобальные переменные терминала / GlobalVariableGet
Документация по MQL5: Глобальные переменные терминала / GlobalVariableGet
  • www.mql5.com
GlobalVariableGet - Глобальные переменные терминала - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Erreur avec la structure dérivée, où aucune nouvelle donnée n'est ajoutée lors de la sauvegarde/chargement à partir du fichier.

struct Base
  {
   int               anInt;
   double            aDouble;
                     Base(void)
     {
      anInt   = WRONG_VALUE;
      aDouble = WRONG_VALUE;
     }
  };
struct DerivedNoNew : public Base
  {
   void              Set(int iValue,double dValue)
     {
      anInt   = iValue;
      aDouble = dValue;
     }
  };

const string filename = "TestStructToFile";
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   Base base[1];
   DerivedNoNew derived[1];
   int sizeof1   = sizeof(Base);
   int sizeof3   = sizeof(DerivedNoNew);

   int handle=FileOpen(filename,FILE_BIN|FILE_WRITE);
   if(handle!=INVALID_HANDLE)
     {
      derived[0].Set(5,12.0);

      uint written1 = FileWriteStruct(handle,base[0],sizeof1);
      uint written3 = FileWriteStruct(handle,derived[0],sizeof3);   // NOT saved
      int err       = _LastError;
      FileClose(handle);
     }

   handle=FileOpen(filename,FILE_BIN|FILE_READ);
   if(handle!=INVALID_HANDLE)
     {
      uint read3  = FileReadStruct(handle,derived[0],sizeof3);      // NOT loaded
      uint read1  = FileReadStruct(handle,base[0],sizeof1);
      FileClose(handle);
     }
  }
2021.02.22 12:52:11.188 FileAndStructIssue (EURUSD,D1) Écrit 1 : 12 2 : 20 3: 0 (erreur 4003) Total : 32 FileSize : 32
2021.02.22 12:52:11.193 FileAndStructIssue (EURUSD,D1) Read 1 : 12 2 : 20 3 : 0 (error 4003) Total : 32

Dossiers :
 
Alain Verleyen:

Erreur avec la structure dérivée où aucune nouvelle donnée n'est ajoutée lors de la sauvegarde/chargement à partir d'un fichier.

Essayez de supprimer la méthode Set. Etfaites le chargement dans le même ordre que la sauvegarde !

uint read1  = FileReadStruct(handle,base[0],sizeof1);
uint read3  = FileReadStruct(handle,derived[0],sizeof3);