Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1044

 
Konstantin Nikitin:

А вообще можно настроить Excel чтоб ставилась точка, а не запятая.

Настраиваются Региональные параметры в самой операционной системе.

 
Eduard Shpigelman:
Открыто два ордера, но функция OrdersTotal() возвращает 0. В чём может быть причина? Спасибо.

MQL5: Примеры:

 
Konstantin Nikitin:

А вообще можно настроить Excel чтоб ставилась точка, а не запятая.

Можно. Только не в Excell, а в ОС.


 
Alexey Viktorov:

Можно. Только не в Excell, а в ОС.

Помню, что что-то можно настроить. Уже давно не забивал этим себе голову. Но главное, что можно...

 

В общем получилось следующее:

Для удобства, пришлось таблицы в Excel переработать таким образом, что бы все нужные данные собрались в одном первом(А) столбце, в столбик. Считывать с крайне левого столбца и перевести всё в double оказалось удобней чем собирать их по всем строкам. Код в конце принял следующую форму:

//+------------------------------------------------------------------+
//дата 
   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:

ДЕКОМПИЛЯЦИЯ ЗАПРЕЩЕНА!

А причем тут декомпиляция, я не понял?

 
Roman Sharanov:

А причем тут декомпиляция, я не понял?

Может быть вы выложили декомпилированный код? Может просили что-то ещё, что связано с декомпиляцией исполняемого файла?

 
Нет, просто некомпетентность того, кто вынес суждение. 
 
Не берусь утверждать ,что это был модератор. 
 

Запутался в правильном написании условия, хэлп:

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