В индикаторе Семен Семеныча 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 все устроено в плане локальных переменных?
а как ты определил, что они сохраняются? в МТ локальные переменные между вызовами не сохраняются и область видимости только своя функция. может тебя вводит в заблуждение switch? т.к. нет break после каждого case (но там так и задумано)