Выпущен MetaTrader 4 Client Terminal build 600 с обновленным языком MQL4 и Маркетом приложений - страница 48

 
RickD:
Пользовательские enum'ы -в них похоже сортировка не работает в выпадающем списке - когда свойства вызываешь.

Как написали в коде, так и выводит, но в обратном порядке почему-то. Исправить бы на тот порядок, который в коде. Пример кода:

//---
enum workingPeriod 
   {
   wtfMN=PERIOD_MN1,       //  Monthly
   wtfW1=PERIOD_W1,        //  Weekly
   wtfD1=PERIOD_D1,        //  D1
   wtfH4=PERIOD_H4,        //  H4
   wtfH1=PERIOD_H1,        //  H1
   wtfM30=PERIOD_M30,      //  M30
   wtfM15=PERIOD_M15,      //  M15
   wtfM5=PERIOD_M5,        //  M5
   wtfM1=PERIOD_M1,        //  M1
   wtfM0=PERIOD_CURRENT,   //  Текущий
   };
input workingPeriod workTF  = wtfM0; // Рабочий период:
//---

И что выходит:


 
artmedia70:

Как-то так лучше:




Согласен. Как-то упустил из вида.
 
artmedia70:

Как написали в коде, так и выводит, но в обратном порядке почему-то. Исправить бы на тот порядок, который в коде. Пример кода:

И что выходит:

значения по возрастанию сортируются. вряд ли стоит менять.

теоретически можно усложнить компилятор - ввести в описателе типа дополнительное поле "порядок объявления значения", специально для сортировки при выводе в качестве инпут-переменной.

но я б не стал заморачиваться (любое усложнение - минус к надёжности).

 

Уважаемые разработчики, вопрос.

Имеем - два компа с WIN 7 64 bit

Терминалы установлены или устанавливаются с нуля не на системный диск С

Объясните, почему при обновлении терминала службой liveupdate или "чистой установки" на одном компьютере создается каталог данных по пути

C:\Users\Имя_учетной_записи\AppData\Roaming\MetaQuotes\Terminal\Instance_id

а во втором случае создается папка MQL4 в корневой папке терминала?

На основе чего установщик или служба liveupdate принимает решение о установке или обновлении с ключом "/portable"?

И если прописать этот ключ в ярлыке того терминала, где создается каталог данных - в папке установки терминала появиться папка MQL4.

А как можно принудительно заставить терминал создать каталог данных, если даже при чистой установке он не создается?

И еще замечание - создание каталога данных (запись всех необходимых данных) на диске C: - в корне не правильно! Поясню, почему.

У меня установлен под систему SSD диск объемом 60 Гиг. Но под WIN 7 этого объема маловато - все программы пишут данные на него и он уже забит почти под завязку.

Это с учетом того, что папку с документами я вынес на другой диск. А теперь получается, что и МетаТрейдер начнет писать котировки, логи и прочую инфу на диск С: и довольно быстро у меня закончиться на нем свободное место.

Не было бы логично, чтобы при установке программы на диск, отличный от диска C:, установщик не создавал бы каталог данных, а автоматом прописывал ключ "/portable" - и не засорял бы системный диск?

У меня вообще мнение - нечего терминалу делать на системной диске! Тогда и проблем с User Account Control и с записью не на системный диск - не будет!

P. S. А самым лучшим решением было бы добавить в настройки терминала опцию выбора места хранения - две строки:

Хранить данные в каталоге данных

Хранить данные в папке установки терминала

Два чекбокса и кнопку сохранить. Все, проблема решена - каждый для себя выбирает сам, что ему предпочтительней.

А то детский сад - ключи прописывать для каждого ярлыка! А если нужно запустить терминал кликом по файлу terminal.exe?

 
artmedia70:

Как написали в коде, так и выводит, но в обратном порядке почему-то. Исправить бы на тот порядок, который в коде. Пример кода:

И что выходит:



Я так понимаю - что порядок задается числовым значением. В данном случае wtfM0 первый, потому что PERIOD_CURRENT = 0.

Мой вариант, в котором True по логике должен быть на первом месте:


enum ENUM_TEST
{
  T1 = 0,    //True
  T2 = 1,    //False
  T3 = 2     //Auto
};

input ENUM_TEST MyTest = T3;
 
RickD:

Я так понимаю - что порядок задается числовым значением. В данном случае wtfM0 первый, потому что PERIOD_CURRENT = 0.

Мой вариант, в котором True по логике должен быть на первом месте:


Скорее всего - сортировка обратно тому, что написано в коде. У вас в коде:

True
False
Auto

в настройках:

Auto
False
True

Значит - обратный порядок, независимо от значения переменной.

 
artmedia70:

