пользовательские функции

 

Помогите разобраться с использованием пользовательских функций.

Подскажите ссылки на эксперты и индикаторы, в которых часто используются пользовательские функции.
 
nigilist:

Помогите разобраться с использованием пользовательских функций.

Подскажите ссылки на эксперты и индикаторы, в которых часто используются пользовательские функции.


'ZeroLagEA-AIP v0.0.4'

Это эксперт. А вообще в хелпе МТ4 все вроде ясно написано про функцию iCustom()... Или разговор именно о пользовательских функциях?
 
Мне нужны примеры именно с ПОЛЬЗОВАТЕЛЬСКИМИ функциями.

Пытался разобраться с помощью индикатора NRTR 'Индикатор NRTR'
как мне кажется нижеприведённый код должен компилироваться без ошибок в любом другом коде т.е. он самодостаточный,
double ATR(int iPer,int shift)
  {
   double result;
   result=iATR(NULL,0,iPer,shift);
   return(result);
  }

но в свой код я его вставить не могу, компилятор выдаёт следующие:


пожалуйста укажите на ошибку.

 
Пользовательские функции могут определяться либо в модуле, либо в инклюднике, либо в библиотеке.
Видно, что идут попытки вычислений на глобальном уровне (exprression on global scope not allowed) и кажется есть попытка определения пользовательской функции внутри другой функции.
 
Rosh, этот код взят из вашего индикатора, который успешно, скомпилировался,
только я нигде в коде не шашёл ни одной строки с именем функции double ATR(int iPer,int shift)
только её вызов, я не понимаю почиму этот же участок кода не компилируется у меня.
переставил его из start() в init() результат следующий:
 
nigilist:
Rosh, этот код взят из вашего индикатора, который успешно, скомпилировался,
только я нигде в коде не шашёл ни одной строки с именем функции double ATR(int iPer,int shift)
только её вызов, я не понимаю почиму этот же участок кода не компилируется у меня.
переставил его из start() в init() результат следующий:



Описание функции в теле другой функции недопустимо - только вызов. Ибо "описание" - это инструкция компилятору, а "вызов" - процессору. Вынестите описание из инита и будет Вам счастье.

Успехов.
 

А почиму тогда у Roshа всё работает?

 
Ну как же, у меня же все функции определены правильно!
Вот четыре из них :

 
А вот пример того, как одна пользовательская функция вызывается в другой (помните, Вы не могли найти вызов пользовательской функции ATR()).

 
А почему бы не опубликовать весь файл с полным кодом?
Сильно похоже что одна функция определена внутри другой.
 
Renat:

Сильно похоже что одна функция определена внутри другой.
Так об этом и спич.
Ренат, может стоит добавить в хэлп фразу о недопустимости определения одной функции в теле другой с примерчиком как делать нельзя - вопрос то не в первый раз возникает. Хотя тем, кто не хочет искать ничем не поможешь. Так хоть можно будет с полным основанием написать RTFM (что наши англоязычные коллеги программеры трактуют как "Когда же ты наконец прочтешь инструкцию", хотя в оригинале "Read This Fuking Manual" :) ).

Успехов.