Проверка баров вперёд и назад по истории

 

Я получаю стрелку на текущем баре
Как мне проверить по истории и убрать не нужные стрелки?
Т.е. если есть по истории стрелки, то надо проверить 3 бара назад и 3 бара вперёд от стрелки на другой буфер

if(arrow[i]!=EMPTY_VALUE && //Стрелка
   buff[i+1]==EMPTY_VALUE && buff[i+2]==EMPTY_VALUE && buff[i+3]==EMPTY_VALUE && //3 бара назад
   buff[i-1]==EMPTY_VALUE && buff[i-2]==EMPTY_VALUE && buff[i-3]==EMPTY_VALUE)   //3 бара вперёд

Эта строчка не работает 

buff[i-1]==EMPTY_VALUE && buff[i-2]==EMPTY_VALUE && buff[i-3]==EMPTY_VALUE
 
forex2030:

Я получаю стрелку на текущем баре
Как мне проверить по истории и убрать не нужные стрелки?
Т.е. если есть по истории стрелки, то надо проверить 3 бара назад и 3 бара вперёд от стрелки на другой буфер

Эта строчка не работает 


вперёд нельзя проверять, если оно ещё не построено.

 
Evgeniy Chumakov:

вперёд нельзя проверять, если оно ещё не построено.

По истории уже всё построено и надо отфильтровать лишнее

 
forex2030:

По истории уже всё построено и надо отфильтровать лишнее

Значит сделай чтобы было так: i+3 — стрелка, i+2, i+1, i — это вперёд, а назад соответственно i+4, i+5, i+6

 
Alexey Viktorov:

Значит сделай чтобы было так: i+3 — стрелка, i+2, i+1, i — это вперёд, а назад соответственно i+4, i+5, i+6

i+ это назад
i- это вперёд

но вперёд почему-то игнорирует и ставит эту стрелку,
хотя буфер там 

buff[i-1] != EMPTY_VALUE
 
forex2030:

i+ это назад
i- это вперёд

но вперёд почему-то игнорирует и ставит эту стрелку,
хотя буфер там 

Когда i=0 чему будет равно i-1? Есть бар с таким индексом?

Поставь директиву

#property strict
и получишь ошибку.