Скачать MetaTrader 5

Получить количество баров

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Хочешь написать торгового робота? Загляни в Справочник MQL5!
forexman77
2119
forexman77 2015.04.28 19:37 

Как получить количество доступных баров при расчете индикатора, на текущей итерации?

Что-то вроде Bars. Или счетчик делать?

Vladimir Karputov
Модератор
46155
Vladimir Karputov 2015.04.28 19:41  
forexman77:

Как получить количество доступных баров при расчете индикатора, на текущей итерации?

Что-то вроде Bars. Или счетчик делать?

А собственно зачем? Ведь есть:

int OnCalculate (const int rates_total,      // размер массива price[]
                 const int prev_calculated,  // обработано баров на предыдущем вызове
                 const int begin,            // откуда начинаются значимые данные
                 const double& price[]       // массив для расчета
   );

 

Хотя, можно и так: Bars

forexman77
2119
forexman77 2015.04.28 19:51  
barabashkakvn:

А собственно зачем? Ведь есть:

 

Хотя, можно и так: Bars

Немного другое нужно. Начинается расчет индикатора циклом и на текущем индексе необходимо знать сколько всего баров от начала. 

Bars покажет сколько всего баров, от нулевого индекса, а в цикле индекс все время смещается. 

Gulnaz Akhtyamova
10620
Gulnaz Akhtyamova 2015.04.28 19:56  
forexman77:

Немного другое нужно. Начинается расчет индикатора циклом и на текущем индексе необходимо знать сколько всего баров от начала. 

Bars покажет сколько всего баров, от нулевого индекса, а в цикле индекс все время смещается. 

текущая позиция индикатора - это i (к примеру, выйдем из цикла на 100-м баре) :

for(i = IndPeriod; i >= 0; i--)

{

if(i==IndPeriod-100) break;

}

forexman77
2119
forexman77 2015.04.28 20:07  
_new-rena:

текущая позиция индикатора - это i :

Долго будет. Будет цикл в цикле. Может есть что-то наподобие Bars, но для индикатора?

И индексация нужна, как в MQL4, справа ноль. 

forexman77
2119
forexman77 2015.04.28 20:11  
Вроде придумал. На первой итерации записать время и через баршифт получать индекс, который и будет количеством баров,  текущей итерации.
Gulnaz Akhtyamova
10620
Gulnaz Akhtyamova 2015.04.28 20:14  
forexman77:

Долго будет. Будет цикл в цикле. Может есть что-то наподобие Bars, но для индикатора?

И индексация нужна, как в MQL4, справа ноль. 

тогда нужно еще раз уточнить - чего хотим? ведь было так:

forexman77:

Немного другое нужно. Начинается расчет индикатора циклом и на текущем индексе необходимо знать сколько всего баров от начала. 

Bars покажет сколько всего баров, от нулевого индекса, а в цикле индекс все время смещается. 

forexman77
2119
forexman77 2015.04.28 20:16  
_new-rena:

тогда нужно еще раз уточнить - чего хотим? ведь было так:

Просто у меня начало это первый бар слева, а Вы наверное справо считаете. Это не столь важно.
forexman77
2119
forexman77 2015.04.28 20:22  
forexman77:
Вроде придумал. На первой итерации записать время и через баршифт получать индекс, который и будет количеством баров,  текущей итерации.
С баршифтом поторопился. Он покажет индекс текущего состояния в окне, а не внутри цикла индикатора.
Dmitry Fedoseev
42922
Dmitry Fedoseev 2015.04.28 20:35  
Просто вычислить. Количество баров известно. Индекс при отсчете справа известен. Остается вычесть.
forexman77
2119
forexman77 2015.04.28 20:58  
Integer:
Просто вычислить. Количество баров известно. Индекс при отсчете справа известен. Остается вычесть.

 Спасибо! Скриптом (MQL4)проверил считает правильно.

Не знаете на MQL4 корректно работает, на четвертом в справке документации не указана возможность с диапазоном дат?

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий