Erreurs, bugs, questions - page 1813

 
Sergey Dzyublik:

Sous chrome 56.0.2924.87, le vol se passe bien, avec et sans rafraîchissement manuel de la page d'examen.

Lamention "plainte|réponse" n'apparaît pas sur votre page ? Je ne peux pas modifier ou supprimer mes critiques.
 
fxsaber:
Pouvez-vous me dire comment ?
Google vous aidera.

Mais dans Chrome, vous pouvez le faire comme ceci :
Appuyez sur F12 sur www.mql5.com => dans le tableau de bord, allez dans Application => Cookies => cliquez sur les cookies => Effacer tout de...
 
Sergey Dzyublik:
Google aide.

Mais dans Chrome, vous pouvez le faire comme ceci:
Appuyez sur F12 tout en naviguant sur www.mql5.com => dans le tableau de bord, allez dans Application => Cookies => cliquez sur les cookies => Effacer tous les...

Il n'y en a pas.

 
Sergei Vladimirov:

Il est en train de jouer. J'ai écrit votre code dans le script, il a donné une valeur correcte (1001199) lorsqu'il a été exécuté en mode débogage, mais si je compile la version et l'exécute à partir de l'arbre dans MT5, il a donné 11199 de manière stable. J'ai pu localiser.

Il s'agit en fait d'un bogue de compilateur, à écrire à servicedesk.

Merci, écrivez au Service Desk.
 
fxsaber:

Il n'y en a pas.

Voir la photo. Version 56.0.2924.87
Dossiers :
Ch.jpg  187 kb
 

Veuillez conseiller

MT4 a commencé à peser 1,8 Gbytes (RAM). Il a mangé tout l'UPU, le deuxième terminal ne peut pas être allumé correctement. Des suggestions sur la façon de "nettoyer" la RAM de MT ?

 
Ivan Butko:

Veuillez conseiller

MT4 a commencé à peser 1,8 Gbytes (RAM). Il a mangé tout l'UPU, le deuxième terminal ne peut pas être allumé correctement. Des suggestions sur la façon de "nettoyer" la RAM de MT ?

Avez-vous essayé de redémarrer le terminal ?

La mémoire est libérée si je réduis le nombre de barres sur le graphique, mais je dois ensuite redémarrer.

 
-Aleks-:

Avez-vous essayé de redémarrer le terminal ?

La mémoire est libérée si vous réduisez le nombre de barres sur le graphique, mais vous devez alors redémarrer.

J'ai essayé avant, ça a duré une semaine, maintenant encore. J'ai supprimé les barres au minimum (elles étaient au maximum), je vais essayer ceci, merci.
 

Erreur dans la détermination du type de paramètre de l'indicateur ENUM_DATATYPE.

J'exécute un indicateur de test. Dans les paramètres d'entrée, chaque paramètre a un type unique :

#property indicator_chart_window
#property indicator_plots 0
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
input bool inpBool = false;    //1
input char inpChar = 0;        //2
input uchar inpUChar = 0;      //3
input short inpShort = 0;      //4
input ushort inpUShort=0;      //5
input color inpColor=clrWhite; //6
input int inpInt=0;            //7
input uint inpUInt=0;          //8
input datetime inpDatetime=0;  //9
input long inpLong=0;          //10
input ulong inpULong = 0;      //11
input float inpFloat = 0.0;    //12
input double inpDouble = 0.0;  //13
input string inpString = "";   //14
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   IndicatorSetString(INDICATOR_SHORTNAME,"DATATYPE");
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {

   return(rates_total);
  }
//+------------------------------------------------------------------+

Ensuite, je le recherche dans le script et je fais le déblocage de son type de paramètres :

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- Проверяем количество аналогичных индикаторов на всех открытых окнах
   long id=ChartFirst();
   int indicatorsTotal=0;
   int windowsTotal=0;
//---
   int ctr=0;
//---
   do
     {
      windowsTotal=(int)ChartGetInteger(id,CHART_WINDOWS_TOTAL);
      for(int i=0; i<windowsTotal; i++)
        {
         indicatorsTotal=ChartIndicatorsTotal(id,i);
         for(int j=0; j<indicatorsTotal; j++)
           {
            //Print( __FUNCTION__,": Имя индикатора: "+ChartIndicatorName( id, i, j ) );
            //---
            string shortName=ChartIndicatorName(id,i,j);
            if(StringFind(shortName,"DATATYPE")<0)
               continue;
            else
              {
               //--- получим хэндл индикатора
               int handle=ChartIndicatorGet(id,i,shortName);
               //---
               if(handle==INVALID_HANDLE) // Если хэндл не получен
                 {
                  Print(__FUNCTION__,": ОШИБКА #",GetLastError(),": хэндл индикатора "+shortName+" не получен!");
                  return;                                 // Ошибка! Переходим к следующему индикатору
                 }
               //--- Получаем параметры индикатора
               MqlParam parameters[];                            // Массив-приемник параметров
               ENUM_INDICATOR indicator_type;                      // Тип индикатора
               //--- Получение..
               int params=IndicatorParameters(handle,indicator_type,parameters);
               //---
               for(int p=1; p<params; p++)
                  Print(__FUNCTION__,": p#",p,": type = ",EnumToString(parameters[p].type));
              }
           }
        }
     }
   while(( id=ChartNext(id))>=0);
  }

Dans la sortie, j'obtiens :

2017.02.20 09:08:58.144 test_DATATYPE (BR-3.17,M1)      OnStart: p#1: type = TYPE_BOOL
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1)      OnStart: p#2: type = TYPE_CHAR
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1)      OnStart: p#3: type = TYPE_UCHAR
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1)      OnStart: p#4: type = TYPE_SHORT
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1)      OnStart: p#5: type = TYPE_USHORT
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1)      OnStart: p#6: type = TYPE_UINT
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1)      OnStart: p#7: type = TYPE_INT
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1)      OnStart: p#8: type = TYPE_UINT
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1)      OnStart: p#9: type = TYPE_LONG
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1)      OnStart: p#10: type = TYPE_LONG
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1)      OnStart: p#11: type = TYPE_ULONG
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1)      OnStart: p#12: type = TYPE_DOUBLE
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1)      OnStart: p#13: type = TYPE_DOUBLE
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1)      OnStart: p#14: type = TYPE_STRING

Je constate qu'au lieu du type TYPE_COLOR(#6), on trouve le type TYPE_UINT, au lieu du type TYPE_DATETIME (#9), le type TYPE_LONG, au lieu du type TYPE_FLOAT (#12), le type TYPE_DOUBLE. Bien que les types TYPE_COLOR, TYPE_DATETIME et TYPE_FLOAT soient décrits dans l'énumération et doivent avoir leurs propres valeurs !

Servicedesk#1677120
 
Alexey Kozitsyn:

Erreur dans la détermination du type des paramètres de l'indicateur ENUM_DATATYPE.

Nous pouvons voir que TYPE_COLOR(#6) affiche TYPE_UINT au lieu de TYPE_DATETIME (#9), TYPE_LONG au lieu de TYPE_FLOAT(#12), TYPE_DOUBLE au lieu de TYPE. Bien que les types TYPE_COLOR, TYPE_DATETIME et TYPE_FLOAT soient décrits dans l'énumération et doivent avoir leurs propres valeurs !

On peut cependant voir la logique dans le résultat. Même float->double peut être expliqué. Je tronquerais encore plus le nombre de types de sortie. En ce sens, l'ENUM_DATATYPE semble trop large.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Идентификаторы типов данных
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Идентификаторы типов данных
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Идентификаторы типов данных - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5