Как проверить пропуски в истории?

 

Загоняю значения в индикатор вот так:

int i;                                    
i=0;        
while(i<=1000)                          
     {
      Buf[i]=(iClose(NULL,0,i);
    
      i++;                      
     }


какую можно устроить проверку на пропуски?
чтобы, если какой-то бар в истории пропущен, чтобы там забивало значение EMPTY_VALUE.

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

Может какой-то перебор по времени баров устроить. и если бара с каким то временем нет - то вносить в индикатор значение 
EMPTY_VALUE.
но как тогда пропускать выходные?

 
Если будет пропуск в истории котировки, то значение индикатора по умолчанию останется равным EMPTY_VALUE
 

вот пример истории котировок:




пропущен бар со временем 30.10.2015 23:00

я завожу значения в индикатор этим кодом:

int i;                                    
i=0;        
while(i<=1000)                          
     {
      Buf[i]=(iClose(NULL,0,i);
    
      i++;                      
     }

вот какая получится нумерация баров: 




то есть под номером 11 в индикаторе у меня должно быть значение того пропущеного бара со временем 30.10.2015 23:00
вместо этого у меня под номером 11 в индикатор попадет значение следующего за ним бара. то есть бара со временем 30.10.2015 22:00

или я что-то не так понимаю?

 
тогда Вам нужно проверять каждый бар на соответствие очередному времени.
 
Renat Akhtyamov:
тогда Вам нужно проверять каждый бар на соответствие очередному времени.
а как это сделать, если есть выходные?

можно устроить перебор по времени. и вычитать на каждой итерации 60 минут, но существуют же выходные.
как можно пропускать выходные дни?
 
igrok333:
а как это сделать, если есть выходные?

можно устроить перебор по времени. и вычитать на каждой итерации 60 минут, но существуют же выходные.
как можно пропускать выходные дни?

день недели учитывать:

TimeDayOfWeek(TimeCurrent());
 
Renat Akhtyamov:

день недели учитывать:

TimeDayOfWeek(TimeCurrent());
о, спасибо.)
 
igrok333:
о, спасибо.)
Иногда среди недели выходные тоже бывают. Иногда рынок закрывается на час раньше.
Лучше что-то другое придумать наверное, если так важен каждый бар.
Можно попробовать по другим парам корректировать. Есди по какой-то паре есть данные, а по текущей нет, то тцт явный пропуск.
 
Maxim Romanov:
Иногда среди недели выходные тоже бывают. Иногда рынок закрывается на час раньше.
Лучше что-то другое придумать наверное, если так важен каждый бар.
Можно попробовать по другим парам корректировать. Есди по какой-то паре есть данные, а по текущей нет, то тцт явный пропуск.
на форе бывают выходные кроме субботы и воскресенья? это же на фонде только.
бывает, что рынок закрывается на час раньше? то есть бара со временем 23:00 не будет?

я что-то не наблюдал при торговле ситуацию, чтобы рынок закрылся в 23:00. и что тогда будет показывать в терминале? будут отсутствовать бары за это время?
 

интересно, если есть пропуски в истории, как в этом примере,

что тогда будет показываться в терминале? пустое черное место на месте этого бара?

сейчас посмотрим...

Вот нашел по USDCHF пропуск бара со временем 4.11.2016 23:00. смотрим в терминале:

каждая вертикальная полоса - это один час.

значит в терминале будет не пустота вместо этого бара. на месте его будет стоять следующий бар.

кстати это было окончание пятницы. вместо бара со временем 23:00 стоит бар понедельника со временем 0:00. Может рынок закрылся на час раньше... а почему происходят такие случаи?

 

А пробовали на графике нажать правой мышой и потом "Обновить"?

возможно пропуски исчезнут?

Причина обращения: