Как получить первоначальное значение iMa в индикаторе?

 
Доброго дня! Есть вопрос с вычислением значения скользящей средней в момент появления нового бара при построении индикатора в терминале. Стандартные Fun_New_Bar() в коде индикатора работают в процессе торговли, а при расчёте индикатора уже на истории. Какие могут быть способы для получения стартовых значений встроенного индикатора iMa? 
 
mwwm:
Доброго дня! Есть вопрос с вычислением значения скользящей средней в момент появления нового бара при построении индикатора в терминале. Стандартные Fun_New_Bar() в коде индикатора работают в процессе торговли, а при расчёте индикатора уже на истории. Какие могут быть способы для получения стартовых значений встроенного индикатора iMa? 

Что-то не очень понятно, что вы хотите сделать? В МТ4 функция Fun_New_Bar() вообще не имеет смысла, если вы расчитываете индикатор на закрытом баре, все прописывается элементарно в параметрах цикла.

 
пересчитать по формулам, используя в качестве последнего значения цену открытия, остальные значения - те которые указаны как основные (например, close и т.п.)
 
Igor Zakharov:
пересчитать по формулам, используя в качестве последнего значения цену открытия, остальные значения - те которые указаны как основные (например, close и т.п.)
double SimpleMAStart(const int position,const int period,const double &price[],const double &open0[])
  {
//---
   double result=0.0;
//--- check position
   if(position>=0 && period>0)
     {
      //--- calculate value
      for(int i=0; i<period; i++)
        {
         if(i>0)
           {
            result+=price[position+i];
           }
         if(i==0)
           {
            result+=open0[position+i];
           }
        }
      result/=period;
     }
//---
   return(result);
  }

Хорошая мысль. Такой вот код запилился. Не знаю пока, как он на правильность и применимость.

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