Erreurs, bugs, questions - page 2545

 
Vladimir Karputov:

Ce que je ferais est le suivant : je sauvegarderais le jeu de symboles dans le dossier public / fichiers, et dans l'EA, je lirais déjà le fichier de symboles et l'ajouterais à Market Watch.

Merci, je n'avais pas pensé à ça !
 

Bonjour, une autre question sur l'utilisation de la mémoire par les agents (ils encombrent la mémoire et ne font rien), la situation n'est observée que pour les tâches provenant du cloud.

Est-ce un bug, combien de mémoire est nécessaire pour un agent ?


 
Alexey Viktorov:

N'est-ce pas le taux de change USDRUB ?

Il semble qu'il s'agisse du taux de change de la devise de dépôt par rapport aux autres devises, merci pour le conseil, je ne prêtais pas beaucoup d'attention à cet onglet.
Mais une question se pose alors : de quelle source provient ce taux ? Et est-ce opportun ?
Je soupçonne que ce taux est calculé dans le terminal à partir des devis entrants des sociétés de courtage.
Si cela est vrai, nous savons tous ce que sont les cotations des sociétés de courtage, et il n'y a aucun sens à se fier à ces calculs.
Pour être honnête, je ne comprends pas cette colonne et son fonctionnement - elle indique le taux actuel ou le taux moyen d'un actif négocié.

Mais la question était de savoir comment obtenir les valeurs de cette colonne à partir du code.
Je n'ai pas trouvé d'identifiants qui nous permettraient de travailler avec cet onglet à partir du code.

 
SEM:

Bonjour, une autre question concernant l'utilisation de la mémoire par les agents (ils encombrent la mémoire et ne font rien), la situation n'est observée que pour les tâches provenant du cloud.

Est-ce un bug, combien de mémoire est nécessaire pour un agent ?


Je viens de lire un article sur les fuites de mémoire, dues aux objets perdus.
Dans votre cas, la fuite de mémoire est évidente, vérifiez votre code pour des initialisations et desallocations/récupérations de mémoire correctes.
Si, de votre point de vue, tout est normal dans votre code, il peut s'agir d'un bogue.

 

A propos des fonctions mql SocketXXX () ce message est principalement destiné aux développeurs de Metaquotes : @Renat Fatkhullin, @Slava, @Ilyas

J'utilise le code ci-dessous pour contrôler la réception des messages sur une connexion sécurisée.

int socket;
//+------------------------------------------------------------------+
//| void OnTimer()                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
   string message;
   if(receive(message))
     {
      //--- ...     
     }
  }
//+------------------------------------------------------------------+
//| Call every X ms                                                  |
//+------------------------------------------------------------------+
bool receive(string &message)
  {
//--- ...
   char response[];
   message="";

   ResetLastError();
   uint len=SocketIsReadable(socket);
   if(len>1)
     {
      int read=SocketTlsReadAvailable(socket,response,len);

      //--- analyze the response 
      if(read>0)
        {
         //--- ...

         message=CharArrayToString(response,0,read);
         return(true);
        }
      else if(read==-1)
        {
         if(SocketIsConnected(socket))
           {
            printf("ERROR: %i, socket(%i) read: len=%i",_LastError,socket,len);
           }
         else
           {
            printf("ERROR: %i, socket(%i) not connected. len=%i",_LastError,socket,len);
            //--- ...            
           }
        }
     }
   else
     {
      if(_LastError!=0)
         printf("ERROR: %i (SocketIsReadable).",_LastError);
     }
//--- ...
   return(false);
  }

La plupart du temps, cela fonctionne correctement. Cependant, de temps en temps, j'obtiens un message d'erreur bien que le socket soit connecté, et après un certain temps (1 à 5/6 erreurs), il continue à fonctionner.

... données / messages reçus correctement

2019.08.29 00 : 45 : 43.019 XXXX (EURUSD, H1) ERROR : 5273, socket (1), read : len = 437
2019.08.29 00 : 45 : 43.237 XXXX (EURUSD, H1) ERROR : 5273, socket (1), read : len = 1242

... données / messages reçus correctement

L'erreur 5273 est très courante et n'aide pas beaucoup. Est-il possible d'obtenir plus d'informations sur ces erreurs ?

 
Bonjour ! J'ai vraiment besoin de conseils ! Je suis sûr que quelqu'un a déjà rencontré ce problème. Toutes mes excuses si le sujet est répété !
J'ai cherché le problème sur Google, je n'ai rien trouvé d'utile, sur les forums, les fils de discussion ne sont pas actifs, sans réponse depuis plusieurs années !

J'ai donc téléchargé le conseiller expert hier et l'ai installé dans le terminal. J'ai installé tous les fichiers dans tous les dossiers de mon terminal. Le conseiller expert est constitué de backtests réalisés pour chaque paire séparément (7 paires) et d'un fichier portant l'extension .dll.

Le problème est le suivant :
Lorsque je lance le conseiller expert, dans la section "Experts", j'écris ce qui suit :
FX_Lightning_2.0_EURUSD_H1_V2 EURUSD,H1 : appel de la fonction 'MqlLock_5148A195_12_1111i11I1' depuis la dll 'FXFlash.dll' erreur critique c0000005 à 6AF6DA83.

Or : FX_Lightning_2.0_EURUSD_H1_V2 EURUSD,H1 : cannot load library 'fxftrap.dll' (error 126)

Mais sur l'écran du terminal, il est écrit :
FX Flash V1.5 est actif et fonctionne
Si vous rencontrez des problèmes
Veuillez consulter l'onglet Journal et Experts

Des conseils pour savoir où creuser ? Qu'est-ce que je fais de mal ?
 
Roman:

Je viens de lire un article sur les fuites de mémoire, dues aux objets perdus.
Dans votre cas, la fuite de mémoire est évidente, vérifiez votre code pour des initialisations et des allocations/récupérations de mémoire correctes.
Si, de votre point de vue, tout est normal dans votre code, il peut s'agir d'un bogue.

Le problème ne se pose qu'avec les tâches provenant du cloud (c'est-à-dire que ce n'est pas mon code).

 
JetFlash:
Bonjour ! J'ai vraiment besoin de conseils ! Je suis sûr que quelqu'un a déjà rencontré ce problème. Toutes mes excuses si le sujet est répété !
J'ai cherché le problème sur Google, je n'ai rien trouvé d'utile, sur les forums, les fils de discussion ne sont pas actifs, sans réponse depuis plusieurs années !

J'ai donc téléchargé le conseiller expert hier et l'ai installé dans le terminal. J'ai installé tous les fichiers dans tous les dossiers de mon terminal. J'ai vérifié tous les paramètres. Le conseiller expert consiste en des backtests, qui sont réalisés pour chaque paire séparément (7 paires) et le fichier avec l'extension .dll.

Le problème est que

Pouvez-vous me dire où creuser ? Qu'est-ce que je fais de mal ?

Ce n'est pas un problème de forum, c'est le problème de l'auteur. Veuillez contacter l'auteur .
 
Vladislav Andruschenko:

Ce n'est pas le problème du forum, c'est le problème de l'auteur. Contactez l'auteur .
Ehhh... si seulement il y avait un auteur)
Je l'ai téléchargé sur internet (site forex)... et le dernier commentaire y a été écrit il y a 6 ans...
Mais je comprends votre point de vue et je vous remercie quand même !
 
JetFlash:
Ehhh... si seulement il y avait un auteur)
Je l'ai téléchargé sur internet (site forex)... et le dernier commentaire y a été écrit il y a 6 ans...
Mais je comprends votre point de vue et je vous remercie quand même !
Cherchez la source de la bibliothèque, ils pourront peut-être vous aider...