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.
[Supprimé]  

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