Локальные переменные в функциях MQL4

Тема в разделе "Индикаторы, скрипты и эксперты для МТ4", создана пользователем Ally, 25 сен 2006.

  1. Ally

    Ally Активный пользователь

    В индикаторе Семен Семеныча Complex_Common_Frames есть функция ma:
    Код:
    double ma(string sym, int per, int Mode, int Price, int i)
    {
    double res=0;
    int k=1;
    int tf=0;
    switch(Period())
    {
    		 case 1:	 res+=iMA(sym, tf, per*k, 0, MODE_LWMA, Price,i); k+=5;
    		 case 5:	 res+=iMA(sym, tf, per*k, 0, MODE_LWMA, Price,i); k+=3;
    		 case 15:	res+=iMA(sym, tf, per*k, 0, MODE_LWMA, Price,i); k+=2;
    		 case 30:	res+=iMA(sym, tf, per*k, 0, MODE_LWMA, Price,i); k+=2;
    		 case 60:	res+=iMA(sym, tf, per*k, 0, MODE_LWMA, Price,i); k+=4;
    		 case 240:   res+=iMA(sym, tf, per*k, 0, MODE_LWMA, Price,i); k+=6;
    		 case 1440:  res+=iMA(sym, tf, per*k, 0, MODE_LWMA, Price,i); k+=4;
    		 case 10080: res+=iMA(sym, tf, per*k, 0, MODE_LWMA, Price,i); k+=4;
    		 case 43200: res+=iMA(sym, tf, per*k, 0, MODE_LWMA, Price,i); 
    }
    return(res);
    }
    Несмотря на то, что используются обычные локальные (не статические) переменные, они сохраняют свои значения между вызовами, при этом как то завися от входных параметров.

    Кто подскажет, как в MT все устроено в плане локальных переменных?
     
  2. Roger

    Roger Североамериканский шпион

    Еще бы задал типа - Что у нас в плане программирования? Конкретнее надо ставить вопрос.
     
  3. Buxx

    Buxx $?¥£

    а как ты определил, что они сохраняются?
    в МТ локальные переменные между вызовами не сохраняются и область видимости только своя функция.
    может тебя вводит в заблуждение switch? т.к. нет break после каждого case (но там так и задумано)
     
  4. Ally

    Ally Активный пользователь

    Действительно там нет break, в этом все и дело, а я сразу и не заметил :)
    Спасибо! ;)
     

Поделиться этой страницей