Скачать MetaTrader 5

время бара

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Разбираетесь в своей области? Поделитесь этим с миллионами трейдеров!
chemical1
238
chemical1 2010.09.14 21:19 

Привет всем!

Как можно определить время открытия торгов, время и номер бара(i), для сохранения значений Open[i] и Close[i].

спасибо!

Непохо бы получить ответ в MQL :)

Rustamzhan Salidzhanov
7684
Rustamzhan Salidzhanov 2010.09.14 22:42  

Time[i]

chemical1
238
chemical1 2010.09.15 06:19  

RTS

открываю график и вижу что открытие в 09:00 например. а как узнать тот самый номер первого бара после гепа?

спасибо

Vadim Baklanov
3917
Vadim Baklanov 2010.09.15 06:46  

Время начала дня через iTime(NULL, PERIOD_D1, 0);

Номер бара для этого времени через iBarShift( )

chemical1
238
chemical1 2010.09.15 06:48  

спасиба!!!

А если на графике несколько дней и нужный мне бар гдето в центре?

Vadim Baklanov
3917
Vadim Baklanov 2010.09.15 06:52  
Без погружения в документацию никак. По вечерам, часа по два читать описания функций  iTime() и iBarShift( ) и что рядом с ними написано, через месяц будет просветление.
Yuriy Zaytsev
13597
Yuriy Zaytsev 2010.09.15 07:48  
Leonid82:

спасиба!!!

А если на графике несколько дней и нужный мне бар гдето в центре?

iTime(NULL, PERIOD_D1, 0) время текущего отрытого бара


iTime(NULL, PERIOD_D1, 5 ) время бара 6 дней назад ( отсчет с нуля )


т е если запустить 15.09.2010 числа


iTime(NULL, PERIOD_D1, 0) покажет время отрытия бара ... на 15.09.2010 и будет равно 15.09.2010 00:00:00

iTime(NULL, PERIOD_D1, 1) покажет время отрытия бара ... на 14.09.2010 и будет равно 14.09.2010 00:00:00

iTime(NULL, PERIOD_D1, 2) покажет время отрытия бара ... на 13.09.2010 и будет равно 13.09.2010 00:00:00


ну и логически помыслив понимаем, что если запустить это 16.09.2010 то получим


iTime(NULL, PERIOD_D1, 0) покажет время отрытия бара ... на 16.09.2010 и будет равно 16.09.2010 00:00:00

iTime(NULL, PERIOD_D1, 1) покажет время отрытия бара ... на 15.09.2010 и будет равно 15.09.2010 00:00:00

iTime(NULL, PERIOD_D1, 2) покажет время отрытия бара ... на 14.09.2010 и будет равно 14.09.2010 00:00:00


и так, для любого номера бара есть свой день!

( где то в центре , выбирайте номер ГДЕ ТО в центе, и получите то что нужно )

Денис
865
Денис 2010.09.15 08:28  

Интересно стало. Решил написать 

 

i=5;  
while(i>=0)
  { 
  N=iTime(NULL,1440,i)-iTime(NULL,1440,i+1);
  if (N!=86400)
     {
     n=i-1;
     i=0;
     }
  i--;
  }
T=iTime(NULL,1440,n);  
OP=iOpen(NULL,1440,n);
CL=iClose(NULL,1440,n);

 

где T-Время открытия торгов, OP- цена открытия соответсвующей дневной свечи, а CL - цена её закрытия. Если присоединять код не к дневному графику, а к любому другому, то последние 2 строчки надо  адаптировать. Не стал доделывать,, времени нету.

 

Строка 

if (N!=86400)

означает, что мы приверяем разницу во времени двух соседних баров. Если она больше суток (тут в сенкундах), то значит мы нашли бар открытия торгов. 

Денис
865
Денис 2010.09.15 08:33  
Только  я не пойму почему надо присваивать бару значение n=i-1. Проверял с помощью Аllert. Только с таким значением всё правильно выходит. Выяснять это не стал. Так просто накидал в качестве алгоритма.
chemical1
238
chemical1 2010.09.15 09:12  
Big thanx! :)
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий