Новая версия платформы MetaTrader 5 build 5320: сервисы в Библиотеке кодов и удобная работа с input в MQL5 - страница 6

 

Спасибо!

Работает!

 
MetaQuotes:


Используя нововведения для имен переменных, такие конструкции должны работать или нет?

Версия 1 не компилируется

//Определяем язык
#define RUSSIAN_VERSION (TerminalInfoString(TERMINAL_LANGUAGE) == "Russian")
#define LOC(ru, en) (RUSSIAN_VERSION ? ru : en)

//Использование
input(name=LOC("Период", "Period")) int InpPeriod = 14;


Версия 2 компилируется, но не срабатывает переключение

//Определяем язык
#define RUSSIAN_VERSION (TerminalInfoString(TERMINAL_LANGUAGE) == "Russian")

#ifdef RUSSIAN_VERSION
    #define LOC_PERIOD "Период"
#else
    #define LOC_PERIOD "Period"
#endif

//Использование
input(name=LOC_PERIOD) int InpPeriod = 14;
 
Roman #:

Используя нововведения для имен переменных, такие конструкции должны работать или нет?

Версия 1 не компилируется


Версия 2 компилируется, но не срабатывает переключение

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 5320: сервисы в Библиотеке кодов и удобная работа с input в MQL5

MetaQuotes, 2025.09.25 17:39

В пятницу 26 сентября 2025 года будет выпущена обновленная версия платформы MetaTrader 5.


  1. MQL5: Добавлена поддержка нового синтаксиса для входных параметров. Теперь для них можно явно задать видимое имя, которое будет отображаться в свойствах запускаемой программы. Ранее для этого использовались комментарии.

    Вместо устаревшего синтаксиса:
    input int InpVar;  /*visible name*/ // some comment
    Следует использовать:
    input(name="visible name") int InpVar;  // some comment
    Отображаемое имя переменной задается в параметре name. В качестве значения принимается только строковой литерал.

    Если используется новый синтаксис input, то все комментарии после объявления переменной будут проигнорированы. Используемый ранее синтаксис поддерживается и не помечен как устаревший. Вы можете продолжать использовать его, компилятор не будет выдавать предупреждения.
Наверное переменную использовать нельзя…
 
Roman #:
Версия 2 компилируется, но не срабатывает переключение
Естественно, не срабатывает. Тут LOC_PERIOD определяется и используется на этапе компиляции.
 
Alexey Viktorov #:
Наверное переменную использовать нельзя…
Там нет переменной. LOC_PERIOD - макроподстановка литерала.
 
Andrei Iakovlev #:
Событие CHARTEVENT_KEYUP когда-нибудь добавите в документацию?
Добавили в https://www.mql5.com/ru/docs/constants/chartconstants/enum_chartevents
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Типы событий графика
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Типы событий графика
  • www.mql5.com
Существуют 11 видов событий, которые можно обрабатывать с помощью функции предопределенной функции OnChartEvent() . Для пользовательских событий...
 
Roman #:

Используя нововведения для имен переменных, такие конструкции должны работать или нет?

Версия 1 не компилируется

Версия 2 компилируется, но не срабатывает переключение

К сожалению, без встроенной в MQL компилятор поддержки перевода строк никак.

 

MQ где-то писали, что если заказчик, с которым я уже работал ранее, опубликует новый job, то это отобразится в моей ленте новостей при условии, что заказчик добавлен в друзья.

Оно не работает - этого job нет у меня в news feed.

 
Anatoli Kazharski #:

Нужен ответ по этой проблеме. Отправил также в Сервисдеск: #5566666


К сожалению, пока не смогли воспрозвести.
 
Vladislav Boyko #:

MQ где-то писали, что если заказчик, с которым я уже работал ранее, опубликует новый job, то это отобразится в моей ленте новостей при условии, что заказчик добавлен в друзья.

Оно не работает - этого job нет у меня в news feed.

Посмотрите в профиле заказчика - если в нем нет опубликованного нового job, то и в вашей ленте ему взяться неоткуда.

Если заказчик создаст персональную работу - вы будете уведомлены: