Как осуществить трехуровневое вычисление в индикаторе

 

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

Индикатор будет работать с ценовыми отметками и я хочу протестировать различные уровнения для поиска наилучшего результата, и по результатам допилить индикатор до ума! Индикатор будет просчитывать бары в зависимости от условий и работать с предыдущими значениями.. 

В зависимости от показателей бара подбирает нужное уравнение, подсчитывает его, усредняет с предыдущим значением и сохраняет новое значение для дальнейшей работы и возможности обратиться к функции за значением. Я плоховато пока понимаю, не ругайте если что...
Вот как я это понял:

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
     int i, pull = prev_calculated == 0 ? rates_total-1 : prev_calculated;              
     double A;
     for(i = 0; i < pull; i++)           // первый цикл 
     {
           if(open[i] < close[i])
           {
                A = (high[i]+low[i]+close[i])/3.0; // Пример уравнения
           }
           else if(open[i] > close[i])
           {
                A = (high[i]+low[i]+close[i])/3.0; // Пример уравнения
           }
           else                           
           {
                A = (high[i]+low[i]+close[i])/3.0; // Пример уравнения
           }
        double bulls;
        buffer = (Bulls + A)/2.0; // Усреднение (buffer - это буфер первой линии индикатора)
     } 
//--- return value of prev_calculated for next call
   return(Bulls);
  }

 Конечно я тут начибучил, подскажите как правильно?

 
novichek:

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

Индикатор будет работать с ценовыми отметками и я хочу протестировать различные уровнения для поиска наилучшего результата, и по результатам допилить индикатор до ума! Индикатор будет просчитывать бары в зависимости от условий и работать с предыдущими значениями.. 

В зависимости от показателей бара подбирает нужное уравнение, подсчитывает его, усредняет с предыдущим значением и сохраняет новое значение для дальнейшей работы и возможности обратиться к функции за значением. Я плоховато пока понимаю, не ругайте если что...
Вот как я это понял:

 Конечно я тут начибучил, подскажите как правильно?

можно было просто ифами отмазаться.

Подождите, барабашка придет и научит, он у нас мастер в этом деле.

 
Alexey Busygin:

можно было просто ифами отмазаться.

Подождите, барабашка придет и научит, он у нас мастер в этом деле.

И как же это сделать, сказал же тольео изучаю язык! Я не знаю как мне зафиксировать предыдущее значение чтобы вставить его в уравнение на следующем баре! Одни критики, а помощи хрен дождешся...
 
novichek:
И как же это сделать, сказал же тольео изучаю язык! Я не знаю как мне зафиксировать предыдущее значение чтобы вставить его в уравнение на следующем баре! Одни критики, а помощи хрен дождешся...
Надо его позвать, как деда мороза, тогда точно придет.
 
Alexey Busygin:
Надо его позвать, как деда мороза, тогда точно придет.
Позову! А как закончу, отправлю его к тебе. Может научит тебя хорошим манерам...
 
novichek:
Позову! А как закончу, отправлю его к тебе. Может научит тебя хорошим манерам...
Не надо ко мне, он меня может за банить
 
novichek:
И как же это сделать, сказал же тольео изучаю язык! Я не знаю как мне зафиксировать предыдущее значение чтобы вставить его в уравнение на следующем баре! Одни критики, а помощи хрен дождешся...
В индикаторный буфер. Посмотрите в терминале есть пример индикатора скользящей средней.