Вопросы от "чайника" - страница 251

 
Silent:
Это понятно всё, у меня и так уже каждый шаг принтуется, и функцию в отдельный скрипт вытащил... Ладно, подумаю на досуге.

Нет, Вам не понятно. Смотря что принтуется. )) Вам указывают уже в три голоса на передаваемые параметры.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Вопросы от "чайника"

tol64, 2013.05.24 13:02

Проконтролируйте (выведите в журнал) время начала (t[0]+b) и конца (t[0]) диапазона. Сразу разберётесь.

 
stringo:

Не надо отказываться от функции.

Когда Вы запрашиваете данные в диапазоне "текущее время - текущее время плюс некое количество секунд", то это означает, что вы запрашиваете данные из будущего. Данных на момент запроса ещё не существует.

Если бы Вы запрашивали данные в диапазоне "текущее время - текущее время минус некое количество секунд", то значит Вы запрашиваете потенциально существующие данные.

О каком будущем речь, где Вы это увидели?

Все запросы идут только исключительно в прошлом.

В скрипте проверочном ведь бар явным образом задается, от которого считаю...

Вообще экстремумы зигзага уточняю, который не даёт точного времени...

 
Silent:

О каком будущем речь, где Вы это увидели?

Ок. Текущее время 2013.05.24 15:43:29

К текущему времени прибавляем 600 секунд. Получаем 2013.05.24 15:53:29

тут же даём запрос на вычисленный диапазон. Но данных у нас есть только включительно по текущее время. Между 2013.05.24 15:43:29 и 2013.05.24 15:53:29 данных ещё нет.

Но если Вы покрутите десятиминутный цикл, то данные вполне возможно и появятся. Да вот только 2013.05.24 15:43:29 станет прошлым временем, а 2013.05.24 15:53:29 станет текущим временем

Документация по MQL5: Дата и время / TimeCurrent
Документация по MQL5: Дата и время / TimeCurrent
  • www.mql5.com
Дата и время / TimeCurrent - Документация по MQL5
 
tol64:

Нет, Вам не понятно. Смотря что принтуется. )) Вам указывают уже в три голоса на передаваемые параметры.

https://www.mql5.com/ru/forum/3775/page252#comment_507621

Там есть как бы

   Print(tm[0]);
 
stringo:

Ок. Текущее время 2013.05.24 15:43:29

К текущему времени прибавляем 600 секунд. Получаем 2013.05.24 15:53:29

тут же даём запрос на вычисленный диапазон. Но данных у нас есть только включительно по текущее время. Между 2013.05.24 15:43:29 и 2013.05.24 15:53:29 данных ещё нет.

Но если Вы покрутите десятиминутный цикл, то данные вполне возможно и появятся. Да вот только 2013.05.24 15:43:29 станет прошлым временем, а 2013.05.24 15:53:29 станет текущим временем

//--- переменные для указания параметров функции
   int start = 5; // индекс бара
   int count = 1; // количество баров
   int b=72000;   
   int bm;        // надо получить
   datetime tm[]; // массив, в котором возвращается время баров
//--- копирование времени 
   CopyTime(_Symbol,PERIOD_CURRENT,start,count,tm);
//--- вывод результата
   Print(tm[0]);

   bm=Bars(_Symbol,PERIOD_M1,tm[0]+b,tm[0]);
   Print("bm = "+bm);
//--- возвращает bm = 1201
   bm=Bars(_Symbol,PERIOD_M1,tm[0]-b,tm[0]);
   Print("bm = "+bm);

Где

int start = 5; // индекс бара

бар, чьё время я получаю.

Я НЕ использую текущее время. Вообще.

 
Прикручу проверку на будущее отдельно, там видно будет.
 
Silent:

Где

бар, чьё время я получаю.

Я НЕ использую текущее время. Вообще.

То есть, в tm[0] у Вас время 5-го от конца бара.

В таком случае, в первом запросе данных, отличного от текущего таймфрейма (Вы запрашиваете минутки), Вы запросто можете получить 0 баров, потому что этих данных ещё нет в терминале.

Как раз по этому поводу мы как-то публиковали скрипт по гарантированной закачке исторических данных любого существующего символа-периода.

 
stringo:

Как раз по этому поводу мы как-то публиковали скрипт по гарантированной закачке исторических данных любого существующего символа-периода.

Почитайте в справке раздел Организация доступа к данным

 
stringo:

То есть, в tm[0] у Вас время 5-го от конца бара.

В таком случае, в первом запросе данных, отличного от текущего таймфрейма (Вы запрашиваете минутки), Вы запросто можете получить 0 баров, потому что этих данных ещё нет в терминале.

Как раз по этому поводу мы как-то публиковали скрипт по гарантированной закачке исторических данных любого существующего символа-периода.

0 периодически можно получить даже на текущем тф, просто на разных барах. Очень редко, правда. Сегодня вот не могу воспроизвести, вчера, пока разбирался, получал практически на каждом новом (не вызывавшемся) баре.

Скрипт поищу, спасибо.

 

Вообще самая большая непонятка - это почему все функции Copy работают, в одних и тех же условиях, - а на барс я ловлю что то левое?

Фантастика какая то...

Upd возможный ответ на получение 0 при первом запуске

Мы не можем прямо обратиться к серверу, но любая Copy-функция
при нехватке истории в формате HCC в терминал автоматически инициирует посылку
такого запроса от терминала к торговому серверу.

а Bars этого не делает.

Upd 2 там буква в справке пропущена, в, красным выделил.