время "00:00"

 
//+------------------------------------------------------------------+
//|                                                     time0000.mq5 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   Comment(TimeToString(StringToTime("00:00"),TIME_DATE|TIME_SECONDS));
  }
//+------------------------------------------------------------------+

использую вот такой скрипт

 

локальне время  00:55  дата 2015.01.06

серверное время  01:55  дата 2015.01.06 

почему скрипт показывает

дата 2015.01.05 ??? 

так должно быть?? 

 

переключилось после 01:00 TimeLocal() ,  02:00 TimeCurrent()

 

почему переключается по локальному времени, а не по серверному??   

почему переключается после 01:00 ?

а не после    00:01 ??? 

 

Дык  используется серверное время, а не локальное на вашем компе.

Попробуйте там же вывести TimeCurrent

 
VDev:

Дык  используется серверное время, а не локальное на вашем компе.

Попробуйте там же вывести TimeCurrent

Нет. В этом ты не прав. На форуме mql4 я тоже обсуждал этот вопрос, разобрали всё досконально с примерами и проверками. Пришли к выводу что укороченная форма даты и времени

StringToTime("00:00")
берёт локальное время и соответственно поменяет дату когда на компе поменяется.
 
AlexeyVik:

Нет. В этом ты не прав. На форуме mql4 я тоже обсуждал этот вопрос, разобрали всё досконально с примерами и проверками. Пришли к выводу что укороченная форма даты и времени

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

да берется локальное время, т.е время компа

дата поменялась когда на компе было 01:00, а серверное время было 02:00

не понятно почему берется локальное время?

и почему дата меняется после 01:00, а не после 00:01 ??? 

 
VDev:

Дык  используется серверное время, а не локальное на вашем компе.

Попробуйте там же вывести TimeCurrent

 

При чем здесь TimeCurrent() ??

если привязать обьект, "OBJ_TREND" или "OBJ_VLINE" ко времени "00:00"

 то по  времени компа до "01:00" , по времени сервера до "02:00"

обьекты отображаются не правильно 

 
pako:

 

При чем здесь TimeCurrent() ??

если привязать обьект, "OBJ_TREND" или "OBJ_VLINE" ко времени "00:00"

 то по  времени компа до "01:00" , по времени сервера до "02:00"

обьекты отображаются не правильно 

Где-то ты ошибаешься. Да и не очень важно где. Объект можно и даже правильнее привязать к времени "00:00" при открытии свечи на ТФ D1

datetime  iTime(
   string           symbol,          // символ NULL
   int              timeframe,       // период  PERIOD_D1

   int              shift            // сдвиг 0
   );
 
AlexeyVik:

Где-то ты ошибаешься. Да и не очень важно где. Объект можно и даже правильнее привязать к времени "00:00" при открытии свечи на ТФ D1

попробуйте привязать к "00:00" , и создать обьект при открытии свечи на ТФ D1, во время между 00:00 - 00:59, он будет создан от вчерашнего начала дня, т.е время "00:00" но вчера
 
pako:
попробуйте привязать к "00:00" , и создать обьект при открытии свечи на ТФ D1, во время между 00:00 - 00:59, он будет создан от вчерашнего начала дня, т.е время "00:00" но вчера

Легко

//**************script program start function************************|
int start()
{
  string name = "pako";
   name = StringConcatenate(name, iTime(_Symbol, PERIOD_D1, 0));
  if(ObjectFind(0, name) > -1) return(0);
   ObjectCreate(0, name, OBJ_VLINE, 0, iTime(_Symbol, PERIOD_D1, 0), 0);
   return(0);
}//******************************************************************|
 
AlexeyVik:

Легко

и где привязка к "00:00" ???

меня интересует время "00:00" 

чел хочет задавать время

инпут   "00:04"

можно конечно изголяться с   iTime(_Symbol, PERIOD_М1, 4)

но зачем лечить ангину через Ж? 

//+------------------------------------------------------------------+
//|                                                    тиме 0000.mq4 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
  
      string name="pako";
      name=StringConcatenate(name,StrToTime("00:00"));
     
      ObjectCreate(0,name,OBJ_VLINE,0,StrToTime("00:00"),0);

     //******************************************************************|
  }
//+------------------------------------------------------------------+

 если вызвать этот скрипт сегодня 06.01.2015 в 00:59 по локальному времени

будет создан обьект с привязкой "00:00", но дата привязки  будет 05.01.2015

 если вызвать этот скрипт сегодня 06.01.2015 в 01:01 по локальному времени

будет создан обьект с привязкой "00:00",  дата привязки  будет 06.01.2015 

 
pako:

и где привязка к "00:00" ???

меня интересует время "00:00" 

чел хочет задавать время

инпут   "00:04"

можно конечно изголяться с   iTime(_Symbol, PERIOD_М1, 4)

но зачем лечить ангину через Ж? 

 если вызвать этот скрипт сегодня 06.01.2015 в 00:59 по локальному времени

будет создан обьект с привязкой "00:00", но дата привязки  будет 05.01.2015

 если вызвать этот скрипт сегодня 06.01.2015 в 01:01 по локальному времени

будет создан обьект с привязкой "00:00",  дата привязки  будет 06.01.2015 

Ну тогда так. И совсем не через чего-то...

input string hm = "00:04";

int start()
{
  string name = "pako";
    datetime dhm = StringToTime(TimeToString(iTime(_Symbol, PERIOD_D1, 0))+hm);
   name = StringConcatenate(name, dhm);
  if(ObjectFind(0, name) > -1) return(0);
   ObjectCreate(0, name, OBJ_VLINE, 0, dhm, 0);
  return(0);
}//******************************************************************|

Только не надо забывать что "00:04" это 4 секунды а не минуты. А секунды при создании объектов не учитываются.

Можно и ещё варианты сделать. Например если iTime(_Symbol, PERIOD_М10) == iTime(_Symbol, PERIOD_D10)

Это будет первая минута торгового дня не зависимо от каких либо других факторов, например выходных.