Обновление платформы MetaTrader 4 build 670: виртуальный хостинг, web-запросы и работа с сигналами из MQL-программ - страница 31

 
Вот как-то ещё не хватает по аналогии с ChartID функции, возвращающей индикатору номер своего подокна. WindowFind не полностью универсальна, потому что можно найти подокно и не своего экземпляра.
 
Скажите, функции советника выполняются в одном потоке или в разных? Если мы находимся внутри функции OnTimer() или OnChartEvent(), гарантируется ли, что при этом функция OnTick() не выполняется?
 
Sergey_Mechanic:
Скажите, функции советника выполняются в одном потоке или в разных? Если мы находимся внутри функции OnTimer() или OnChartEvent(), гарантируется ли, что при этом функция OnTick() не выполняется?

Все события выполняются по очереди. Читайте документацию

Программа получает события только от графика, на котором она запущена. Все события обрабатываются одно за другим в порядке поступления. Если в очереди уже есть событие NewTick либо это событие находится в состоянии обработки, то новое событие NewTick в очередь mql4-программы не ставится. Аналогично, если в очереди mql4-программы уже находится событие ChartEvent или такое событие обрабатывается, то новое событие такого типа не ставится в очередь. Обработка событий таймера производится по такой же схеме – если в очереди находится или уже обрабатывается событие Timer, то новое событие таймера не ставится в очередь.

Очереди событий имеют ограниченный, но достаточный размер, поэтому переполнение очереди для корректно написанной программы маловероятно. При переполнении очереди новые события отбрасываются без постановки в очередь.

Крайне не рекомендуется использовать бесконечные циклы для обработки событий. Исключением из этого правила могут быть только скрипты, которые обрабатывают одно единственное событие Start.

Библиотеки не обрабатывают никаких событий.

 

Спасибо.

ЗЫ. Спросить быстрее. )) 

 
глюк продолжается уже несколько билдов - если терминал использовать в портабельном режиме, потом случайно подрубить его в обычном, а потом - снова в портабельном, все скрипты и советники оказываются сваленными в кучу в папке индикаторов (%MT4inctallationdir%\MQL4\Indicators)...
 

Зачем последний билд при первом запуске на компе спрашивает логин/пароль, хотя все данные в полях уже забиты (можно просто нажать ОК)?

Подробнее... МТ4 установлен в отдельную папку "C:\MetaTrader\..." (т.е. каталог данных там же). Я его таскаю на флешке с одного компа на другой, полная копия со всеми потрохами (кроме accounts.ini). Пути на обоих компах одинаковые, даже метка тома установлена одинаковая. Раньше этого было достаточно. Теперь при копировании всей папки терминала на другой комп и первом запуске там вылазит окошко логина, причем(!) все поля там заполнены, достаточно просто жмакнуть "ОК". Это зачем так? Можно избавиться?

 

Добрый день! Подскажите, пожалуйста, имеется ли возможность установить  на смартфон MetaTrader 4  дважды, для двух терминалов разных брокеров? Первый закачивала через PlayМаркет, второй не получилось.

 
lub35:

Добрый день! Подскажите, пожалуйста, имеется ли возможность установить  на смартфон MetaTrader 4  дважды, для двух терминалов разных брокеров? Первый закачивала через PlayМаркет, второй не получилось.

Вы с одного терминала можете подключиться к любому из 2 400 брокерских серверов и иметь несколько зарегистрированных аккаунтов в одной программе для разных брокеров.

Для MetaTrader 4/5 не нужно иметь отдельные программы для разных брокеров.

 
Во внешних переменных в коде после точки с запятой идет пользовательский комментарий:

extern bool Variable= false// If TRUE ...

В версии 670 "If TRUE ..." станет отдельной строкой во внешних переменных в МТ4.
 
atztek:
Во внешних переменных в коде после точки с запятой идет пользовательский комментарий:

В версии 670 "If TRUE ..." станет отдельной строкой во внешних переменных в МТ4.

да, поэтому не забывайте про такую "правильную" запись при необходимости.


extern bool Variable= false;/*Variable*/  // If TRUE ...
Причина обращения: