Проблема с Мастером создания экспертов ?

 
Господа prof 's, прошу помочь разобраться.
Начал делать индикатор, сделал заготовку в мастере, скопировал из работающего предварительного варианта индикатора кусок кода - МЕ выдает при компиляции 2 ошибки.
Проверяю - та же конструкция, в том же месте, внимательное изучение Справочника MQ говорит, что все, вроде, должно работать.
Копирую изменения в новом индикаторе и переношу, дополняя, в предварительный вариант - ошибок нет!

Закралась мысль, что с мастером что то не так.

http://aumlura.narod.ru/master1.html
http://aumlura.narod.ru/master2.html

Благодарю за оказанное внимание.
 
Нельзя объявлять одну функцию в теле другой.
 
Нельзя объявлять одну функцию в теле другой.


Спасибо Rosh, помогло. Убрал описание void DelObj() из int init_а и ошибки исчезли.
Но непонятно почему. В "Справочник MQL4 - Основы языка - Функции - Вызов функции" написано
"Функция может быть объявлена или описана в любом месте программы:"?

Однако, описать функцию void DelObj()
{
ObjectDelete("sM1");
ObjectDelete("sM5");
ObjectDelete("sM15");
ObjectDelete("sM30");
ObjectDelete("sH1");
ObjectDelete("sH4");
ObjectDelete("D");
ObjectDelete("W");
ObjectDelete("Mn");
}
так и не удалось. МЕ ругается на неё предупреждением Function "DelObj" is not referenced and will be removed from exp-file и указывает на первую строку программы //+------------------------------------------------------------------+
Просьба, если возможно, сформулировать термины " объявление" "описание", "вызов".
Всегда вызывает уважение и доверие своей компетентностью труд и, тем более, нормативный документ, начинающийся разделом "Терминология".
Думаю, если в документации MQL появится такой раздел, то язык только выиграет от этого по причине ясности, ведь он рассчитан скорее на users, чем на профессионалов-программистов.

Еще раз просмотрел весь Справочник MQL4 на предмет запрета объявления функции в теле другой, но обнаружил только, что, например, к термину "ПЕРЕМЕННАЯ" применяется 10 следующих существенных терминов:

объявление;
объявление на глобальном уровне MQL программы;
объявление на глобальном уровне терминала;
определение;
описание;
инициализация явная;
инициализация неявная;
присвоение;
передача;
состояние переменной.

P.S. Обновил ссылки в предыдущем посту, теперь должны нормально открываться.

Всем попутных трендов,
с Уважением, ALGUS.
 
МЕ ругается на неё предупреждением Function "DelObj" is not referenced and will be removed from exp-file и указывает на первую строку программы



Это обозначает, что Вы эту функцию (DelObj()) не вызываете - потому линкер ее из исполняемого файла и удаляет как ненужную - это нормально. Скорее всего Вы пропустили вызов этой функции в функции deinit()...

Успехов.
 
[/quote]

Это обозначает, что Вы эту функцию (DelObj()) не вызываете - потому линкер ее из исполняемого файла и удаляет как ненужную - это нормально. Скорее всего Вы пропустили вызов этой функции в функции deinit()...

Успехов.
[/quote]

Благодарю, Vladislav, еще не проверял, но, похоже, это так. Я компилировал только часть индикатора для контроля и DelObj() еще нигде не вызывал.

Попутных трендов,
с Уважением, ALGUS.
Причина обращения: