Эх время-время времечко...

 

Вот жеш любители погемороица то...

Есть одна контора, с ролловером, да не страшно, бум торговать внутрях суток.

Сказано, сделано...! как я наивно считал...


Времечко то самого ролловера там стоит 22:00 серверного.

Ладно, тож не беда подумал я и сотворил это:

// 22:00:00 ролловер... 
datetime сегодня=StrToTime(TimeToStr(TimeCurrent(),1));
datetime начало=сегодня-7200;
datetime конец =начало+86400; // или 86399
то бишь, на основании "сегодня" построил свои "технические сутки"

Но глядь, подумал, во б..лин! а с 22:00 до 24:00 идут старые ...


Вот ломай теперь голову как всё это победить.

(полный расстройственных чуйств с пожеланиями всего "хорошего" тому дилингу)

 
Просто TimeCurrent()+7200 не пойдет?
 
Или так - если TimeCurrent()-сегодня>=22*3600 то сегодня+=86400
 

привжитесь к iTime(Symbol(),1440,0) и сделайте сдвиг на нужное вам время....

 

Такое построение суток, понадобилось для полного учёта всего.

И в первую очередь для торговой статистики и ордеров в истории.



Билеберда со временем начинается в указаном стрелкой районе с 22:00 до 24:00 текущего дня по серверу.

Например сейчас, 25 ноября по серверу в 23:37:16, выводится это:

сегодня: 2009.11.25 00:00:00
начало: 2009.11.24 22:00:00
конец: 2009.11.25 22:00:00


Хотя по идее, должно быть "техническое" 26 ноября уже...

 

Решил вопрос таким вот образом:

datetime vrs, vrf, tcurrd=StrToTime(TimeToStr(TimeCurrent(),1));
vrs=tcurrd-7200; vrf=vrs+86400;
if(TimeHour(TimeCurrent())>=22) 
{vrf=StrToTime("22:00:00"); vrs=vrf-86400;}         // вар. 2
//{vrs=StrToTime("22:00:00")-86400; vrf=vrs+86400;} // вар. 1
//

где переменные vrs и vrf начало и конец тех.суток соответственно.

На этой базе реализован индикатор который разместил здесь .


ЗЫ: только с вариантом так и не определился, оба работают, но в одном

из них хоть на одну операцию да меньше... пока использую его...