Как вычислить количество баров?

 

Господа Офицеры! Нужна помощь!

Надо вычислить количество баров назад: начиная с настоящего момента, до точки Х в которой выполняется определенное условие, ну например разница между зубами и губами Аллигатора должна быть не больше такой-то..., тогда вычислить количество баров. Другими словами нужно вычислить количество баров назад от точки А (то есть данное время) - до точки Х (в которой сработало определенное условие)...

В общем выполнять подсчет баров назад до тех пор разница между значениями Аллигатора не превысит допустимую.

Надеюсь, понятно изъяснил...
Заранее всем благодарен!

[Удален]  
Смотри эту функцию

int iBarShift( string symbol, int timeframe, datetime time, bool exact=false)
Поиск бара по времени. Функция возвращает смещение бара, которому принадлежит указанное время. Если для указанного времени бар отсутствует ("дыра" в истории), то функция возвращает, в зависимости от параметра exact, -1 или смещение ближайшего бара.
 
Simca:
Смотри эту функцию

int iBarShift( string symbol, int timeframe, datetime time, bool exact=false)
Поиск бара по времени.
Не Simca, мне надо узнать количество баров от настоящего момента до определенной точки Х назад в которой вополнилось условие (описаное выше)! Мне не нужно найти бар определенный по времени..
[Удален]  
Ну так она и возвращает НОМЕР бара по его ВРЕМЕНИ. А номер бара от настоящего момента и будет количеством баров до искомого времени.
 
int BarsFrom0(){
   for(int i=0;i<Bars;i++){
      double ЗУБЫ=...;
      double ГУБЫ=...;
         if(MathAbs(ЗУБЫ-ГУБЫ)<X){
            return(i);
         }
   }
return(-1);//если не нашли
}
 
Integer писал (а):
int BarsFrom0()...

Integer ты уж прости я чайник в этом деле, вот таким вот Макаром BarsFrom0 вернёт мне количество баров до точки Х... Тогда как насчет ЗУБЫ там ГУБЫ, смещение их на один назад, что б узнать или равна их разница заданной величине и так до тех пор, пока эта разница не будет больше заданной. .. И вот тогда то и узнать, сколько баров прошло назад до этого момента... Или ИХ не надо смещать?.
 
Simca:
Ну так она и возвращает НОМЕР ...


Интересный вариант, ну а на практике как это...
 
Inter писал (а):
Integer писал (а):
int BarsFrom0()...

Integer ты уж прости я чайник в этом деле, вот таким вот Макаром BarsFrom0 вернёт мне количество баров до точки Х...
Тогда как насчет ЗУБЫ там ГУБЫ, смещение их на один назад, что б узнать или равна их разница заданной величине и так до тех пор, пока эта разница не будет больше заданной. .. И вот тогда то и узнать, сколько баров прошло назад до этого момента... Или ИХ не надо смещать?.



Например ЗУБЫ=iAlligator(...), вызывая функцию iAlligator() последним параметром ставишь i. Х это не точка а расстояние по вертикали между зубами и губами.

Про функции iAlligator() можно руководство почитать в редакторе.
 
Integer а вот если это не делать как функцию тогда вместо return(i); надо поставить i++; или нет...
 
Inter писал (а):
Integer а вот если это не делать как функцию тогда вместо return(i); надо поставить i++; или нет...
break;
 
Integer писал (а):
вызывая функцию iAlligator() последним параметром ставишь i


Integer и чё в этом цикле i будет сдвигать Alligator на 1 бар назад. Чё то я въехать немогу, чайник я, ты уж прости...
Нам нужно сдвинуться на один бар назад посмотреть если соответствуем величине Х сдвигаемся на еще один бар назад и так до тех пор пока соответсвовать не будем... Начиная с настоящего времени. Вот что в принципе я хочу добиться..
Спасибо за терпение...!