Erreurs, bugs, questions - page 1824

 
Комбинатор:
L'exécuter en tant qu'administrateur n'aide pas ?
Je ne l'ai pas essayé. Ce n'est jamais arrivé avant, avant la version 1045. Et ce n'est pas tout le temps maintenant non plus. Il peut fonctionner pendant une demi-journée, puis rencontrer cette erreur.

J'étais sur le point de redémarrer les fenêtres, de fermer l'éditeur mql5, de fermer l'éditeur mql4 et de fermer les terminaux MT5 et MT4. Mais j'avais besoin de regarder quelque chose dans l'éditeur mql4. Je l'ai ouvert à nouveau et, oh mon dieu, le fichier s'est compilé. Maintenant je pense que deux éditeurs, mql4 et mql5, travaillent simultanément. Il est étrange que les mêmes fichiers provenant de différents répertoires ne soient pas ouverts dans ces derniers.

Mais, je vais les regarder travailler ensemble.
 
fxsaber:

Sélectionné. Le zéro ne se produit qu'après le premier passage et pas nécessairement sur les symboles SGD.

SGDJPY est entré dans la source par accident. Le résultat est déjà affiché pour la version corrigée, où "SGDJPY" est remplacé par _Symbol.

A-t-il pu le reproduire ?

C'est la même chose sur la 4. J'ai même mis un commentaire dessus pour ne pas l'oublier. Maintenant, j'ai mis à jour MT4 à 1052 - le bug n'est pas supprimé. L'exécuter sous administrateur n'aide pas (réponse à Combinator)

Voici le code de la fonction pour MQL4, je l'utilise dans un indicateur, elle est appelée dans OnCalculate. Si j'ajoute l'indicateur au graphique, tout est OK. Mais si je redémarre le terminal - plusieurs valeurs nulles, voir la sortie à la fin du post.

bool Quote2Price(double diff,double &price4lot,string symbol="EURUSD")
  {
   int dig=(int)MarketInfo(symbol,MODE_DIGITS);
   if(dig == 0)
      return(false); // symbol is none
   double tickSizeMarketInfo = MarketInfo(symbol, MODE_TICKSIZE);   // пункт в валюте котировки (0,00001 для EURUSD на 5-знаке)
   double tickValue, tickSize2;
   if(!SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE, tickValue)) // пункт в валюте депозита ($1 для EURUSD на 5-знаке)
      Print(__FUNCTION__, "  SymbolInfoDouble(...SYMBOL_TRADE_TICK_VALUE) returns false");
   if(!SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_SIZE, tickSize2)) // пункт в валюте депозита ($1 для EURUSD на 5-знаке)
      Print(__FUNCTION__, "  SymbolInfoDouble(...SYMBOL_TRADE_TICK_SIZE) returns false");
      
   Print("tickSizeMarketInfo= ", tickSizeMarketInfo, "  tickSize2= ", tickSize2, "  tickValue= ", tickValue);
   if(tickSizeMarketInfo == 0 || tickSize2 == 0 || tickValue == 0.0)
      return false;
   double price=diff/(tickSize2/tickValue);
   price4lot=NormalizeDouble(price,2);
   return (true);
  }


Sortie après le redémarrage du terminal :

2017.03.01 00:31:43.588 ShowImportantParams EURUSD.e,M5 : tickSizeMarketInfo= 1e-05 tickSize2= 1e-05 tickValue= 1.0

2017.03.01 00:31:43.460 ShowImportantParams EURUSD.e,M5 : tickSizeMarketInfo= 1e-05 tickSize2= 1e-05 tickValue= 1.0

2017.03.01 00:31:43.351 ShowImportantParams EURUSD.e,M5 : tickSizeMarketInfo= 1e-05 tickSize2= 1e-05 tickValue= 1.0

2017.03.01 00:31:42.961 ShowImportantParams EURUSD.e,M5 : tickSizeMarketInfo= 1e-05 tickSize2= 1e-05tickValue= 0.0

2017.03.01 00:31:42.910 ShowImportantParams EURUSD.e,M5 : tickSizeMarketInfo= 1e-05 tickSize2= 1e-05tickValue= 0.0

2017.03.01 00:31:42.866 ShowImportantParams EURUSD.e,M5 : tickSizeMarketInfo= 1e-05 tickSize2= 1e-05tickValue= 0.0

2017.03.01 00:31:42.301 ShowImportantParams EURUSD.e,M5 : tickSizeMarketInfo= 1e-05 tickSize2= 1e-05tickValue= 0.0

2017.03.01 00:31:41.116 ShowImportantParams EURUSD.e,M5 : tickSizeMarketInfo= 1e-05 tickSize2= 1e-05tickValue= 0.0

2017.03.01 00:31:41.116 ShowImportantParams EURUSD.e,M5 : initialisé

2017.03.01 00:31:41.080 Indicateur personnalisé ShowImportantParams EURUSD.e,M5 : chargé avec succès


 
Alexey Volchanskiy:

C'est la même chose sur le quatre. J'ai même un commentaire permanent pour m'assurer de ne pas l'oublier.

Je vous suggère de vous souvenir de tous les problèmes et de les poster ici. Si vous ne les signalez pas, il y aura toujours des trous.
 
Artyom Trishkin:
Je ne l'ai pas essayé. Cela n'arrivait jamais avant la version 1045. Et ça n'arrive pas tout le temps maintenant non plus. Vous pouvez travailler pendant une demi-journée, puis tomber sur cette erreur.

J'étais sur le point de redémarrer les fenêtres, de fermer l'éditeur mql5, de fermer l'éditeur mql4 et de fermer les terminaux MT5 et MT4. Mais j'avais besoin de regarder quelque chose dans l'éditeur mql4. Je l'ai ouvert à nouveau et, oh mon dieu, le fichier s'est compilé. Maintenant je pense que deux éditeurs, mql4 et mql5, travaillent simultanément. Il est étrange que les mêmes fichiers provenant de différents répertoires ne soient pas ouverts dans ces derniers.

Mais, je les regarderai travailler ensemble.
Cela ne fait aucune différence - de temps en temps, une erreur se produit, qu'un ou deux éditeurs soient en cours d'exécution :

2017.03.01 01:43:30.843 MetaTrader 4 build 1052 started (MetaQuotes Software Corp.)
2017.03.01 01:43:30.844 Windows 10 Home (x64 based PC), IE 11.00, UAC, 4 x Intel Core i3-3217 U  @ 1.80 GHz, RAM: 1540 / 5005 Mb, HDD: 10397 / 260234 Mb, GMT+07:00
2017.03.01 01:43:30.844 Data Folder: D:\New MT4
L'épopée des erreurs continue :
EX4 write error         0       0
Redémarrer constamment Windows pour pouvoir continuer à travailler rend le travail tout simplement insupportable.
 
Artyom Trishkin:
Aucune différence - l'erreur apparaît de temps en temps, qu'un ou deux éditeurs soient en cours d'exécution :

2017.03.01 01:43:30.843 MetaTrader 4 build 1052 started (MetaQuotes Software Corp.)
2017.03.01 01:43:30.844 Windows 10 Home (x64 based PC), IE 11.00, UAC, 4 x Intel Core i3-3217 U  @ 1.80 GHz, RAM: 1540 / 5005 Mb, HDD: 10397 / 260234 Mb, GMT+07:00
2017.03.01 01:43:30.844 Data Folder: D:\New MT4
L'épopée des erreurs continue :
EX4 write error         0       0
Le redémarrage constant de Windows pour pouvoir continuer à travailler rend le travail tout simplement insupportable.
Le problème se produit-il également en mode /portable ?
 
Andrey Dik:
Le mode /portable pose-t-il également un problème ?
C'est le mode /portable :
2017.03.01 01:43:30.844 Data Folder: D:\New MT4
 
Artyom Trishkin:
C'est le mode /portable :
2017.03.01 01:43:30.844 Data Folder: D:\New MT4
vous devez regarder les utilisateurs des dossiers concernés, je ne pense pas que MT4 soit à blâmer pour quoi que ce soit, cela ressemble à un problème d'accès aux dossiers. peut-être qu'un processus caché bloque l'accès.
 
Andrey Dik:
vous devez regarder les utilisateurs des dossiers concernés, je ne pense pas que ce soit la faute de MT4, il semble qu'il y ait un problème d'accès aux dossiers. peut-être qu'un processus caché bloque l'accès.
Que faire d'eux ?

 
Artyom Trishkin:
C'est le mode /portable :
2017.03.01 01:43:30.844 Data Folder: D:\New MT4
Artem, quelle a été la réponse du SD ? Ou ne l'a même pas abordé ?
 
Alexey Viktorov:
Artyom, quelle a été la réponse du SR ? Ou vous ne les avez même pas contactés ?
Je ne les ai contactés qu'aujourd'hui - j'essayais de trouver les conditions dans lesquelles le problème était résolu. Je n'ai rien vu de clair.
Raison: