Помогите с идикатором

 
Здравствуйте.Есть такой индикатор сделанный мною расчитывающий движение цены на определённом периуде :
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1  White
#property indicator_color2  Blue

extern int MAPeriod = 14;

// buffers
double V[];           // Собственно значения
double SmoothedValues[];

int DigitsUsed = 8;


int init()
{
   // ассоциируем буферы
   SetIndexBuffer(0, V);
   SetIndexBuffer(1, SmoothedValues);   
   // задаем настройки для буферов
   SetIndexStyle(0, DRAW_LINE);     // Основной сигнал будет сплошной линией
   SetIndexStyle(1, DRAW_LINE);     // Основной сигнал будет сплошной линией   
   IndicatorDigits(DigitsUsed);

   return(0);
}

int start()
{
   int toCount = Bars - IndicatorCounted();  
   double P1,P2,P3;
   // Считаем значения
   for (int i = toCount - 1; i >=0; i--)
   {
      if(Open[i]>Close[i])
        {
         P1=High[i]-Low[i];
         P2=High[i]-Open[i];
         P3=Close[i]-Low[i];
        }
      if(Close[i]>Open[i])
        {
         P1=High[i]-Low[i];
         P2=High[i]-Close[i];
         P3=Open[i]-Low[i];
        }
      
      V[i] = P1+P2+P3;
   }
      
   // Считаем сглаженные значения
   for (i = toCount - 1; i >=0; i--)
   {
      SmoothedValues[i] = NormalizeDouble(iMAOnArray(V, 0, MAPeriod, 0, MODE_SMA, i), DigitsUsed);
   }
      
   
   return(0);
}
Там все нормально,но когда я хотел сделать, чтобы этот идикатор расчитывал бар на минутках,т.е накидываем его на 1 H,а он все минуты каждого часа расчетного идикатора складывает :
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1  White

// buffers
double V[];           // Собственно значения

int init()
{
   // ассоциируем буферы
   SetIndexBuffer(0, V);
   // задаем настройки для буферов
   SetIndexStyle(0, DRAW_HISTOGRAM);     // Основной сигнал будет сплошной линией  
   return(0);
}

int start()
{
   int toCount = Bars - IndicatorCounted(); 
   // Считаем значения
   for (int i = toCount - 1; i >=0; i--)
    {
     double t=0; //обнуляем счетчик
     int Minut1 = iBarShift(NULL,1,iTime(NULL,Period(),i),false);//Сколько минут прошло в баре
     int Minut0 = iBarShift(NULL,1,iTime(NULL,1,i),false);//нулевая минута в баре
     for(int k=Minut0; k<=Minut1;k++)
      {
       double K=iCustom(NULL,1,"V",14,0,k); //Сам индикатор
       t=t+K;
      } 
     V[i]=t; //забиваем в массив
    }   
   return(0);
}
При наложении советника на график, MT зависает.Где может быть ошибка или я что то не то делаю ?
С уважением Александр.
 
sasha2x писал(а) >>
Здравствуйте.Есть такой индикатор сделанный мною расчитывающий движение цены на определённом периуде :
Там все нормально,но когда я хотел сделать, чтобы этот идикатор расчитывал бар на минутках,т.е накидываем его на 1 H,а он все минуты каждого часа расчетного идикатора складывает :
При наложении советника на график, MT зависает.Где может быть ошибка или я что то не то делаю ?
С уважением Александр.


Зависать вроде не должен, хотя и сделан криво. Его показаниям верить нельзя
 
А как правильно(не криво) будет?
 

Сделать несложно, но оно мне не надо. Зачем? Смысла не вижу, хотя иногда претворяю разные идеи. Точнее претворял.

 

Можно просто для себя еще раз сформулировать последовательность работы (на бумажке). Очень помогает (хотя таким методом не пользуюсь, но говорят).

 
Vinin >>:

Можно просто для себя еще раз сформулировать последовательность работы (на бумажке). Очень помогает (хотя таким методом не пользуюсь, но говорят).

Просто я уже третью неделю рисую,а результат никакой,поэтому и обратился на форум.

 
Кто поможет объяснить где ошибка или что неправильно буду очень благодарен.
С уважением Александр.
Причина обращения: