Вопрос по работе с датами в мт4

 
Как средствами мт4 отматывать дату назад на заданое количество недель или дней от текущей даты?
 
Skymer >>:
Как средствами мт4 отматывать дату назад на заданое количество недель или дней от текущей даты?
int iBarShift( string symbol, int timeframe, datetime time, bool exact=false)
Поиск бара по времени. Функция возвращает смещение бара, которому принадлежит указанное время. Если для указанного времени бар отсутствует ("дыра" в истории), то функция возвращает, в зависимости от параметра exact, -1 или смещение ближайшего бара.
 

хотелось бы прмиер видеть, как отнять от текущей даты Н дней, хотя свой алгорритм уже наметился, но надо знать когда високосный год.

и еще - как узнать, что год високосный средствами мт?

 
Skymer писал(а) >>

1. хотелось бы прмиер видеть, как отнять от текущей даты Н дней, хотя свой алгорритм уже наметился, 2. но надо знать когда високосный год.

и еще - как узнать, что год високосный средствами мт?

1. DateTime-N*86400. В сутках 86400 секунда - умножаем на заданное количество дней и отнимаем.

2. 4*(Year/4)==Year. На 4 делится, значит високосный.

 
Integer >>:

1. DateTime-N*86400. В сутках 86400 секунда - умножаем на заданное количество дней и отнимаем.

2. 4*(Year/4)==Year. На 4 делится, значит високосный.

По пункту 2, оптимальней (Year % 4)==0 високосный :)

 

сложность как раз и заключалась в представлении заданой даты в виде секунд переменную DateTime

например 20.10.2010 13.00 как перевести в секунды?

 

Читаем доку https://docs.mql4.com/ru/basis/types/datetime

Print(D'2004.01.01 00:00'); //как по твоему, что будет напечатано ?

 
Skymer писал(а) >>

сложность как раз и заключалась в представлении заданой даты в виде секунд переменную DateTime

например 20.10.2010 13.00 как перевести в секунды?

StrToTime()

 

а как можно определить время открытия текущего бара?

 
Skymer >>:

а как можно определить время открытия текущего бара?

https://docs.mql4.com/ru/series/iTime

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