Как да премахнете крайните часове на седмицата при изваждане (datetime) в MQL4

Как да извадя datetime-s точно, без да включвам часове през уикенда?

Пример:

datetime gapOpenTime  = 2015.01.01 00:00;
datetime gapCloseTime = 2015.12.19 00:00;

int      diff         = gapCloseTime - gapOpenTime;

Това diff включва и часове през уикенда (когато пазарът е затворен)

Как да премахнете тези нежелани моменти?


person PraAnj    schedule 23.12.2015    source източник
comment
Здравей, PraAnj, как ти хареса предоставеното решение? StackOverflow насърчава потребителите да възнаграждават добрите идеи или решения чрез UpVote - така че не се колебайте да щракнете върху UpVote и върху Accept checker - това е начинът, по който работи StackOverflow. Наслаждавай се на деня!   -  person user3666197    schedule 15.11.2017


Отговори (1)


Човек може да използва

datetime barTimes[]; 

ArrayCopySeries( barTimes, MODE_TIME, _Symbol, PERIOD_CURRENT ); // Time[] array was sorted in a descending order

int gapOpenSHIFT  = ArrayBsearch( barTimes, gapOpenTime,  WHOLE_ARRAY, 0, MODE_DESCEND );
int gapCloseSHIFT = ArrayBsearch( barTimes, gapCloseTime, WHOLE_ARRAY, 0, MODE_DESCEND );

int diff          = PeriodSeconds( PERIOD_CURRENT ) * ( gapOpenSHIFT - gapCloseSHIFT );
person user3666197    schedule 29.12.2015
comment
Можете ли да добавите примерни входни изходни примери, за да подобрите отговора. - person PraAnj; 27.08.2018