Как установить дату загрузки истории котировок с текущего часа и до 72 часов назад.

 

Здравствуйте,  

Думаю вопрос очень примитивный, но не получается.

Есть скрипт для MT5 который загружает в файл историю котировок по указанным датам. Но нужно историю котировок только за последние 72 часа и не хочется каждый час менять даты.

Вот оригинальный скрипт

input datetime            start_date     = D'01.10.2018'; // Start Date

input datetime            end_date       = D'01.10.2019'; // End Date


Как я логически понимаю нужно start_date равно текущая дата, а end_date = start_date + 72 часа.

Подскажите пожалуйста как это написать.

Файлы:
 
borfor:

Здравствуйте,  

Думаю вопрос очень примитивный, но не получается.

Есть скрипт для MT5 который загружает в файл историю котировок по указанным датам. Но нужно историю котировок только за последние 72 часа и не хочется каждый час менять даты.

Вот оригинальный скрипт

input datetime            start_date     = D'01.10.2018'; // Start Date

input datetime            end_date       = D'01.10.2019'; // End Date


Как я логически понимаю нужно start_date равно текущая дата, а end_date = start_date + 72 часа.

Подскажите пожалуйста как это написать.

end_date = start_date + 72*3600

 
Vitalii Ananev:

end_date = start_date + 72*3600

Виталий, спасибо.

Я правда немного намудрил, end_date должна быть текущая дата и время, тогда start_date будет start_date =  end_date - 72*3600

С этим понятно. А как установить  end_date на текущее дата и время? Если можете покажите это в коде, код скрипта приложен. Так как я пытаюсь просто вставить эту функцию, но он пишет ошибку при компиляции.

 
borfor:

Виталий, спасибо.

Я правда немного намудрил, end_date должна быть текущая дата и время, тогда start_date будет start_date =  end_date - 72*3600

С этим понятно. А как установить  end_date на текущее дата и время? Если можете покажите это в коде, код скрипта приложен. Так как я пытаюсь просто вставить эту функцию, но он пишет ошибку при компиляции.

TimeCurrent()- последнее известное время сервера.

 
Vitalii Ananev:

TimeCurrent()- последнее известное время сервера.

Да, Виталий, я видел эту функцию, но когда я ее вставлял были ошибка. Сейчас я пошевилил мозгами разобрался в чем ошибка и теперь все работет. Спасибо!

Единственное что меня смущает, это то что если я пишу start_date =  end_date - 72*3600

он мне дает последние 24 часа, а не 72 как вроде по логике должно быть, а если пишу в два раза больше 144, то он выдает за последние 96 часов. Работать можно но как то странно?

 
borfor:

Да, Виталий, я видел эту функцию, но когда я ее вставлял были ошибка. Сейчас я пошевилил мозгами разобрался в чем ошибка и теперь все работет. Спасибо!

Единственное что меня смущает, это то что если я пишу start_date =  end_date - 72*3600

он мне дает последние 24 часа, а не 72 как вроде по логике должно быть, а если пишу в два раза больше 144, то он выдает за последние 96 часов. Работать можно но как то странно?

Проверяйте, а не выдаёт ли TimeCurrent() значение 0 (то есть 1970.01.00)

 
Vladimir Karputov:

Проверяйте, а не выдаёт ли TimeCurrent() значение 0 (то есть 1970.01.00)

Нет, TimeCurrent() выдает все правильно текущее время и дату

 
borfor:

Нет, TimeCurrent() выдает все правильно текущее время и дату

То есть у вас вот такой код start_date =  TimeCurrent() - 72*3600 - Показывает дату 24- часа назад от текущего времени?

Согласно справки функция TimeCurrent() возвращает время сервера во время прихода последней котировки по любому из символов в "обзоре рынка". В выходные котировки не транслируются в терминал, возможно ошибка связанна именно с этим.

 
Vitalii Ananev:

То есть у вас вот такой код start_date =  TimeCurrent() - 72*3600 - Показывает дату 24- часа назад от текущего времени?

Согласно справки функция TimeCurrent() возвращает время сервера во время прихода последней котировки по любому из символов в "обзоре рынка". В выходные котировки не транслируются в терминал, возможно ошибка связанна именно с этим.С

Спасибо!

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