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

 

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

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

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

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

 
Смотри эту функцию

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 бар назад. Чё то я въехать немогу, чайник я, ты уж прости...
Нам нужно сдвинуться на один бар назад посмотреть если соответствуем величине Х сдвигаемся на еще один бар назад и так до тех пор пока соответсвовать не будем... Начиная с настоящего времени. Вот что в принципе я хочу добиться..
Спасибо за терпение...!