Questions des débutants MQL5 MT5 MetaTrader 5 - page 1044

 
Konstantin Nikitin:

En général, vous pouvez configurer Excel pour qu'il mette un point au lieu d'une virgule.

Vous pouvez régler les paramètres régionaux dans le système d'exploitation lui-même.

 
Eduard Shpigelman:
Deux ordres sont ouverts mais la fonction OrdersTotal() renvoie 0. Quelle peut en être la raison ? Merci.

MQL5 : Exemples :

 
Konstantin Nikitin:

En fait, vous pouvez configurer Excel pour qu'il mette un point au lieu d'une virgule.

Vous pouvez. Pas dans Excell, mais dans l'OS.


 
Alexey Viktorov:

Vous pouvez. Mais pas dans Excell, mais dans l'OS.

Je me souviens que quelque chose peut être mis en place. Ça fait longtemps que je n'ai pas eu ça en tête. Mais l'essentiel est que vous puissiez...

 

Ce que j'ai obtenu est le suivant :

Pour des raisons de commodité, j'ai dû retravailler la feuille de calcul Excel afin que toutes les données nécessaires soient rassemblées dans une première colonne (A), dans une colonne. Il s'est avéré plus pratique de lire à partir de la colonne la plus à gauche et de tout convertir en double que de les collecter à partir de toutes les lignes. Au final, le code a pris la forme suivante :

//+------------------------------------------------------------------+
//дата 
   datetime t=D'2019.05.17';
//+------------------------------------------------------------------+
   string FileName="Книга1 EURUSD.csv";
//+------------------------------------------------------------------+
   string sy[80];//количество необходимых данных
   double dy[80];//
   ArrayFill(dy,0,80,0);//явно обнуляем
   int c=0;

   int hf=FileOpen(FileName,FILE_READ|FILE_WRITE|FILE_CSV|FILE_ANSI);
   if(hf!=INVALID_HANDLE)
     {
      while(!FileIsEnding(hf))
        {
         sy[c]=FileReadString(hf);//записываем в массив string
         StringSetLength(sy[c],20);//укорачиваем строку, т.к. явно будет меньше 20 значащих цифр
         StringReplace(sy[c],";","                    "); //меняем первый(;) на 20 пробелов
         StringSetLength(sy[c],20);//ещё раз укорачиваем строку
         StringTrimRight(sy[c]);//Удаляем ненужные пробелы справа, т.о. укорачиваем строку до значащих символов
         StringReplace(sy[c],",",".");//меняем (,) на (.)
         dy[c]=StringToDouble(sy[c]);//переводим string в double и записываем в массив double

         c++;//считаем, сколько записать данных в массив
         if(c>=80)break;//выходим из цикла по окончании массива
        }
/*
      //сверяем с таблицей в Excel, если нужно
      for(int i=0;i<80;i++)
        {
         Alert("8   i=",i,"   dy[i]=",dy[i]);
        }
*/
     }
   else
     {
      Alert("Не удалось открыть h_f. Код ошибки = ",GetLastError());
      return;
     }
//+------------------------------------------------------------------+
 
Roman Sharanov:

LA DÉCOMPILATION EST INTERDITE !

Qu'est-ce que la décompilation a à voir là-dedans, je ne comprends pas ?

 
Roman Sharanov:

Qu'est-ce que la décompilation a à voir avec cela, je ne comprends pas ?

Peut-être avez-vous posté le code décompilé ? Peut-être avez-vous demandé quelque chose d'autre en rapport avec la décompilation de l'exécutable ?

 
Non, juste l'incompétence de celui qui a fait le jugement.
 
Je ne prétends pas avoir été un modérateur.
 

Je suis confus quant à l'orthographe correcte de la condition, aidez-moi :

   if ((ma_slow[0]-ma_slow[9]) > (5*Point()))
Raison: