CopyTime исторические данные времени со смещением в "будущее"

 

Нужно программно поставить ценовую метку (на графике красная) на линию аллигатора. Проблема в том, что линии аллигатора со смещением, а CopyTime копирует данные в массив начиная с текущего бара  (на графике место, где начинается желтая горизонтальная линия). Чтобы поставить метку, нужно получить дату, еще не сформировавшегося бара (место, где начинается зеленая горизонтальная линия). Т.е. последнее значение линии программно я определил, а индекс бара не могу.


Пробовал таким образом (что-то вроде смещение на 8 баров вперед):

CopyTime(_Symbol,_Period,-8,10,nowTime);

но массив nowTime пустой.

 
Sergey Perechesov:

Нужно программно поставить ценовую метку (на графике красная) на линию аллигатора. Проблема в том, что линии аллигатора со смещением, а CopyTime копирует данные в массив начиная с текущего бара  (на графике место, где начинается желтая горизонтальная линия). Чтобы поставить метку, нужно получить дату, еще не сформировавшегося бара (место, где начинается зеленая горизонтальная линия). Т.е. последнее значение линии программно я определил, а индекс бара не могу.


Пробовал таким образом (что-то вроде смещение на 8 баров вперед):

но массив nowTime пустой.

void OnStart()
  {
 datetime  nowTime[];     // массив для копирования времени открытия  
 ArrayResize(nowTime,10);   // задали размер  
 ArraySetAsSeries(nowTime,true);
  
CopyTime(_Symbol,_Period,0,10,nowTime);

datetime time = nowTime[0]+PeriodSeconds()*8;  //время в будущем   -8 баров

Alert("",TimeToString(nowTime[0]));
Alert("",TimeToString(time));
   
  }

Как то так.

 
Alekseu Fedotov:

Как то так.

спасибо, работает

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