Erreurs, bugs, questions - page 1591

 

Question pour les connaisseurs.

J'ai besoin de déterminer la quantité de mémoire que je peux utiliser pour la requête CopyTicks afin de ne pas tomber en panne de mémoire.

Malheureusement, le terminal ne me permet pas de connaître la quantité de mémoire disponible dont je dispose actuellement.

J'utilise un script simple pour obtenir les informations :

void OnStart()
  {
   int memory_physical=TerminalInfoInteger(TERMINAL_MEMORY_PHYSICAL);
   printf("Physical memory in the system: %d MB",memory_physical);

   int memory_total=TerminalInfoInteger(TERMINAL_MEMORY_TOTAL);
   printf("Memory available to the process of the terminal (agent): %d MB",memory_total);

   int memory_available=TerminalInfoInteger(TERMINAL_MEMORY_AVAILABLE);
   printf("Free memory of the terminal (agent) process: %d MB",memory_available);

   int memory_used=TerminalInfoInteger(TERMINAL_MEMORY_USED);
   printf("Memory used by the terminal (agent): %d MB",memory_used);
  }

2016.05.29 09:50:50.642    MemoryTest (EURUSD,H1)    Memory used by the terminal (agent): 319 MB
2016.05.29 09:50:50.632    MemoryTest (EURUSD,H1)    Free memory of the terminal (agent) process: 23963 MB
2016.05.29 09:50:50.621    MemoryTest (EURUSD,H1)    Memory available to the process of the terminal (agent): 24282 MB
2016.05.29 09:50:50.611    MemoryTest (EURUSD,H1)    Physical memory in the system: 12141 MB

Pour une raison quelconque, la mémoire disponible est deux fois plus importante que la mémoire physique. Ce n'est pas le swap, il est petit (400 MB). Je m'attendais à ce que la valeur soit comme dans le gestionnaire de tâches, la mémoire disponible est d'environ 7000 Mo.

Qui peut me dire ce que sont ces étranges chiffres ?

 

Bonsoir, veuillez m'indiquer comment me débarrasser de l'erreur 4059 dans le testeur. Je souhaite vraiment obtenir les prix d'un autre instrument, par exemple LTCUSD, à partir d'un conseiller expert travaillant avec un instrument, par exemple LTCBTC.

void OnTick()
  {
//---
   {if(One)
   { 
      ResetLastError();
      Print("1. LTCBTC >>",MarketInfo("LTCBTC",MODE_BID));
      Print(" Error=",GetLastError());
      ResetLastError();
      Print("2. LTCUSD >>",MarketInfo("LTCUSD",MODE_BID));
      Print(" Error=",GetLastError());
      ResetLastError();
      Print("3. BTCUSD >>",MarketInfo("BTCUSD",MODE_BID));
      Print(" Error=",GetLastError());
      One=false;
   }}

  }
 
Natalja Romancheva:

Bonsoir, veuillez m'indiquer comment me débarrasser de l'erreur 4059 dans le testeur. Je souhaite vraiment obtenir les prix d'un autre instrument, par exemple LTCUSD, à partir d'un conseiller expert travaillant avec un instrument, par exemple LTCBTC.

Pas sur MT4.
 
Andrey Voytenko:

Question pour les connaisseurs.

J'ai besoin de déterminer la quantité de mémoire que je peux utiliser pour la requête CopyTicks afin de ne pas tomber en panne de mémoire.

Malheureusement, le terminal ne me permet pas de connaître la quantité de mémoire disponible dont je dispose actuellement.

J'utilise un script simple pour obtenir l'information :


Pour une raison quelconque, la mémoire disponible est deux fois plus importante que la mémoire physique. Ce n'est pas le swap, il est petit (400 MB). Je m'attendais à ce que la valeur soit comme dans le gestionnaire de tâches, la mémoire disponible est d'environ 7000 Mo.

Qui peut me dire ce que sont ces étranges chiffres ?

C'est de la mémoire virtuelle. Windows peut augmenter la taille du fichier d'échange si nécessaire.
 
admoon:
À mon avis, if()ne devrait fonctionner qu'une seule fois, lorsque la condition entre parenthèses est vraie. Mais en fait, il est déclenché à chaque vérification et toutes les expressions dans {} sont exécutées à chaque étape et font perdre du temps à la machine. Qu'est-ce que cela a à voir avec la globalité de W ? Il est juste plus facile de changer l'étape depuis le terminal que depuis l'éditeur.

Il semble que vous ayez une erreur dans votre code et que vous vouliez l'écrire comme ceci :

int i;
//---
   int co=0;
   for(i=0;i<=w;i++)
     {
      if(i==10)
        {
         co++; 
         Alert(co);
        }
     }
//--- return value of prev_calculated for next call
   return(rates_total);
 
Natalja Romancheva:

iClose + iBarShift. Le testeur dans MT4 surveille l'exactitude du prix actuel de l'instrument testé, l'exactitude des données d'autres instruments vous devez vous assurer vous-même

Et il est peu probable que vous puissiez effectuer un arbitrage efficace dans MT4.

 
Evgeniy Ilin:
Y a-t-il des modérateurs dans le coin ? J'ai envoyé une demande au vendeur, elle est en suspens depuis 3-4 jours. Combien de temps dois-je attendre ?
Alors ? Ils ont répondu. Le mien est également suspendu, mais pendant une période plus courte.
 
Alexey Navoykov:

Ça aurait dû être comme ça :

Les classes de modèles peuvent-elles être divisées en une déclaration et une implémentation ? MetaQuotes, lorsqu'il a introduit les classes de modèles, a expliqué cette limitation.
 

Bug de la variable

Build 1340 MT5.

Si vous mettez des variables :

input bool test=false;

extern bool test=false;

alors le compilateur ne donnera pas d'erreur, mais dans les paramètres de l'EA sur le graphique - ces paramètres disparaîtront.


Il s'agit donc de deux variables différentes, bien qu'elles soient identiques.

 
Vladislav Andruschenko:

Bug de la variable

Build 1340 MT5.

Si vous mettez des variables :

alors le compilateur ne donnera pas d'erreur, mais dans les paramètres de l'EA sur le graphique - ces paramètres disparaîtront.


Il s'agit donc de deux variables différentes, bien qu'elles soient identiques.

Bonne journée !


Merci de votre réaction. Nous avons reproduit le problème.