Скорее всего - сортировка обратно тому, что написано в коде. У вас в коде:

True
False
Auto

в настройках:

Auto
False
True

Значит - обратный порядок, независимо от значения переменной.


Ага, похоже на то. Я попробовал. Поменял порядок объявления, список перевернулся.

Вроде как баг, поправить надо.

 
aforex:

Уважаемые разработчики, вопрос.

Имеем - два компа с WIN 7 64 bit

Терминалы установлены или устанавливаются с нуля не на системный диск С

Объясните, почему при обновлении терминала службой liveupdate или "чистой установки" на одном компьютере создается каталог данных по пути

а во втором случае создается папка MQL4 в корневой папке терминала?

На основе чего установщик или служба liveupdate принимает решение о установке или обновлении с ключом "/portable"?

И если прописать этот ключ в ярлыке того терминала, где создается каталог данных - в папке установки терминала появиться папка MQL4.

А как можно принудительно заставить терминал создать каталог данных, если даже при чистой установке он не создается?

И еще замечание - создание каталога данных (запись всех необходимых данных) на диске C: - в корне не правильно! Поясню, почему.

У меня установлен под систему SSD диск объемом 60 Гиг. Но под WIN 7 этого объема маловато - все программы пишут данные на него и он уже забит почти под завязку.

Это с учетом того, что папку с документами я вынес на другой диск. А теперь получается, что и МетаТрейдер начнет писать котировки, логи и прочую инфу на диск С: и довольно быстро у меня закончиться на нем свободное место.

Не было бы логично, чтобы при установке программы на диск, отличный от диска C:, установщик не создавал бы каталог данных, а автоматом прописывал ключ "/portable" - и не засорял бы системный диск?

У меня вообще мнение - нечего терминалу делать на системной диске! Тогда и проблем с User Account Control и с записью не на системный диск - не будет!

P. S. А самым лучшим решением было бы добавить в настройки терминала опцию выбора места хранения - две строки:

Хранить данные в каталоге данных

Хранить данные в папке установки терминала

Два чекбокса и кнопку сохранить. Все, проблема решена - каждый для себя выбирает сам, что ему предпочтительней.

А то детский сад - ключи прописывать для каждого ярлыка! А если нужно запустить терминал кликом по файлу terminal.exe?


Ты не одинок, брат, но разработчикам так удобнее, им, видишь ли, так проще. Одно из прозвучавших обьяснений - что всем юзерам не прикажешь устанавливать не на системный диск терминал, как будто раньше, когда терминалы все были локальными (до 509, на 509 уже апдэйты начали на С: писаться без спросу), возникали от этого бОльшие сложности чем сейчас. На англоязычном форуме тоже многие плачут от нового билда.
 
aforex:

Объясните, почему при обновлении терминала службой liveupdate или "чистой установки" на одном компьютере создается каталог данных по пути
а во втором случае создается папка MQL4 в корневой папке терминала?


1. При выключенном UAC, МТ использует директорию MQL4 по пути, который был указан в инсталляторе терминала.
2. При включенном UAC, МТ использует директорию MQL4 по пути MT в AppData.
3. Если установить терминал при включенном UAC, но не запускать терминал, то директория в AppData не создаётся. Только при запуске терминала.

Подробнее тут: https://www.mql5.com/ru/forum/149270/page40#905163
 

Insight, спасибо, теперь понятно. Сделано тем местом, на котором сидят.

И сразу из этого же места же вылазит баг:

В МТ загружены шаблоны со сторонними индикаторами и советниками (не входящими в комплект МТ)

В процессе "ковыряния" нового МТ удалил все индикаторы из папки C:\Users\Имя_учетной_записи\AppData\Roaming\MetaQuotes\Terminal\Instance_id\MQL4\Indicators

Запустил терминал (открыты несколько окон, в них загружены сторонние шаблоны) - загрузка I7 - 70%! Будь проц немного послабей - комп бы завис наглухо!

Пока запускал диспетчер задач, разбирался что грузит и почему - прошло около 10 минут. Выяснил, что МТ строчит "со скоростью пулемета" записи в

лог "Эксперты" - "не могу открыть" ... и дальше название того, чего МТ не может открыть. За эти 10 минут МТ настрочил лог размером 1 Гиг!

Вопрос разработчикам - через сколько произойдет отказ в работе системы из-за переполнения диска С:? И когда исправите этот баг?

А были ситуации, когда советник, проработавший пол года нормально, при очень сильных движениях начал строчить в лог неизвестную

ошибку - и размер лога был 110 Гиг! И обнаружил эту ситуацию только потому, что вылезло системное сообщение о нехватке места на диске D:. Благо терминал стоял не на системном диске.

А вы по умолчанию весь мусор насильно на системный диск пишете...