Выпущена бета-версия MetaTrader 4 Build 529 с новым компилятором - страница 21

 

Добавляю такие строки в исходник индикатора:

#property version             "1.00"
#property description         "This indicator looks for two consecutive fractal and puts signal pointers"
#property description         "Flag DrawArrowSig : true = Set signal arrow, false = No set signal arrow"
#property icon                "\\files\\FindTwoFractals32x32.ico";

Вот что имеем в итоге:


Отсюда вопрос:

  1. Ресурсы вообще в индикаторах возможно использовать?
  2. Верно ли указан путь к файлу иконки "\\files\\FindTwoFractals32x32.ico"; если действительное расположение файла D:\NewMT4\MQL4\files и терминал с МЕ запускаются /portable
  3. Какой размер в пикселях допустим для иконки?
Спасибо.
 
artmedia70:

Добавляю такие строки в исходник индикатора:

Вот что имеем в итоге:


Отсюда вопрос:

  1. Ресурсы вообще в индикаторах возможно использовать?
  2. Верно ли указан путь к файлу иконки "\\files\\FindTwoFractals32x32.ico"; если действительное расположение файла D:\NewMT4\MQL4\files и терминал с МЕ запускаются /portable
  3. Какой размер в пикселях допустим для иконки?
Спасибо.


1. можно. окно мы переделаем в такой же вид как у МТ5

2. Посмотрите "Файл - Открыть каталог данных". Именно оттуда и будет считаться путь

3. Лучше использовать полный набор (несколько иконок в одном файле) от 16х16 до 64х64 (128х128) .ico файлов. Скоро прямо в интерфейсе операционки программы будут показываться со своими родными иконками.

Про ресурсы можно еще почитать:

 

Очень удобную фишку Вы сделали при создании параметров типа extern и input, подмену переменной её описанием после //

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

 
double  iBands(
   string       symbol,           // имя символа
   int          timeframe,        // таймфрейм
   int          period,           // период
   int          deviation,        // отклонение
   int          bands_shift,      // сдвиг относительно цены
   int          applied_price,    // тип цены
   int          mode,             // индекс линии
   int          shift             // сдвиг
   );
У deviation тип double должен быть.
 

В основном проблема решается внятным именованием переменных в прототипе. То есть, не typ1, typ2, а transaction_type, trade_operation и тд.

Если есть перечисляемые значения, то их лучше описывать через enum, что потом дает возможность автоматической подстановки во время редактирования.

 
Renat:
Мы все приводим к единому виду ради совместимости с UAC. Миграция каталогов в 534 билде завершена.

Т.е. 534 билд не один? Вопрос возникает сам собой, т.к. у меня стоит 534 билд, терминал установлен не в X:\Program Files (x86) и не в X:\Program Files, ОС Windows 7, права в системе администратора, на всякий случай выставил на каталогах и подкаталогах терминала полный доступ, а "мусор" все равно создается в X:\Users\xxx\AppData\Roaming\MetaQuotes\. При этом "мусор" в Х:\ProgramData\MetaQuotes так же создается. В 529 билде при всем указанном выше, мусор в X:\Users\xxx\AppData\Roaming\MetaQuotes\ не создавался.

Забыл, параметр /portable включен.

 
Что это за загадочный параметр "/portable"? Где его надо включать? Или не надо?
 
Zhunko:
Что это за загадочный параметр "/portable"? Где его надо включать? Или не надо?
Параметр принудительно запускает терминал в своей песочнице, включается при запуске терминала либо едитора. По идее не должен давать программе создавать мусор в системе. Я создал батник - start terminal.exe /portable
 
Barbarian:

Т.е. 534 билд не один? Вопрос возникает сам собой, т.к. у меня стоит 534 билд, терминал установлен не в X:\Program Files (x86) и не в X:\Program Files, ОС Windows 7, права в системе администратора, на всякий случай выставил на каталогах и подкаталогах терминала полный доступ, а "мусор" все равно создается в X:\Users\xxx\AppData\Roaming\MetaQuotes\. При этом "мусор" в Х:\ProgramData\MetaQuotes так же создается. В 529 билде при всем указанном выше, мусор в X:\Users\xxx\AppData\Roaming\MetaQuotes\ не создавался.

Забыл, параметр /portable включен.

Билд один.

32 битные приложения на 64 битном Windows ставятся исключительно в Program Files (x86) - таковы требования совместимости от Microsoft.

Каталоги данных в области Users/AppData - это уже не мусор, и уже не рекомендации Microsoft (на которые все разработчики плевали много лет), а суровая правда жизни. В последних операционках Microsoft кувалдой всех загнал работать правильно, ибо по другому с UAC никак не совладать. На массовом рынке остается только такой путь. Считайте, что UAC включен везде и никогда не отключается.

Чтобы принудительно заставить терминал большую часть данных сохранять в локальном каталоге или работать в портабельном/переносимом(например, на флешке) режиме, нужно использовать флаг /portable. Но это все равно не касается хранения общих неперсонализованных данных в Users/AppData.

 
Barbarian:
Параметр принудительно запускает терминал в своей песочнице, включается при запуске терминала либо едитора. По идее не должен давать программе создавать мусор в системе. Я создал батник - start terminal.exe /portable
Странно... Разве это не должно быть по умолчанию, как раньше?
Причина обращения: