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

 
Omm:

ну не знаю. мне проще в коде задать настройки под каждый символ, чем лазать и по каждому графику и проверять чего там изменено.

 не работает.

есть глобал

string btw2, btw1;

меняю местами   string btw1, btw2;

после компиляции индикатор на графике помнит старые значения.


Справка - Выполнение программ

Входные параметры и компиляция исходного кода программ

Если исходный код запущенной на графике программы будет успешно перекомпилирован, то старая ее версия будет выгружена с графика, а вместо нее будет загружена новая скомпилированная копия.

В случае если после перекомпиляции состав входных параметров не изменился, будут применены те значения параметров, которые были до этого установлены. Если же состав параметров изменился, будут применены значения по умолчанию.

Состав входных параметров программы считается измененным при правке исходного кода в следующих случаях:

  • изменилось количество параметров;
  • изменился порядок следования параметров;
  • изменились наименования параметров;
  • изменился тип одного или более параметров.

Изменение значения по умолчанию любого из параметров не считается изменением состава входных параметров.

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

В случае изменения состава входных параметров терминал воспримет новый исполняемый файл как несовместимый по функционалу с ранее запущенной на графике программой. Поэтому новая перекомпилированная программа будет загружена с набором входных параметров со значениями по умолчанию.

В остальных случаях (в том числе при изменении значения по умолчанию любого из параметров) после перекомпиляции будут применены предыдущие параметры, которые были использованы до перекомпиляции.

При любой компиляции будет вызвана предопределенная функция OnInit(), назначение которой состоит в правильной инициализации всех глобальных и статических переменных программы. Именно в обработчике OnInit() необходимо правильным образом получать значения входных параметров программы.

 
Omm:

 не работает.

есть глобал

string btw2, btw1;

меняю местами   string btw1, btw2;

после компиляции индикатор на графике помнит старые значения.

добавил int lala=5;

тоже самое, ноль реакции. 

p.s. при добавлении   extern int lala;  наконец-то получилось. но это явно костыли. лично мне нафиг не нужны.

 

Так называемые Вами "глобалы" не являются и никогда не являлись входными параметрами.

"Наконец-то получилось" у вас при добавлении extern, который определяет входной параметр

 
stringo:

Так называемые Вами "глобалы" не являются и никогда не являлись входными параметрами.
"Наконец-то получилось" у вас при добавлении extern, который определяет входной параметр


Зачем менять порядок "extern", там же есть кнопка "Сброс", которая должна устанавливать значения, заданные в коде.
 
atztek:

Зачем менять порядок "extern", там же есть кнопка "Сброс", которая должна устанавливать значения, заданные в коде.


Ну как "зачем"? Если запущено с десяток копий советника, то кнопку "Сброс" нужно ткнуть 10 раз. А так - одним махом на всех ;)

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

 
atztek:

Зачем менять порядок "extern", там же есть кнопка "Сброс", которая должна устанавливать значения, заданные в коде.

Вам, видимо, нужно просто устанавливать переменным нужные значения в функции OnInit (а не при объявлении переменных на глобальном уровне).
 
stringo:

Так называемые Вами "глобалы" не являются и никогда не являлись входными параметрами.

"Наконец-то получилось" у вас при добавлении extern, который определяет входной параметр




а вот ваше пред. сообщение :  "Например, поменяв параметры местами."

и где там слово "входной"?

да, Rosh показал, что это написано в справке. но, честное слово, у меня ощущение, что вы ребята считаете себя центром Вселенной.

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

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

 

Вчера при перезапуске с 646-го бильда перевели на 670-й. Всё также работает, разницы не заметил, кроме добавления "Мозаикой". До этого только иногда подправлял коды для общих нововведений, не переходя на новый МКЛ4. 

Вопрос к разработчикам: Почему в терминале, когда открываю сообщение в почтовом ящике, ссылки открывают Интернет Эксплорер, а не Оперу, которой пользуюсь? Появляется кукл-робот, требующий установить новый браузер на выбор, в числе которых есть Опера, и не даёт дальше ходу! У брокера спросил, говорят, что это в терминале ссылки выводятся на Интернет Эксплорер по умолчанию, и они не могут это поменять!

Потому обращаюсь к вам, разработчикам! Сделайте, пожалуйста, опцию в настройках, чтобы ссылки работали через браузер пользователя, а не по умолчанию! Если эта опция есть, то объясните получше, как сделать! Искал, но не нашёл! Поблагодарю!

 

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

 
Bobs:

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


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

который год мучает вопрос что это и зачем в справке описания не нашёл на форуме то же нет....