Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1915

 
Koldun Zloy #:

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

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

Если откликнется - значит готов к обсуждению, тогда уже начинаешь дискуссию.

 
Vitaly Muzichenko #:

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

Если откликнется - значит готов к обсуждению, тогда уже начинаешь дискуссию.

Некоторые новички в программировании уже достаточно узнаваемы. И чаще всего видно хочет человек научиться или заглянул просто спросить… В обсуждаемом случае я уверен в том что желание есть.

 
Alexey Viktorov #:

Некоторые новички в программировании уже достаточно узнаваемы. И чаще всего видно хочет человек научиться или заглянул просто спросить… В обсуждаемом случае я уверен в том что желание есть.

Добрый вечер! Ещё раз хочу выразить ОГОМНУЮ БЛАГОДАРНОСТЬ всем тем, кто конструктивно откликнулся на мой вопрос.

Попробую кратко внести ясность о себе. Достаточно пожилой человек. Пока работаю (не на заводе, но все же). В октябре 2020 года начал самообучение языку программирования MQL5. В свободное от работы время создал мультивалютный советник, который сейчас установлен и работает на реальном счёте. Периодически  пытаюсь писать новые советники (ТОЛЬКО ДЛЯ СЕБЯ!). Иногда "спотыкаюсь" из-за не знания многих вещей. На профессионализм не претендую. Вот вроде бы и всё.

И САМОЕ ГЛАВНОЕ!!! Если человек обращается в ветку Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам, то он очень надеется только на помощь!!!

С уважением, Владимир.

 
MrBrooklin #:

И САМОЕ ГЛАВНОЕ!!! Если человек обращается в ветку Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам, то он очень надеется только на помощь!!!

С уважением, Владимир.

К сожалению надеются на разную помощь. Вы хотите понять и разобраться в тонкостях программирования, а некоторые считают и просят так «Ты мне напиши функцию. А я потом разберусь что в ней и как должно работать…». Надеюсь вы понимаете, что такие разбираться не будут, а будут просто использовать готовый код как кубики лего… Да и из этих кубиков иногда не могут собрать что-то работающее. Последовательность могут попутать…

 

Вопрос возник. В чем смысл (сакральный) использования аргумента по ссылке в примере (учебник Федосеева Дм.)

bool hyperbola(double x,double &r){
if(x==0){
return(false);
}
r=1.0/x;
return(true);
}

Можно и с одним аргументом икс сделать, объявив r в глобальной области.

double r;
////
bool hyperbola(double x){
if(x==0){
return(false);
}
r=1.0/x;
return(true);
}

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

например:

int FileOpenF(string File_NameArg,int &HandleArg)
  {
   HandleArg=FileOpen(File_NameArg,FILE_CSV|FILE_WRITE,";");//Открытие файла
   if(HandleArg==-1) // Неудача при открытии файла
     {
      Alert("Ошибка при открытии файла. ",File_NameArg,// Сообщение об ошибке
            "Возможно, файл занят другим приложением Handle= ",HandleArg);
     }
   return(HandleArg);
  }

Что то путаюсь в сакральных смыслах)))

 

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

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

При это, если прошлого дня недели нет - допустим, что был выходной, то смотрим на позапрошлый.

Как такое сделать?

Пока рабочая идея такая - определяем текущий день недели, потом в цикле ищем такой же день недели и уже по нему определяем число баров, но может есть что то более изящное?

 
Valeriy Yastremskiy #:

Что путаюсь в сакральных смыслах)))

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

 
Nikolay Ivanov #:

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

Что бы ее вытащить (r) ее все равно надо объявить в области использования или в глобальной.

double r;
if(hyperbola(DBL_MIN,r)){
Alert("1/DBL_MIN=",r);
}
else{
Alert("Неправильный аргумент для функции hyperbola()");
}
 
Valeriy Yastremskiy #:

Что бы ее вытащить (r) ее все равно надо объявить в области использования или в глобальной.

да, заранее подготавливаете переменную хоть глобально хоть локально и используете как аргумент в функции. Но сама функция не привязана будет к этим переменным, созданным для хранения. 

 
Nikolay Ivanov #:

да, заранее подготавливаете переменную хоть глобально хоть локально и используете как аргумент в функции. Но сама функция не привязана будет к этим переменным, созданным для хранения. 

Вопрос был не про это. Функция Дмитрия возвращает не аргумент по ссылке. Зачем использовать аргумент по ссылке? Да, локальные области смогут объявить переменную у себя и получить ответ в переменную после вызова функции.

И все???

Причина обращения: