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

 

Народ, опять запутался в трёх строчках... Помогите) В индикаторе мне нужна элементарная функция, после вычисления чтоб просто хранила в себе результат. Вот кусок кода, при объявлении переменной static внутри функции должным образом расчёт не получается, а если без  static - то компилятор ругается, пишет "" возможно использование неинициализированной переменной 'atr'"" , НО при этом результат получается верным. Результат смотрю функцией Print. Что не так я делаю??? Может я вообще не в ту степь полез?...

  Print(" ATR--- ",ATR());
   Print("reset = ",reset());
 
   return(rates_total);
  }
  //-------------Функция расчёта общего  ATR  -----------------------------------
    double ATR() 
  {

 //static
  double atr,delta;      
  
     
   for(int ia=Bars-AtrPeriod;   Bars>ia;  ia++)
     {                                                             
        delta=MathRound((High[ia]-Low[ia])/pips);                                                                
        atr = atr+delta;                                                                                         
     }
    
     return(atr/AtrPeriod);                                                                     
   }
 

Функция не хранит в себе результат, а выполняет действия. Результат храните в глобальной переменной.

int a=5;

void Ontick()
   {
   DoSomething(a);
   printf((string)a);
   }

void DoSomething(int &b)
   {
   b++;
   }
 
to_ha #:

Народ, опять запутался в трёх строчках... Помогите) В индикаторе мне нужна элементарная функция, после вычисления чтоб просто хранила в себе результат. Вот кусок кода, при объявлении переменной static внутри функции должным образом расчёт не получается, а если без  static - то компилятор ругается, пишет "" возможно использование неинициализированной переменной 'atr'"" , НО при этом результат получается верным. Результат смотрю функцией Print. Что не так я делаю??? Может я вообще не в ту степь полез?...

Всё просто. При объявлении переменной присвойте ей значение

  double atr = 0, delta;
 
Aleksei Stepanenko #:

Функция не хранит в себе результат, а выполняет действия. Результат храните в глобальной переменной.

Alexey Viktorov #:

Всё просто. При объявлении переменной присвойте ей значение

  Спасибо, усвоил;))

 

Всем доброго вечера!

У меня вопрос хоть и не совсем по коду, но всё же. Не могу до конца понять, в чём состоит существенная разница между скриптом и утилитой?

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

 
Aleksei Stepanenko #:

Функция не хранит в себе результат, а выполняет действия. Результат храните в глобальной переменной.


Жёсткий пример для понимания на начальном уровне. Ссылка внутрь)
 
MrBrooklin #:

Всем доброго вечера!

У меня вопрос хоть и не совсем по коду, но всё же. Не могу до конца понять, в чём состоит существенная разница между скриптом и утилитой?

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

Скрипт - однозначно выполняется только один раз в момент его запуска (если это, конечно, не зацикленный скрипт).

А утилита - ей можно назвать, например, неторгующий советник. Может, допустим, какая-либо информационная панель.

 
Alekseu Fedotov #:

Вы, деньги аналитикам доверили (перечислили)?    99,9% кинули! 

Здраствуйте Алексей.Это все было честно как они сказали.У меня есть номер телефона второго аналитика.Первый  изчез из телеграмма.Куда жаловаться?Неужели им всё сходит с рук.У меня есть скрины с этой платформы.Что делать дальше подскажите пожалуста
 
Artyom Trishkin #:

Скрипт - однозначно выполняется только один раз в момент его запуска (если это, конечно, не зацикленный скрипт).

А утилита - ей можно назвать, например, неторгующий советник. Может, допустим, какая-либо информационная панель.

Здравствуйте, Артём! Спасибо за доходчивое объяснение.

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

 
Artyom Trishkin #:

Скрипт - однозначно выполняется только один раз в момент его запуска (если это, конечно, не зацикленный скрипт).

А утилита - ей можно назвать, например, неторгующий советник. Может, допустим, какая-либо информационная панель.

а в кодобазе есть раздел утилиты и в маркете если они есть, как валидность проверяется?

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